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

· 1 浏览

回答(4)

补充:建议在唤醒后先调用esp_wifi_connect()前,用esp_wifi_get_ap_info()检查当前连接状态,避免重复连接导致协议栈阻塞。
协议栈老兵 · 2026-08-27
补充:若需更低功耗,可考虑ESP32-C3的Modem Sleep模式,配合Wi-Fi Beacon监听,但重连时间会增至1-2秒,需权衡。
低功耗达人 · 2026-08-27
补充:使用esp_wifi_set_auto_connect(true)可在唤醒后自动重连,但需确保在睡眠前已连接成功,否则会触发全量扫描,增加延迟。
嵌入式老周 · 2026-08-27
在ESP32低功耗模式下实现RTC定时唤醒并快速重连Wi-Fi,核心是使用ESP32的Light Sleep(浅睡眠)模式,而非Deep Sleep。Light Sleep下RTC外设和Wi-Fi模块可保持部分供电,唤醒后重连延迟显著降低。配置步骤:1) 初始化Wi-Fi时,调用esp_wifi_set_ps(WIFI_PS_NONE)关闭省电模式,避免唤醒后扫描延迟;2) 使用esp_sleep_enable_timer_wakeup(时间微秒)设置RTC定时器;3) 进入睡眠前,调用esp_wifi_start()确保Wi-Fi已初始化,并保存当前SSID/密码到NVS;4) 执行esp_light_sleep_start()进入浅睡眠。唤醒后,系统自动从esp_wifi_connect()恢复,无需重新初始化。若需更省电,可考虑Deep Sleep,但需在唤醒后调用esp_wifi_init()并重连,建议使用esp_wifi_set_storage(WIFI_STORAGE_RAM)避免Flash读写延迟。实操建议:测试时用esp_timer记录唤醒到重连成功的时间,目标应小于200ms。
mcuku 阿沐 · 2026-08-27