12.esp8266一键配网


所谓SmartConfig就是手机App端发送包含WIFI用户名以及密码的UDP广播包,智能终端(开启了sniffer混杂模式)的WIFI芯片可以接收到该UDP包,只要知道UDP包的组织形式,就可以通过接收到的UDP包解密出WIFI用户名密码,然后智能硬件配置收到的用户名密码到指定的WIFI AP上。

 简单操作步骤如下:

  1. 8266 端作为station,进入smartconfig, 等待手机端发出的用户名和密码。
  2. 手机端把填写当前网络的密码通过UDP广播;
  3. 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密码,然后就会自动进行配置:

成功界面:

本文笔记参考博哥博客,如果对你有帮助,别忘了给我几个硬币哦!


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录