Skip to content

AP配网

AP配网是一种通过设备热点进行WiFi配置的方式。设备创建SoftAP热点,手机连接后通过UDP协议传递目标WiFi信息。

优势特点

  • 简单直接:无需特殊协议,直接UDP通信
  • 兼容性好:支持所有支持WiFi的手机和设备
  • 成功率高:直连通信,配网稳定性好

第二版协议(推荐)

工作原理

设备创建SoftAP热点,手机连接后通过UDP协议交换WiFi配置信息:

  1. 设备创建AP热点:设备启动SoftAP模式,创建可连接的WiFi热点
  2. 手机连接热点:手机找到并连接设备的WiFi热点
  3. UDP通信:手机作为UDP客户端,连接设备UDP服务(192.168.4.1:8266
  4. 信息交换:手机发送目标WiFi信息,设备回复确认信息
  5. 连接网络:设备获取WiFi信息后连接目标网络

通信流程

第一步

手机向设备的 UDP 服务,发送 路由器的 Wi-Fi 和WIFI密码,以及用户私钥Token,JSON 格式为:

{"cmdType":1,"ssid":"Home-WiFi","password":"abcd1234","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","topic":"light001"}

cmdType: 手机数据指令,默认为1。
ssid: 路由器wifi名称。
password:路由器wifi密码。
token: 巴法云用户私钥,如果使用过巴法云扫码登录,该私钥和微信扫码登录后的私钥一致,如果未使用过巴法云微信等相关功能,手机则会自动创建账号并生成私钥,之后使用微信扫码登录可查看此私钥信息。
topic: 可选参数,发送到设备的附加信息。

第二步

发送完成后,等待设备 UDP 回复信息:

{"cmdType":2,"productId":"Hjgwhge002","deviceName":"dev_01","protoVersion":"3.1"}

cmdType: 设备回复指令,默认为2。
productId: 可选参数,设备主题值,即设备id,如果携带此参数返回到手机,手机会自动创建主题值为 productId 值的主题,主题类型为 protoVersion 类型。
deviceName: 可选参数,设备主题昵称,灯、插座、风扇暂不支持deviceName。
protoVersion: 可选参数,协议类型,1.1是MQTT设备云,3.1是tcp设备云。

第三步

手机向设备发送确认状态

{"cmdType":3}

第四步

设备创建主题

接口信息

  • 请求方法POST

JSON格式

  • Content-Typeapplication/json; charset=utf-8

  • 请求地址http://pro.bemfa.com/vs/web/v1/deviceAddTopic

参数是否必须类型说明
uid字符串类型用户私钥
topic字符串类型需要创建的主题,字母数字组合
type整形1=MQTT,3=TCP协议
wifiConfig整形1=ap配网,2=蓝牙配网
name字符串类型设备名称、昵称
room字符串类型房间名字,字符长度小于8
unCreate整形是否创建主题,0=创建,1=不创建,默认0
adminID整形管理员ID

请求体示例:

{
    "uid":"4d9ec352e0376f2110a0c601a2857225",
    "topic":"led002",
    "type":3,
    "wifiConfig":1
}

正确返回:

{
    "code": 0,
    "msg": "success",
    "data": {
        "code": 0 //0或40006表示配网成功
    }
}
参数类型说明
code整形0或40006表示配网成功

使用示例:

第一步:下载程序到开发板

简单程序:点击下载

ap配网+TCP协议控制程序:点击下载

第一版(旧)

协议规范:设备通过 softAP 方式创建一个 Wi-Fi 热点,手机连接该热点,再通过 UDP 通讯,将目标 Wi-Fi 路由器的 SSID/PSW 传递该设备,设备获取后,即可连接 Wi-Fi 路由器从而连接互联网。

手机连接设备 softAP 热点成功后,手机作为 UDP 客户端会连接 esp8266设备上面的 UDP 服务(默认 IP 为192.168.4.1,端口为8266)

第一步

手机向设备的 UDP 服务,发送 路由器的 Wi-Fi 和WIFI密码,以及用户私钥Token,JSON 格式为:

{"cmdType":1,"ssid":"Home-WiFi","password":"abcd1234","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","topic":"light001"}

cmdType: 手机数据指令,默认为1。
ssid: 路由器wifi名称。
password:路由器wifi密码。
token: 巴法云用户私钥,如果使用过巴法云扫码登录,该私钥和微信扫码登录后的私钥一致,如果未使用过巴法云微信等相关功能,手机则会自动创建账号并生成私钥,之后使用微信扫码登录可查看此私钥信息。
topic: 可选参数,发送到设备的附加信息。

第二步

发送完成后,等待设备 UDP 回复信息:

{"cmdType":2,"productId":"Hjgwhge002","deviceName":"dev_01","protoVersion":"3.0"}

cmdType: 设备回复指令,默认为2。
productId: 可选参数,设备主题值,即设备id,如果携带此参数返回到手机,手机会自动创建主题值为 productId 值的主题,主题类型为 protoVersion 类型,需要手机自动创建主题时需返回该值。
deviceName: 可选参数,设备主题昵称,灯、插座、风扇暂不支持deviceName。
protoVersion: 可选参数,协议类型,1.0是MQTT设备云,3.0是tcp设备云,需要手机自动创建主题时需返回该值。

第三步

手机向设备发送确认状态

{"cmdType":3}
区别第一版第二版
protoVersion字段3.0或1.03.1或1.1
创建主题app端创建设备端创建

巴法app和一键配网小程序同时兼容第一版、第二版协议

使用示例:

第一步:下载程序到开发板

esp8266 示例程序:点击下载

esp32 示例程序:点击下载

巴法开放联盟