[Android工具] ESP8266一键配网
物联网开发,目前主流的 WIFI 配置模式有以下 2 种:
- 智能硬件处于 AP 模式(类似路由器,组成局域网),手机用于 STA 模式
手机连接到处于 AP 模式的智能硬件后组成局域网,手机发送需要连接路由的 SSID 及密码至智能硬件,智能硬件主动去连接指定路由后,完成配网
- 一键配网(smartConfig)模式
智能硬件处于混杂模式下,监听网络中的所有报文;手机 APP 将 SSID 和密码编码到 UDP 报文中,通过广播包或组播报发送,智能硬件接收到 UDP 报文后解码,得到正确的 SSID 和密码,然后主动连接指定 SSID 的路由完成连接。
AP 模式:
AP 是 (Wireless) Access Point 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)。
连接步骤:
1. 智能硬件设备初始化并进入 AP 模式
2. 手机扫描 WIFI 列表:扫描到智能硬件设备后(SSID)连接该智能硬件设备,通过 UDP 发送 经过 AES 加密过的 ssid/password/token
3. 智能硬件设备通过 UDP 包获取配置信息,切换网络模式连接 WIFI 后配网完成
smartConfig 原理浅析
在没有和其他设备(支持 smartConfig 技术)建立任何性质的通讯链路的情况下, 配置该设备接入 WIFI 网络
普通权限的应用程序是没有能力完全控制和定义传输层及下层所有协议数据的, 唯一可以完全控制的就是应用层数据
本质上就是将 UDP 包头的数据长度作为 smartConfig 的数据,APP 端和设备端共用一套编码表即可解析数据
TCP/IP 协议栈中的网络层和传输层的数据结构
常用的网络层协议是 IPv4, IPv4 的头部绝大多数情况下都是定长的20字节
传输层协议是 UDP, 因为 UDP 协议头部为定长的 8 字节
发表评论