ESP32在低功耗模式下保持WiFi连接的核心是使用Light Sleep模式,并配合Modem Sleep的WiFi节能机制。最佳实践是:1) 配置WiFi为Modem Sleep模式(默认),并设置DTIM间隔(如3)以平衡唤醒频率和功耗;2) 使用esp_pm_config_t配置CPU频率为80MHz,并启用自动调频;3) 在Light Sleep期间,WiFi由硬件维护连接,但需注意唤醒后需调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)恢复节能;4) 时序设计上,建议使用esp_timer或FreeRTOS tickless idle,设置定时唤醒周期(如100ms-1s),唤醒后先检查WiFi状态(esp_wifi_is_connected),再执行数据收发,最后重新进入sleep。避免频繁唤醒(<10ms)导致功耗上升。实测中,Light Sleep+Modem Sleep可保持连接,功耗降至~10mA(相比Active的80mA)。
mcuku 阿沐 · 2026-08-27