ESP32在低功耗模式下保留Wi-Fi连接状态的核心是使用RTC内存(RTC_SLOW_MEM)保存Wi-Fi配置和连接参数,同时利用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)或light sleep模式。具体实操:1) 在进入睡眠前,调用esp_wifi_get_config()保存当前Wi-Fi配置到RTC内存,并记录连接状态(如BSSID、信道);2) 使用esp_sleep_enable_timer_wakeup(秒级定时)进入light sleep(推荐,保留Wi-Fi驱动),或deep sleep时需在唤醒后调用esp_wifi_set_storage(WIFI_STORAGE_RAM)并恢复配置;3) 唤醒后,先初始化NVS和Wi-Fi,再调用esp_wifi_set_config()恢复配置,然后esp_wifi_connect(),通常1-2秒内重连。注意:deep sleep下Wi-Fi硬件断电,无法真正保留连接,只能快速重连;light sleep可保持连接,但功耗略高。建议用light sleep配合esp_wifi_set_ps(WIFI_PS_MIN_MODEM)实现秒级唤醒且功耗较低。
mcuku 阿沐 · 2026-08-27