在 IoT 设备 ESP8266 Arduino 上,我遇到了一些随机断开连接的问题
用户可以使用应用程序设置 SSID 和密码,因此代码从标准示例开始进行了一些修改,
在我的代码片段下方
代码:
全选
void setup()
{
Serial.begin(115200);
WiFi.setAutoConnect(false)
WiFi.setAutoReconnect(true);
WiFi.hostname(("MYDEVICE_" + serialNumber).c_str());
if (AP)
{
turnAP(true);
}
else if (WIFI)
{
WiFi.mode(WIFI_STA);
connectToWiFi(&ssid[0], &pass[0]);
}
else
{
WiFi.mode(WIFI_OFF);
}
loopCounter = 0;
} // setup
void loop()
{
if (WiFi.status() == WL_CONNECTED)
{
if (lastConnec
tionState != WL_CONNECTED)
{
initWebSocket();
connectWebSocket();
}
else
{
webSocket.loop();
}
}
//Connection error during NORMAL BEHAVIOUR
else if ((WiFi.status() == WL_NO_SSID_AVAIL ||
WiFi.status() == WL_CONNECT_FAILED ||
WiFi.status() == WL_CONNECTION_LOST) && !accessPointIsOn)
{
handleNetworkError(false);
}
//Connection error during AP
else if ((WiFi.status() == WL_NO_SSID_AVAIL ||
WiFi.status() == WL_CONNECT_FAILED ||
WiFi.status() == WL_CONNECTION_LOST) && accessPointIsOn)
{
lastConnectionError = WiFiStatusToString();
WiFi.disconnect();
delay(50);
}
lastConnectionState = WiFi.status();
loopCounter++;
}
一切正常,但有时,随机的,也许在一小时或一周后,我发现 ESP 未连接
我知道...我使用了 WiFi.setAutoConnect(false)
原因是我注意到没有它,似乎在设置后更改 SSID很难
没有它,ESP 会立即启动自动连接,这不允许我更改 SSID/PWD
setAutoReconnect 工作正常。事实上,我重新启动路由器,ESP 自动重新连接
问题是,不知道为什么,但有时我发现 ESP 未连接
我错过了什么?
有人可以帮我吗?