一年多以来,我一直在使用 ESP8266 运行我的智能家居系统,但有时会遇到连接问题。在失去 WiFi 后(例如用新固件更新路由器)ESP8266 并没有全部重新连接到 MQTT 甚至 WiFi。我不确定这是不是因为某些服务需要重新启动。而这正是我的问题,很长一段时间以来我都找不到任何答案。所有代码示例均假定 ESP8266 重新启动(重启),然后在 WiFi 可用后初始化所有必需的服务。
简单的答案是“当您失去 WiFi 时,只需重新启动”,然后应用此标准程序。但我不能这样做,因为大多数 ESP 也会检查手动操作(上下卷帘、开灯和关灯……)。所以我需要继续运行 ESP 并等待 WiFi 恢复。
这些服务是必需的,并在 setup() 循环中初始化:
ArduinoOTA、
webServer (ESP8266WebServer)、
MDNS (ESP8266mDNS)、
NTPclientLib、
MQTT (pubsubclient)
在 WiFi 重新连接后,我需要重新启动 (xxx.begin()) 这些吗还是他们会保持活跃?
MQTT 很清楚,我认为 NTP 也是如此(至少我发现我必须重新激活)。
如果这里有人能给我说几句话就太好了,这样我就可以缩小我的非连接 ESP8266 问题的范围。