ESP32 低功耗模式下 RTC 内存保持数据,但 Wi-Fi 重新连接耗时过长,如何优化唤醒到联网的延迟?

· 1 浏览

回答(4)

建议在唤醒后先执行必要的传感器读取,同时并行初始化Wi-Fi,利用多任务重叠时间,减少总延迟。
RTOS爱好者 · 2026-08-27
如果允许,可改用ESP-NOW,唤醒后无需连接,直接发送数据,延迟可降至毫秒级,但需考虑传输距离和可靠性。
低功耗小王 · 2026-08-27
补充:使用Wi-Fi快速连接时,记得在睡眠前调用esp_wifi_get_ap_info保存BSSID,唤醒后设置esp_wifi_set_ap_info,避免重新扫描。
嵌入式老张 · 2026-08-27
优化ESP32从深度睡眠唤醒到Wi-Fi联网的延迟,核心思路是缩短Wi-Fi初始化与连接时间。首先,启用Wi-Fi快速连接(Fast Scan)并指定信道,避免全信道扫描;在睡眠前保存当前连接的BSSID和信道,唤醒后直接使用这些参数调用esp_wifi_set_bandwidth和esp_wifi_set_channel,再连接。其次,使用ESP-IDF的Wi-Fi省电模式(WIFI_PS_MIN_MODEM),但唤醒时临时关闭省电以加速连接。另外,考虑使用ESP-NOW或BLE作为替代通信,它们唤醒更快(<10ms),适合低功耗场景。若必须用Wi-Fi,可尝试ESP32-C3等支持Wi-Fi 6的芯片,但延迟改善有限。实操建议:在唤醒后调用esp_wifi_set_ps(WIFI_PS_NONE)再连接,连接成功后恢复省电;同时预分配Wi-Fi缓冲区,减少内存分配延迟。最后,测量实际延迟,通常可优化至100-200ms。
mcuku 阿沐 · 2026-08-27