Arduino-ESP8266 Wifi页面配置

ESP8266 作为一款流行的低成本 Wi-Fi 模块,不支持 5 GHz 频段的 Wi-Fi 连接。它仅支持在 2.4 GHz 频段的 802.11 b/g/n 协议;
ESP32 能够同时支持 2.4 GHz 和 5 GHz 的 Wi-Fi 网络

 

联网流程:程序启动后,查找本地文件存储的wifi账号和密码,如果文件为空,或者wifi连不上则进入入ap模式,在网页界面上输入账户和密码,保存到本地文件并进行连接,连接成功后重启ESP;超时5分钟未连上wifi则重启ESP;支持断网重连

 

PC端连接

 

 

 

移动端连接

  

连接成功后

 

 

 断网重连

 

#include "webconfig.h"   

void setup() {
  Serial.begin(9600);  // 先初始化串口
  Serial.println("MCU RUN");  // 再输出信息
  SPIFFS.begin();
  
  if (!connectToStoredWiFi()) {
    Serial.println("Wifi Connect Failed,Access AP!"); 
    setupWiFiAccessPoint();
    initWebServer();
    apModeActive = true;
    apModeStartTime = millis();
  } else {
    Serial.println("Wifi Connect Successed"); 
  }
}

void loop() {
  if (apModeActive) {
     // AP模式
      server.handleClient();
      // 5分钟超时检测
      if (millis() - apModeStartTime > 300000) { 
          Serial.println("Wifi Config Timeout,Restart!"); 
          ESP.restart();
      }
  } else {
      // RUN模式 
      // 断网重连
      static unsigned long lastCheck = 0;
      if (millis() - lastCheck > 10000) { // 每10秒检测一次
          lastCheck = millis();
          if (WiFi.status() != WL_CONNECTED) {
              Serial.printf("WiFi connection lost(%d), reconnection\n", WiFi.status());
              WiFi.reconnect();
              
              // 有限次尝试重连
              for(int i = 0; i < 20; i++) {
                  if(WiFi.status() == WL_CONNECTED) {
                      Serial.println("WiFi reconnection Successed"); 
                      break;
                  }
                  delay(500);
              }
          }
      }
  }
}

 

  

 

posted @ 2025-02-13 16:44  CHHC  阅读(123)  评论(0)    收藏  举报