在ESP32低功耗模式下保持WiFi连接并定时唤醒上传数据,核心是使用ESP32的Light Sleep模式(而非Deep Sleep),因为Deep Sleep会完全断开WiFi。具体做法:1) 配置WiFi的modem sleep为WIFI_MODEM_SLEEP,并启用WiFi的自动重连(esp_wifi_set_ps(WIFI_PS_MIN_MODEM));2) 使用esp_timer或esp_sleep_enable_timer_wakeup设置定时唤醒,但注意Light Sleep下定时器仍可工作;3) 在唤醒后,检查WiFi连接状态,若断开则调用esp_wifi_connect()重连,然后通过HTTP或MQTT上传数据;4) 上传完成后再次进入Light Sleep。注意:Light Sleep的功耗约0.8mA(比Deep Sleep高),但能保持连接。若需更低功耗,可考虑Deep Sleep + RTC存储WiFi参数,但需每次唤醒后重新连接(耗时约1-2秒)。建议根据上传频率权衡:若间隔>10秒,用Deep Sleep更省电;若<10秒,用Light Sleep。
mcuku 阿沐 · 2026-08-27