Appearance
AP配网
AP配网是一种通过设备热点进行WiFi配置的方式。设备创建SoftAP热点,手机连接后通过UDP协议传递目标WiFi信息。
优势特点
- 简单直接:无需特殊协议,直接UDP通信
- 兼容性好:支持所有支持WiFi的手机和设备
- 成功率高:直连通信,配网稳定性好
第二版协议(推荐)
工作原理
设备创建SoftAP热点,手机连接后通过UDP协议交换WiFi配置信息:
- 设备创建AP热点:设备启动SoftAP模式,创建可连接的WiFi热点
- 手机连接热点:手机找到并连接设备的WiFi热点
- UDP通信:手机作为UDP客户端,连接设备UDP服务(
192.168.4.1:8266
) - 信息交换:手机发送目标WiFi信息,设备回复确认信息
- 连接网络:设备获取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-Type:
application/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.0 | 3.1或1.1 |
创建主题 | app端创建 | 设备端创建 |
巴法app和一键配网小程序同时兼容第一版、第二版协议
使用示例:
第一步:下载程序到开发板
esp8266 示例程序:点击下载
esp32 示例程序:点击下载