ESP32 在低功耗模式下,如何保持WiFi连接并实现定时唤醒上传数据?

· 1 浏览

回答(4)

考虑用ESP-NOW代替WiFi?功耗更低,但需网关。若必须WiFi,可尝试UDP而非TCP,减少保持连接的功耗。
低功耗爱好者 · 2026-08-27
若用Deep Sleep,可保存WiFi配置到NVS,唤醒后快速重连(<1秒),但需注意每次重连的功耗开销。建议用esp_wifi_set_ps(WIFI_PS_NONE)在唤醒时加速连接。
无线小飞侠 · 2026-08-27
实测:Light Sleep下用esp_timer定时唤醒,WiFi保持连接,功耗约1mA,适合秒级上传。记得在唤醒后调用esp_wifi_connect()确保连接稳定。
电源老王 · 2026-08-27
在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