/SmartConfigByEsp8266

SmartConfig一键配网在硬件端的具体实现|ESP8266一键配网在Arduino的具体实现|玉念聿辉

Primary LanguageC++

SmartConfigByEsp8266|SmartConfig一键配网在硬件端的具体实现|ESP8266一键配网在Arduino的具体实现|玉念聿辉

@TOC

前言


       继上次写智能配网的文章已经过去差不多三个月,中间忙一下其他项目也就没有继续跟进了,不过好在这过程中顺便熟悉了一下硬件开发,今天重拾起来可能会给文章增添更多的营养价值吧。

       下面是关于Arduino中ESP8266的SmartConfig一键配网相关记录,以便加深对智能家居一整套工作流程的理解。

smartconfig工作原理


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

在这里插入图片描述

beginSmartConfig()


函数说明:

/**
 * 启动配网模式
 * @return bool 是否启动配网模式成功
 */
bool beginSmartConfig();

stopSmartConfig()


函数说明:

/**
 * 停止Smartconfig
 * @return bool 是否停止配网模式成功
 */
bool stopSmartConfig();

smartConfigDone()


函数说明:

/**
 * 查找状态看是否配网完成
 * @return bool 是否启动配网模式成功
 */
bool smartConfigDone();

实例


       我这里是直接使用的ESP8266-12F的开发板,上面集成了Arduino,可直接通过USB进行程序烧录,减少ESP8266和Arduino板子之间的连接工作,大大减少了开发工作量。

       如果你不是直接使用开发板,或者不知道如何在arduino中搭建ESP8266插件,可参见:https://www.jianshu.com/p/c6f8b59762b6, 当然ESP8266开发板某宝上一搜一大把,价格大多在20-100不等;

       在这个例子中我们只需要直接将板子用USB和电脑连接上即可,如果是第一次使用Arduino可能需要安装驱动(详情见);

在这里插入图片描述

实例代码:

 void setup()
{
  //开启串口
  Serial.begin(115200);
  //启动配网模式
  smartConfig();
}
 
void loop()
{
  delay(100);
  Serial.println("loop");
}
/**
 * 一键配网关键代码
 */
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());
}

       将代码烧录到板子上后,我们需要一个APP来进行配网,ESP Touch | SmartConfigAPP 都可以,我前面文章也提供了APP的源码连接1 | 2

       下图是配网成功后请求天气预报的串口输出信息,代码见Demo处下来,麻烦star:

在这里插入图片描述

Demo


SmartConfig配网成功后请求获取天气预报:

CSDN Demo:https://blog.csdn.net/qq_35350654/article/details/96980688
GitHub Demo:https://github.com/Life1412378121/SmartConfigByEsp8266



作者:玉念聿辉    编辑:吴明辉

文章参见:大神1大神2