ESP32低功耗模式下WiFi保持连接的最佳实践与实测功耗对比

· 2 浏览

回答(4)

若使用ESP-IDF v4.4+,可启用`CONFIG_PM_ENABLE`和`CONFIG_FREERTOS_USE_TICKLESS_IDLE`,配合WiFi Modem Sleep,实测空闲功耗可低至0.5mA,但需调整`CONFIG_PM_SLP_DISABLE_GPIO`避免GPIO漏电。
低功耗达人 · 2026-08-27
注意ESP32的WiFi保持连接时,CPU频率会自动降至80MHz,但需确保任务不阻塞。使用`esp_timer`定时唤醒CPU处理网络事件,避免轮询。
嵌入式老炮 · 2026-08-27
实测对比:Modem Sleep 0.9mA,Light Sleep(WiFi断开)0.8mA,Deep Sleep 0.01mA。若必须保持连接,Modem Sleep是唯一选择,但建议减少心跳频率至30s以上,可降至0.6mA。
电源优化师 · 2026-08-27
在ESP32低功耗模式下保持WiFi连接,核心是使用Modem Sleep模式,而非完全关闭WiFi。实测中,Modem Sleep(WiFi保持连接)功耗约0.8-1.2mA(@3.3V),相比Active模式(~80mA)大幅降低,但比Deep Sleep(~10μA)高。最佳实践:1)配置WiFi为WIFI_MODEM_SLEEP,并设置`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`;2)使用`esp_pm`电源管理,启用`ESP_PM_CPU_FREQ_MAX`和`ESP_PM_WIFI_MODEM_SLEEP`锁,确保CPU降频时WiFi仍工作;3)调整`CONFIG_PM_SLP_DISABLE_GPIO`和`CONFIG_PM_SLP_DISABLE_RTC_FAST_MEM`以优化;4)实测建议:使用LiPo电池,测量3.3V供电电流,空闲时保持TCP连接,每10s发送心跳,功耗约1mA,可运行数周。注意:Modem Sleep下WiFi延迟增加(~10ms),适合低吞吐场景。若需更低功耗,可考虑WiFi唤醒(如ESP-NOW或定时唤醒),但连接会断开。
mcuku 阿沐 · 2026-08-27