ESP32可扫描WiFi但无法连接路由器,WiFi.status返回6(Arduino IDE)
ESP32 WiFi连接失败(状态码6)排查与解决
一、代码逻辑问题修正
你的代码存在几个影响连接的细节:
- 过早检测连接状态:在
WiFi.begin()后立刻调用WiFi.status(),此时连接流程尚未启动,必然返回6(WL_DISCONNECTED),这个值不代表最终连接结果。 - 频繁断开重连的无效操作:循环中每次检测未连接就执行
WiFi.disconnect()+WiFi.reconnect(),会打断正在进行的连接尝试,反而降低成功率。
修正后的代码示例:
#include<WiFi.h> const char *ssid = "my_SSID"; const char *password = "my_Password"; const unsigned long CONNECT_TIMEOUT = 20000; // 20秒超时 void setup() { Serial.begin(115200); delay(2000); WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); Serial.println("scan start"); int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) { Serial.println("no networks found"); } else { Serial.print(n); Serial.println(" networks found"); // 打印扫描到的目标网络信号强度,确认信号质量 for (int i = 0; i < n; ++i) { if (strcmp(WiFi.SSID(i).c_str(), ssid) == 0) { Serial.print("目标WiFi信号强度: "); Serial.println(WiFi.RSSI(i)); break; } } } Serial.print("正在连接 "); Serial.println(ssid); WiFi.begin(ssid, password); unsigned long startMillis = millis(); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); // 超时退出,避免无限循环 if (millis() - startMillis > CONNECT_TIMEOUT) { Serial.println("\n连接超时"); break; } } if (WiFi.status() == WL_CONNECTED) { Serial.println("\nWiFi connected."); Serial.println("ESP32 IP address: "); Serial.println(WiFi.localIP()); } else { Serial.print("\n最终连接状态码: "); Serial.println(WiFi.status()); // 打印状态对应的描述 switch(WiFi.status()){ case WL_NO_SSID_AVAIL: Serial.println("未找到指定SSID"); break; case WL_CONNECT_FAILED: Serial.println("密码错误或连接被拒绝"); break; case WL_DISCONNECTED: Serial.println("已断开连接"); break; } } } void loop() {}
二、路由器侧排查
- WiFi频段与信道:ESP32对5G WiFi的部分DFS信道(如149及以上)支持受限,优先切换路由器到2.4G频段,或选择非DFS的5G信道(如36-48)。
- 加密方式:确保路由器使用
WPA2-PSK(AES)加密,ESP32的Arduino库对WPA3支持不完善,若路由器开启WPA3,需切换为WPA2。 - MAC地址过滤:检查路由器是否启用MAC地址白名单,若开启,需将ESP32的MAC地址添加到允许列表(可通过
Serial.println(WiFi.macAddress())获取ESP32的MAC)。 - 信号强度:若目标WiFi的RSSI值低于-70dBm,说明信号过弱,尝试靠近路由器测试,或增加WiFi中继。
- 连接数限制:部分低端路由器有最大连接设备数限制,若已达上限,会拒绝新设备连接。
三、硬件与环境排查
- 电源供应:ESP32连接WiFi时功耗较高,若使用USB端口供电,确保USB线质量良好,避免电压不足导致连接失败(可尝试使用独立3.3V电源模块)。
- 环境干扰:避开微波炉、蓝牙设备等强干扰源,这类设备会影响2.4G WiFi信号稳定性。
内容的提问来源于stack exchange,提问作者MA Munir
相关产品推荐
相关产品推荐

