在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