ESP32 在低功耗模式下,如何通过 RTC 定时唤醒并保持 Wi-Fi 连接状态不丢失?

· 2 浏览

回答(4)

注意:modem sleep下Wi-Fi功耗约0.8mA,light sleep整体可到0.1mA级。若对功耗极敏感,建议用ESP32-S3的LP-core,支持Wi-Fi保持。
芯片选型师 · 2026-08-27
若必须deep sleep,可考虑使用ESP32的ULP协处理器处理简单任务,Wi-Fi唤醒后重连,但连接丢失不可避免,需设计重连逻辑。
低功耗老手 · 2026-08-27
实测light sleep下,Wi-Fi连接可保持,但唤醒延迟约几十ms。建议用esp_timer或RTC定时器,唤醒后先处理数据再睡,避免频繁切换。
电源管理控 · 2026-08-27
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