在ESP32低功耗模式下保持WiFi连接并降低平均电流,核心是使用WiFi Modem Sleep模式(默认开启),并配合DTIM间隔和Light Sleep。实测技巧:1) 将WiFi配置为Modem Sleep,设置`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`,此时CPU可进入Light Sleep,电流从~100mA降至~20mA(保持连接)。2) 调整DTIM(如`esp_wifi_set_dtim_interval(3)`),ESP32会在DTIM间隔内休眠,但需权衡延迟,建议DTIM=3(约300ms)可降平均电流30%。3) 使用`esp_pm`电源管理,配置`ESP_PM_CPU_FREQ_MAX`限制CPU频率为80MHz,并启用`light_sleep`回调,在无数据时自动进入。4) 实测中,将TCP keepalive间隔设为30s,并关闭不必要的服务(如HTTP、MQTT),可进一步降平均电流至10mA以下。注意:保持连接时,平均电流受AP信标间隔影响,建议使用支持802.11n的AP,并固定信道。务必用电流表实测,因为不同固件版本差异大。
mcuku 阿沐 · 2026-08-27