所谓SmartConfig就是手机App端发送包含WIFI用户名以及密码的UDP广播包,智能终端(开启了sniffer混杂模式)的WIFI芯片可以接收到该UDP包,只要知道UDP包的组织形式,就可以通过接收到的UDP包解密出WIFI用户名密码,然后智能硬件配置收到的用户名密码到指定的WIFI AP上。
简单操作步骤如下:
- 8266 端作为station,进入smartconfig, 等待手机端发出的用户名和密码。
- 手机端把填写当前网络的密码通过UDP广播;
- 8266 获取到信息之后退出smartconfig配置,连接网络;
启动一键配网模式
/**
* 启动配网模式
* @return bool 是否启动配网模式成功
*/
bool beginSmartConfig();
//注意:SmartConfig需要处于STA工作模式;
停止配网模式
/**
* 停止Smartconfig
* @return bool 是否停止配网模式成功
*/
bool stopSmartConfig();
是否完成配网
/**
* 查找状态看是否配网完成
* @return bool 是否启动配网模式成功
*/
bool smartConfigDone();
实际操作代码
#include <ESP8266WiFi.h>
void smartConfig()
{
WiFi.mode(WIFI_STA);
Serial.println(“
Wait for Smartconfig”);
delay(2000);
// 等待配网
WiFi.beginSmartConfig();while (1)
{
Serial.print(“.”);
delay(500);
if (WiFi.smartConfigDone())
{
Serial.println(“SmartConfig Success”);
Serial.printf(“SSID:%s
“, WiFi.SSID().c_str());
Serial.printf(“PSW:%s
“, WiFi.psk().c_str());
WiFi.setAutoConnect(true); // 设置自动连接
break;
}
}Serial.println(“”);
Serial.println(“WiFi connected”);
Serial.println(“IP address: “);
Serial.println(WiFi.localIP());
}void setup()
{
Serial.begin(115200);
smartConfig();
}
void loop()
{
delay(100);
Serial.println(“loop”);
}
然后可以使用esp8266提供的appesptouch来发送数据就行了。
大家还可以直接下载博哥的apk
这里介绍一下配置的具体操作:
先把源码下载到esp8266里面,然后在手机打开app,手机先连接你要配网的wifi,点击配置后输入你的wifi密码,然后就会自动进行配置:
成功界面:
本文笔记参考博哥博客,如果对你有帮助,别忘了给我几个硬币哦!