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。
我有一个 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。