如何修复 ESP32 不连接 Wifi 网络的问题
如果你使用类似我们的最小 ESP32 wifi 示例的程序:
example-5.txt
#include <WiFi.h>
void setup() {
Serial.begin(115200);
WiFi.begin("MyWifiNetworkName", "MyWifiPassword");
while (WiFi.status() != WL_CONNECTED) {
Serial.println("Wifi connecting...");
delay(500);
}
Serial.println("Wifi connected");
}
void loop() {
// 将你的主要代码放在这里,重复运行:
}而你只看到循环的
example-4.txt
消息,按下你板子的 RESET 按钮(或拔下并重新插入电源以重置)然后再试。如果你在尝试重置 5 次后仍然只看到 Wifi connecting... 消息,很可能是你的 wifi 凭据错误或 ESP32 看不到你的 Wifi 网络!
否则,如果你的 ESP32 有时几乎立即连接到 Wifi 网络,有时似乎根本不连接,请使用此代码在 5 秒内未连接时自动重置 ESP32:
example-3.cpp
uint32_t notConnectedCounter = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.println("Wifi connecting...");
notConnectedCounter++;
if(notConnectedCounter > 150) { // 如果 15 秒后未连接则重置板
Serial.println("Resetting due to Wifi not connecting...");
ESP.restart();
}
}完整示例:
example-2.cpp
#include <WiFi.h>
void setup() {
Serial.begin(115200);
WiFi.begin("MyWifiSSID", "MyWifiPassword");
// 等待 wifi 连接
uint32_t notConnectedCounter = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.println("Wifi connecting...");
notConnectedCounter++;
if(notConnectedCounter > 150) { // 如果 5 秒后未连接则重置板
Serial.println("Resetting due to Wifi not connecting...");
ESP.restart();
}
}
Serial.print("Wifi connected, IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// 将你的主要代码放在这里,重复运行:
}或者,使用此函数:
example-1.cpp
* 等待 WiFi 连接,如果未连接则重启
*/
void waitForWiFiConnectOrReboot(bool printOnSerial=true) {
uint32_t notConnectedCounter = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(100);
if(printOnSerial) {
Serial.println("Wifi connecting...");
}
notConnectedCounter++;
if(notConnectedCounter > 150) { // 如果 5 秒后未连接则重置板
if(printOnSerial) {
Serial.println("Resetting due to Wifi not connecting...");
}
ESP.restart();
}
}
if(printOnSerial) {
// 打印 wifi IP 地址
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
}Check out similar posts by category:
Arduino, ESP8266/ESP32, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow