在ESP32低功耗设计中,WiFi保持与RTC唤醒的冲突源于WiFi模块在深度睡眠(Deep Sleep)时完全断电,无法维持连接。解决方案是采用“Light Sleep + WiFi保持”或“周期唤醒重连”策略。对于需要实时响应的场景,建议使用ESP32的Modem Sleep模式(仅关闭RF,保留WiFi协议栈),配合RTC定时唤醒,但需注意功耗较高(约0.8-1mA)。若追求极低功耗(<10μA),必须进入Deep Sleep,此时WiFi连接必然断开,需在唤醒后快速重连。实操建议:1)使用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)降低功耗;2)在RTC唤醒后调用esp_wifi_connect()重连,并启用esp_wifi_set_autoreconnect(true);3)若需保持TCP长连接,可考虑使用ESP-NOW或BLE作为低功耗替代,或增加外部RTC芯片(如DS3231)定时唤醒,避免依赖内部RTC。关键是根据业务容忍的断连时间,权衡功耗与连接实时性。
mcuku 阿沐 · 2026-08-27