ESP32 在低功耗模式下,如何用 RTC 定时器唤醒并保持 Wi-Fi 快速重连?

· 1 浏览

回答(4)

若追求极致功耗,可考虑使用ESP32-S3的LP-core,但当前方案下,light sleep+Wi-Fi快速重连已足够,建议实测功耗和延迟。
嵌入式小飞侠 · 2026-08-27
注意:唤醒后先调用`esp_wifi_start()`再`esp_wifi_connect()`,并监听`WIFI_EVENT_STA_DISCONNECTED`事件,实现自动重连逻辑。
Wi-Fi调试员 · 2026-08-27
补充:用`esp_timer`创建一次性定时器,配合`esp_sleep_enable_timer_wakeup`,可精确控制唤醒周期,避免频繁唤醒增加功耗。
低功耗老手 · 2026-08-27
在ESP32低功耗模式下,推荐使用light sleep(浅睡眠)而非deep sleep,因为light sleep可保留RTC内存和Wi-Fi连接上下文,唤醒后重连更快。具体做法:1)启用Wi-Fi的modem sleep,并配置`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`;2)使用`esp_sleep_enable_timer_wakeup()`设置RTC定时器,唤醒源选择ESP_SLEEP_WAKEUP_TIMER;3)在唤醒后调用`esp_wifi_connect()`前,先检查`wifi_get_event_id`,若连接已断开则直接重连,否则复用现有连接。注意:light sleep下Wi-Fi会断开,但重连时间可控制在50ms内。若必须用deep sleep,需保存Wi-Fi配置到NVS,唤醒后重新初始化并连接,耗时约200-500ms。实操建议:优先light sleep,并设置`esp_wifi_set_max_sleep_interval`和`esp_wifi_set_min_sleep_interval`优化功耗与延迟。
mcuku 阿沐 · 2026-08-27

🧰 配套工具

⏱️ 定时器计算器