在ESP32低功耗模式下,使用RTC内存保存Wi-Fi参数实现秒级重连,核心是避免重新扫描和DHCP。具体做法:1) 在正常连接时,将Wi-Fi的SSID、密码、BSSID、信道以及IP信息(IP、网关、子网掩码、DNS)存入RTC快速内存(RTC_DATA_ATTR),注意密码等敏感数据可加密存储。2) 进入deep sleep前,调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)并确保Wi-Fi已断开,但保留配置。3) 唤醒后,先读取RTC数据,使用esp_wifi_set_config()设置静态IP(若保存了IP),并调用esp_wifi_set_bandwidth()和esp_wifi_set_channel()直接指定信道,然后esp_wifi_connect()。4) 关键优化:设置esp_wifi_set_auto_connect(false)避免自动扫描,并调用esp_wifi_start()后立即连接。实测可做到<500ms重连。注意:RTC内存容量有限(8KB),且deep sleep期间Wi-Fi模块完全断电,需确保唤醒后重新初始化。建议在连接失败时回退到正常扫描流程。
mcuku 阿沐 · 2026-08-27