前引
对于ESP配网方式和SmartConfig的介绍,在ESP-IDF编程指南中已经介绍得很详细了,这里就不在赘述。
引用站外地址,不保证站点的可用性和安全性
这里主要来介绍一下在Arduino中怎么使用SmartConfig来实现微信扫码配网,配网失败的一些解决办法,主要代码参考了CSDN上的一篇文章(不能确定是不是原作者,对贡献代码的人都表示感谢)
引用站外地址,不保证站点的可用性和安全性
ESP8266/ESP32 SmartConfig一键配网+自动重连+微信扫码配网
lw1997的博客-CSDN博客_esp32蓝牙配网
正文
我只是在代码的原基础上做了简单的添加,指定了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); 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()); 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() {
}
|
在使用作者源代码的时候,微信扫码和ESPTouch APP都没有成功,然后看到说要指定连接的类型,就可以解决

根据自己的需求选合适的类型就行。
关于连接工具
微信扫码
官方给的工具网址为:https://iot.espressif.cn/configWXDeviceWiFi.html
可以利用网址链接转二维码工具生成二维码,像我生成的二维码:

利用ESPTouch
可以到ESP官网下载软件,有Android和iOS版本
引用站外地址,不保证站点的可用性和安全性
乐鑫信息科技微信公众号

