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("\r\nWait for Smartconfig");
  delay(2000);
  // 等待配网
  WiFi.beginSmartConfig();
 
 while (1)
  {
    Serial.print(".");
    delay(500);
    if (WiFi.smartConfigDone())
    {
      Serial.println("SmartConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", 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密码,然后就会自动进行配置:

成功界面:

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

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00