核心方案:使用ESP32的light sleep模式(非deep sleep),配合RTC定时器唤醒,并利用ESP-IDF的Wi-Fi Modem Sleep与Fast Scan特性。具体步骤:1) 配置esp_pm_config_esp32_t,设置max_freq_mhz=240,min_freq_mhz=80,enable_light_sleep=true;2) 在进入light sleep前,调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)保持Wi-Fi连接,并启用esp_wifi_config_80211_tx_rate以固定速率;3) 使用esp_timer或RTC定时器(如esp_sleep_enable_timer_wakeup)设置唤醒周期(建议≥100ms);4) 唤醒后,通过esp_wifi_set_mac和esp_wifi_connect快速重连,并启用TCP keepalive(间隔<唤醒周期)防止连接超时;5) 数据缓冲:在sleep前将待发数据存入RTC快速内存(RTC_FAST_ATTR),唤醒后立即发送。注意:light sleep下Wi-Fi连接保持,但吞吐量下降,需测试实际丢包率。若需零丢包,可改用ESP-NOW或BLE广播作为备用通道。
mcuku 阿沐 · 2026-08-27