真正的干净方式,始终工作,自动重新连接

问题描述 投票:0回答:1

我希望提出一个对这个盾牌的用户有用的问题。

开头:

WiFi.setAutoReconnect(true);
似乎并不能防止100%的断线。

我测试了很多扩展板(ESP12F、ESP01),在某些情况下我注意到自动重新连接无法正常工作。

事实:

  • 当扩展板连接到电脑/调试器时,我无法重现。
  • 什么时候发生的,我尝试根据按钮按下来执行任务,例如:
 loop(){
     if (digitalRead... == HIGH) do_something()
 }

还有盾牌……做点什么吧!所以,护盾没有被冻结。

  • 我尝试重置(通过硬件和软件)并且屏蔽立即重新连接。

我阅读了其他一些资料,并且经常描述这种行为(例如 https://randomnerdtutorials.com/solved-reconnect-esp32-to-wifi/ )。简介:尝试 WiFi.reconnect(),如果不起作用尝试 ESP.restart()。

那么,问题:

  1. 为什么会出现这种情况? arduino 库或本机 expressif 接口是否有问题?或者是一个众所周知的硬件问题无法通过软件解决?

  2. 如果确实如此,您使用什么技术来防止断开连接?我每 30 分钟设置一个计时器,如果它看到卡断开连接超过一定时间,就会重新启动它。例如。

void checkWifi() {
   if (lastPing + DELTA < millis()) ESP.restart();
}
ticker.attach(checkWifi, ...)

void loop() {
   if WiFi.isConnect() {
       lastPing = millis();
       ...
   }
}
  1. 如果无事可做,您对重启技术有何看法?频繁重启有风险吗,会减少设备寿命吗?

感谢任何想要贡献或交流印象的人!

arduino-esp8266
1个回答
0
投票

大约一年后,我分享我找到的答案:

  • 没有100%可靠的方法
  • 如果可能,请使用 ESP32。 ESP01..12 一般不太可靠。
  • 如果 wifi 在一定时间内没有重新连接,请使用看门狗并重置屏蔽
© www.soinside.com 2019 - 2024. All rights reserved.