你是否还在直接将wifi的ssid和密码直接写入STM32程序中通过串口发送给ESP8266?本文教你用微信Airkiss协议实现可视化地为ESP8266发送WiFi ssid和密码信息并连接WiFi,并使STM32主控设备接入OneNET。
微信Airkiss协议是微信提供的一款为设备配网的技术。它为ESP8266配网的原理可以简单理解为:微信尽管不知道我们所使用的ESP8266的物理地址,但以Airkiss协议发送WiFi信息后,只要ESP8266工作在Station混杂模式下(开启了SmartConfig功能),它就能把所有数据包都抓取下来并进行分析,而不管这个数据包是不是发送给它的,直到找到需要的WiFi信息。
目前,微信对Airkiss协议的支持并不是很完善,微信小程序似乎暂不支持Airkiss协议,但可以使用公众号实现。安信可科技公众号提供了微信Airkiss配网的功能,可以直接用这个公众号或者自己申请一个公众号。 使用流程:手机先连接到你想要让ESP8266连接的那个WiFi,进入公众号,点击应用开发-微信配网,输入WiFi密码,然后等待一段时间之后ESP8266就能连接上这个WiFi了,此时手机上会显示连接成功。 注意:这个功能只有安信可科技开发的ESP8266模组支持,正点原子的ESP8266由于也使用了安信可的模组,所以也是支持的。但是像ESP8266-01s是不支持的。 上述的配网过程需要ESP8266开启了SmartConfig模式,如果你使用STM32作为主控连接ESP8266,那么其中一种方式是在上电之后通过串口发送AT指令,使ESP8266开启SmartConfig功能。
查阅ESP8266 AT指令文档: 1.AT+CWSTARTSMART开启SmartConfig功能 但这个指令仅支持ESP8266在单station模式下使用,因此在使用该指令前,需要将ESP8266配置为STATION模式。 2.AT+CWMODE=1配置为station模式 当然在发送这些指令之前惯例采用以下命令做个初始化 3.AT+RST 重启ESP8266
连上WiFi之后,需要关闭SmartConfig才能使用其他AT指令,如果WiFi连接成功,会通过串口返回connected,以此作为判断依据。
4.AT+CWSTOPSMART
接下来就可以使用其他指令配置ESP8266与OneNET连接了。 点击下载完整的Keil工程文件: 完整的Keil工程
|