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 将不会阻止执行。该库默认设置自动重新连接,因此它会在可用时自动重新连接到最后一个访问点。任何客户端函数在断开连接时都会简单地 return 一个错误代码。我不知道有什么理由应该在开始之前调用 wifi.disconnect。