SmartConfig

现在我们在购买很多智能设备的时候,需要让它联网,但它没有什么有效的输入手段,例如键盘屏幕啥的,于是就出现了所谓的一键联网,通过APP,将wifi名称和密码发送出来,走的是一种广播或者组播的手段,智能设备上电处于混杂模式,能够接收到这些数据,随后就可以联网了。

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_一键联网

就是所谓的,通讯,基本靠喊。

ESP8266一键联网准备代码

搭建环境什么的可以参考这个《看这里》 然后就可以下载到最新的版本,里面就包含了一键联网的demo程序。

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_单片机_02

配置好工作路径,编译代码,就可以烧写进ESP8266开发板了。上电进入smartconfig模式

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_一键联网_03

官网的教程无比详细,就喜欢这种产品

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_ESP8266_04

APP准备

乐鑫提供了安卓版本的配置工具,《下载链接》

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_ESP8266_05

首先我们手机先接入目标wifi,然后输入密码,点击发送,就可以看到ESP8266自动联网了。下次重启还会再次自动连接。

APP的源码也可以在官网下载到。真是贴心。

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_ESP8266_06

MQTT

代码中实现了MQTT的上行和下行。我们可以搭建一个MQTT服务,然后配置参数

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_APP_07

使ESP8266自动连接进入MQTT,实现消息的发送和订阅。

这数据通道不就来了

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_smartconfig_08

代码还在IO4上增加了一个按键,实现了发送消息和清空链接状态。短接一下IO4和GND,就能发送一个状态到MQTT上。

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_smartconfig_09

同时,ESP8266订阅了消息,也能接收下行消息。

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_一键联网_10

不过不知道为啥这么长的乱码。

值得注意

代码中的核心函数,就是如何从广播中获取到SSID和密码,这个算法没有提供,不过这也算是人家的一种保密机制吧。

ESP8266 WIFI接入的过程和方法 esp8266怎么联网_一键联网_11

windows目前没有办法抓wifi的帧,所以等我随后尝试一下,看看到底如何将ssid和密码,发送出来的。