一键配网,自动保存重连,参考网上给的代码,试过ok。- #include <ESP8266WiFi.h>
- #include <ESP8266WiFiMulti.h>
- ESP8266WiFiMulti wifiMulti;
- bool autoConfig()
- {
- WiFi.begin();
- for (int i = 0; i < 20; i++)
- {
- int wstatus = WiFi.status();
- if (wstatus == WL_CONNECTED)
- {
- Serial.println("AutoConfig Success");
- Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
- Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
- WiFi.printDiag(Serial);
- return true;
- //break;
- }
- else
- {
- Serial.print("AutoConfig Waiting......");
- Serial.println(wstatus);
- delay(1000);
- }
- }
- Serial.println("AutoConfig Faild!" );
- return false;
- //WiFi.printDiag(Serial);
- }
- void smartConfig()
- {
- WiFi.mode(WIFI_STA);
- Serial.println("\r\nWait for Smartconfig");
- WiFi.beginSmartConfig();
- while (1)
- {
- Serial.print(".");
- 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;
- }
- delay(1000); // 这个地方一定要加延时,否则极易崩溃重启
- }
- }
- void setup(){
- Serial.begin(9600);
- Serial.println("Wait for Smartconfig");
- if (!autoConfig())
- {
- Serial.println("Start module");
- smartConfig();
- }
- pinMode(2, OUTPUT);
- }
- void loop(){
- digitalWrite(2,HIGH);
- delay(1000);
- digitalWrite(2,LOW);
- delay(1000);
- }
复制代码
|