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);
}
}
}
}
}


7435

被折叠的 条评论
为什么被折叠?



