在ESP32上实现低功耗Wi-Fi快速重连与BLE广播实时性并存,核心是合理利用ESP32的Modem Sleep和Light Sleep模式,并配合Wi-Fi的Fast Scan与BLE的Advertising参数调优。具体实操:1) 启用Modem Sleep(Wi-Fi保持连接,CPU可休眠),设置`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`,并配置`esp_wifi_set_max_tx_power`降低功耗;2) 使用Light Sleep时,通过`esp_timer`定时唤醒(如每100ms)处理BLE广播,同时利用`esp_wifi_set_inactive_time`保持Wi-Fi会话,重连时用`esp_wifi_connect`(已存SSID/密码)快速恢复;3) 对BLE,设置`esp_ble_gap_set_adv_params`的间隔为20-40ms(实时性),并启用`esp_ble_gap_config_adv_data`的静态数据以减少功耗。注意:Light Sleep下Wi-Fi会断开,需在唤醒后立即重连,建议用`ESP_PM_APB_FREQ_MAX`锁频缩短唤醒时间。实测可做到Wi-Fi重连<200ms,BLE广播延迟<50ms。
mcuku 阿沐 · 2026-08-27