繁体   English   中英

ESP32 尝试在网络掉线时重新连接而不停止循环(Arduino)

[英]ESP32 attempt reconnect to when network drops without halting loop (Arduino)

我有一个 ESP 32 从湿度传感器收集数据,然后它在我们的网络上提供服务。 我们的 WiFi 在凌晨 1 点到 6 点之间关闭(因为没有人使用它)。 ESP 不会自动尝试重新连接,因此它整夜收集数据,我现在无法访问这些数据。

出于显而易见的原因,我不希望它在与我们的网络断开连接时停止数据收集,因此我无法尝试重新连接循环。 我试过这个代码:

void loop() {
  sensor_value = analogRead(sensor_pin);
  Serial.println(sensor_value);
  push_value(float(sensor_value)/2047.0);
  
  //============
  //RELEVANT BIT
  //============

  if( WiFi.status() != WL_CONNECTED ){
    //Try to recconect if connection is lost....
    WiFi.disconnect();
    WiFi.begin(ssid, pwd);
  }
  
  delay(second_delay*1000);
}

我见过每个人在尝试重新连接之前都运行Wifi.disconnect() 有必要吗。 WiFi.begin()暂停执行吗? 不幸的是,我现在无法测试我的代码。

我正在使用 Arduino IDE 和 Wifi.h

在你问之前:是的,2047 是正确的。 我在错误的电压下运行传感器,导致大约这个最大值。

鉴于您已标记 esp8266 wifi,我假设您正在使用该库。 如果是这样,那么 wifi.begin 将不会阻止执行。 该库默认设置自动重新连接,因此它会在可用时自动重新连接到最后一个接入点。 任何客户端函数在断开连接时都会简单地返回错误代码。 我不知道在开始之前应该调用 wifi.disconnect 的任何原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM