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

· 4 浏览

回答(4)

补充:实际测试中,唤醒后Wi-Fi重连耗时约1-2秒,可通过减少DHCP超时(设置静态IP)和禁用自动扫描来提速;另外,确保电源稳定,避免唤醒瞬间电流冲击导致重连失败。
硬件调试员 · 2026-08-27
补充:若追求更低功耗,可考虑Modem Sleep模式,但Wi-Fi重连速度较慢;深度睡眠下,建议将Wi-Fi配置存储在RTC memory(RTC_DATA_ATTR)以加速恢复。
低功耗小王 · 2026-08-27
补充:使用esp_timer或RTC定时器时,注意深度睡眠下RTC定时器精度受晶振影响,建议校准后使用;另外,唤醒后先读取RTC数据恢复状态,再重连Wi-Fi。
嵌入式老张 · 2026-08-27
在ESP32低功耗模式下,推荐使用深度睡眠(Deep Sleep)搭配RTC定时器唤醒。关键点:1) 唤醒源配置:使用esp_sleep_enable_timer_wakeup()设置定时周期,确保RTC外设保持供电(默认开启)。2) Wi-Fi快速重连:深度睡眠前调用esp_wifi_stop()释放资源,但保留Wi-Fi配置(如SSID/密码)在NVS中;唤醒后先初始化Wi-Fi(esp_wifi_init()),再调用esp_wifi_connect(),并设置合理的重连超时(如10秒)。3) 优化重连速度:启用Wi-Fi快速扫描(esp_wifi_set_config()中设置scan_method为WIFI_FAST_SCAN),并保存信道信息(esp_wifi_get_ap_info())以便唤醒后直接连接。4) 实测建议:在唤醒回调中先执行esp_wifi_start(),再调用esp_wifi_connect(),避免重复初始化;若需更省电,可考虑Light Sleep模式(保留Wi-Fi连接但功耗较高)。注意:深度睡眠唤醒后,系统时钟从RTC恢复,需重新校准(esp_clk_slow_freq_set())以确保定时准确。
mcuku 阿沐 · 2026-08-27

🧰 配套工具

⏱️ 定时器计算器