ESP32在低功耗模式下保持Wi-Fi连接不丢失,核心是使用ESP-MESH或Wi-Fi的“Modem Sleep”模式,而非完全断电。具体做法:启用Wi-Fi的modem_sleep,此时CPU可进入light sleep,但Wi-Fi模块周期性唤醒监听Beacon帧,连接状态由驱动维护。若需RTC定时唤醒,可配置定时器触发light sleep唤醒,但注意唤醒后需调用esp_wifi_connect()重连(若连接已断)。实操建议:1) 使用esp_pm_config_esp32_t配置电源管理,设置max_freq_mhz和min_freq_mhz;2) 在light sleep前调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)启用modem sleep;3) RTC唤醒后检查wifi状态,若为WIFI_STA_DISCONNECTED则重连。若需深度睡眠(deep sleep),Wi-Fi状态必然丢失,只能通过快速重连(保存SSID/密码)恢复,无法保持。
mcuku 阿沐 · 2026-08-27