[i=s] 本帖最后由 WildboarG 于 2025-3-27 17:07 编辑 [/i]
AI-WB2 smartconfig配网

一键配网(Smart Config)
smartConfig 是一种用于 Wi-Fi 设备快速联网的技术,最早由 TI(德州仪器)提出。它允许无显示屏或输入设备的 IoT 设备(如 AI-WB2)通过智能手机等设备获取 Wi-Fi 连接信息,实现快速联网。
原理
利用 IEEE 802.11 协议中的广播(Broadcast)和组播(Multicast)报文,将 Wi-Fi SSID 和密码等信息通过 特定的数据编码方式,封装到 Wi-Fi 数据包中发送,IoT 设备通过 监听和解析 Wi-Fi 数据包,提取出 Wi-Fi 信息并进行连接。
- 编码WIFI信息
- 手机端应用(如 ESPTouch、TI SmartConfig App)将 Wi-Fi 名称(SSID)和密码(Passphrase)编码成多个数据包。
- 这些数据包通常使用 UDP 广播或多播发送,或者通过数据帧的长度、间隔等方式编码信息。
- 设备监听并解析
- 设备进入sniffer模式(又叫混杂模式,即不过滤数据报文),监听环境中所有的802.11报文;
- 设备需要在所支持的信道(2.4G通常1-13)上轮询监听(因为设备不知道用户手机和目标路由器的信道);
- 捕获到符合配网规则的数据报文后停止信道轮询,尝试在在此信道上接收完成所有报文;
- 当前信道接收失败或超时重新回到步骤2;
- 数据报文接收完成则关闭sniffer模式
- 设备连接WIFI
- IoT 设备解析出 Wi-Fi 账号密码后,退出 SmartConfig 模式,使用 STA 模式 连接 Wi-Fi。
- 连接成功后,可反馈给手机应用,完成配置。
流程
设备端进入 SmartConfig 模式
- 设备开启 Wi-Fi 并进入监听模式(混杂模式)。
- 等待 Wi-Fi 连接信息的广播。
手机端发送配网信息
- 用户打开手机应用,输入 Wi-Fi 名称和密码,点击“配网”。
- 手机通过 UDP 广播/组播方式,向网络中发送编码后的 SSID 和密码。
设备解析数据
- 设备监听 Wi-Fi 网络中的 UDP 数据包,解析 SSID 和密码。
- 设备解析完成后,退出 SmartConfig 模式,切换为 Wi-Fi STA 模式。
设备连接 Wi-Fi 并反馈结果
- 设备使用获取的 Wi-Fi 账号密码连接 Wi-Fi。
- 连接成功后,设备可以通过 UDP 发送 ACK(确认包)给手机端,表示配网成功。
流程图:

数据传输方式
数据的承载方式有两种,一种广播方式,另一种是组播方式。下面分别介绍。
设备在接入路由器之前,没有获得对应密钥,无法解密路由器局域网内的数据报文(包括连接到目标路由器的用户手机的报文)。
如下图所示,设备在sniffer模式收到的数据报文主体即Frame Body部分是加密的,仅帧头和整个报文长度是不加密的。要通过手机将配网信息传给设备,那么就得考虑使用这些信息。
MAC帧格式:

字段 |
长度(字节) |
描述 |
帧控制(Frame Control) |
2 |
指示帧类型、子类型等 |
时序(Duration/ID) |
2 |
网络分片、QoS 相关 |
地址 1(DA) |
6 |
目标 MAC 地址 |
地址 2(SA) |
6 |
源 MAC 地址 |
地址 3(MESHBSSID) |
6 |
AP 的 MAC 地址 |
序列控制(Sequence Control) |
2 |
数据分片信息 |
帧体(Frame Body) |
变长 |
数据部分,如 SSID、数据负载 |
FCS(Frame Check Sequence) |
4 |
用于校验帧完整性 |
|
|
|
📌 1. 广播包长(Broadcast Packet Length)
🔹 原理
- 通过 UDP 广播数据包 传输 Wi-Fi SSID 和密码。
- 主要利用 广播包的长度(Length)来编码数据,而不是数据包的内容。
- loT 设备开启 混杂模式(Promiscuous Mode) 监听广播数据包,根据不同长度的数据包解析出 Wi-Fi 信息。
🔹 传输过程
- 手机端:
- 发送多个 UDP 广播包,每个包的长度按照特定编码规则表示 Wi-Fi SSID 和密码。
- 例如,数据包长度 100
代表字符
A ,
101 代表
B`,依次类推。
- 设备端:
- 在监听模式下捕获所有广播数据包。
- 解析数据包的长度,恢复 Wi-Fi SSID 和密码。
- 退出混杂模式,连接到 Wi-Fi。
🔹 优缺点
✅优点:
- 兼容大多数路由器,不依赖组播功能。
- 只需单方向数据传输(手机 → 设备),设备无需回应。
❌ 缺点:
- 对于部分 Wi-Fi 环境,广播包可能被丢弃或限流,导致成功率降低。
- 传输数据受限,不能用于较复杂的数据交换。
📌 2. 组播地址(Multicast Addressing)
🔹 原理
- 通过 UDP 组播(Multicast) 发送 Wi-Fi SSID 和密码。
- 主要利用 组播 IP 地址 作为数据编码方式,而不是数据包的内容或长度。
- IoT 设备监听特定的组播 IP 地址,解析出 Wi-Fi 信息。
🔹 传输过程
1 . 手机端(发送方)
- 生成UDP 组播数据包,其中包含 Wi-Fi SSID 和密码(可能经过加密或编码)。
- 目标 IP 组播地址 一般是
239.x.x.x
(私有组播地址)。
- 通过 UDP 协议向该组播地址发送数据。
- Wi-Fi 路由器(AP)
- 接收到 IP 组播包,并将其转换为 MAC 组播帧,再广播到整个局域网。
- 目标 MAC 组播地址 由 IP 组播地址转换而来,通常形如
01:00:5E:XX:XX:XX
。
- AI-WB2 设备(接收方)
- 进入 Wi-Fi 混杂模式,监听 MAC 帧。
- 过滤出 MAC 组播帧,提取其中的 UDP 负载,解析 Wi-Fi SSID 和密码。
- 退出混杂模式,连接到 Wi-Fi。
🔹 优缺点
✅ 优点:
- 相比广播方式,组播更容易被局域网内的设备捕获,丢包率较低。
- 避免了广播包长度的限制,适用于更复杂的 Wi-Fi 信息编码。
❌ 缺点:
- 部分路由器会禁用或屏蔽 UDP 组播,导致设备无法解析数据。
- 设备端需要解析 IP 地址,稍微增加了计算负担。
📌 3. 两种方式对比
方式 |
数据编码方式 |
优势 |
劣势 |
适用场景 |
广播包长 |
通过 UDP 广播包的长度传输 Wi-Fi 信息 |
兼容性较好,适用于大多数 Wi-Fi 网络 |
部分 Wi-Fi 网络可能丢弃广播包 |
适用于低干扰环境或 Wi-Fi 兼容性较好的场景 |
组播地址 |
通过 UDP组播 IP 地址(其实是mac地址)传输 Wi-Fi 信息 |
组播数据包更稳定,丢包率低 |
部分路由器可能屏蔽 UDP 组播 |
适用于较新路由器,减少广播拥堵的环境 |
示例
typedef enum {
smartconfig,
airkiss,
} wifi_network_configuration_mode;
wifi_network_configuration_mode network_configuration_mode =
smartconfig; // 这里选择对应的配网方式
static wifi_conf_t conf = {
.country_code = "CN",
};
安心可提供的wb2sdk中例程有smartconfig和airkiss两种不同的快速配网方式
Airkiss 使用 Wi-Fi 数据包长度编码 方式:
- 发送端(手机)通过 控制 UDP/TCP 数据包长度来编码 Wi-Fi SSID 和密码。
- **接收端(设备)监听 不同长度的 Wi-Fi 数据包,然后解码出 Wi-Fi 信息。
由于 AirKiss 直接利用数据包长度,而非 UDP 负载内容,因此某些不支持 UDP 组播的低端路由器也可能适用。
对比 |
smartconfig |
Airkiss |
数据传输方式 |
广播包/组播包 |
wifi数据包长度编码 |
编码方式 |
变长UDP(广播/组播) |
UDP/TCP数据包长度 |
使用范围 |
通用WIFI设备(esp8266/esp32/ai-wb2) |
腾讯生态(微信loT,小程序) |
测试:
这里用的微信小程序配网巴法云的一键配网。
smartconfig模式

接收到数据[0x18 0x08 0xd7 0x10 0xbd 0xc0 0xa8 0x00 0x01 0x48 0x59 0x47 0x53 0x33 0x33 0x30 0x35]
观察数据后8位,刚好与我的密码HYGS3305对应,前边的编码没有源码也不好分析,查看sdk里边是编译后的 .a
库文件,没有源码。


已经连接上了,分配了IP.
Airkiss模式
修改例程中,选择airkiss方式配网
wifi_network_configuration_mode network_configuration_mode =airkiss;
编译烧录测试:
切换为airkiss配网方式;



