这篇文章距离最后更新已过193 天,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
前引
对于ESP配网方式和SmartConfig的介绍,在ESP-IDF编程指南中已经介绍得很详细了,这里就不在赘述。
这里主要来介绍一下在Arduino中怎么使用SmartConfig来实现微信扫码配网,配网失败的一些解决办法,主要代码参考了CSDN上的一篇文章(不能确定是不是原作者,对贡献代码的人都表示感谢)
正文
我只是在代码的原基础上做了简单的添加,指定了SmartConfig的Type
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#include "WiFi.h" void SmartConfig() { WiFi.mode(WIFI_AP_STA); Serial.println("\r\nWait for Smartconfig..."); WiFi.beginSmartConfig(SC_TYPE_ESPTOUCH_AIRKISS); //我做了修改的部分添加了“SC_TYPE_ESPTOUCH_AIRKISS” while (1) { Serial.print("."); delay(500); // wait for a second 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()); break; } } } bool AutoConfig() { WiFi.begin(); //如果觉得时间太长可改 for (int i = 0; i < 20; i++) { int wstatus = WiFi.status(); if (wstatus == WL_CONNECTED) { Serial.println("WIFI SmartConfig Success"); Serial.printf("SSID:%s", WiFi.SSID().c_str()); Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str()); Serial.print("LocalIP:"); Serial.print(WiFi.localIP()); Serial.print(" ,GateIP:"); Serial.println(WiFi.gatewayIP()); return true; } else { Serial.print("WIFI AutoConfig Waiting......"); Serial.println(wstatus); delay(1000); } } Serial.println("WIFI AutoConfig Faild!" ); return false; }
void setup() { Serial.begin(115200); delay(100); if (!AutoConfig()) { SmartConfig(); } }
void loop() { // put your main code here, to run repeatedly:
}
|
在使用作者源代码的时候,微信扫码和ESPTouch APP都没有成功,然后看到说要指定连接的类型,就可以解决
根据自己的需求选合适的类型就行。
关于连接工具
微信扫码
官方给的工具网址为:https://iot.espressif.cn/configWXDeviceWiFi.html
可以利用网址链接转二维码工具生成二维码,像我生成的二维码:
利用ESPTouch
可以到ESP官网下载软件,有Android和iOS版本
乐鑫信息科技微信公众号
暂无评论