BluFi 配網指南

BluFi 是 Espressif 官方提供的 BLE Wi-Fi 配網解決方案。本文件說明如何在小智韌體中啟用和使用 BluFi 配網功能。

前置條件

  • 需要支援 BLE 的 ESP32 晶片與韌體配置
  • 在 idf.py menuconfig 中啟用 WiFi Configuration Method -> ESP-BluFi
  • 保持預設的 NVS 與事件迴圈初始化(專案的 app_main 已處理)

配置說明

1. 啟用 BluFi

在 menuconfig 中設定:

CONFIG_USE_ESP_BLUFI_WIFI_PROVISIONING=y

注意:如果想使用 BluFi,必須關閉同一選單下的 Hotspot 選項,否則預設使用熱點配網模式。

2. 藍芽配置

CONFIG_BT_BLUEDROID_ENABLED 和 CONFIG_BT_NIMBLE_ENABLED 這兩個宏應二選一,不能同時啟用。

3. 裝置名稱

裝置的藍芽廣播名稱為 Xiaozhi-Blufi(韌體在 ESP_BLUFI_EVENT_INIT_FINISH 事件中設定)。舊版韌體在 ESP-IDF 5.5.1 下編譯時名稱為 BLUFI_DEVICE;當前韌體要求 ESP-IDF v6.0.1 或更高版本,名稱統一為 Xiaozhi-Blufi。

工作流程

  flowchart LR
    A[手機 BluFi 客戶端] --> B[連線裝置 BLE]
    B --> C[傳送 Wi-Fi 憑據]
    C --> D[裝置寫入 NVS]
    D --> E[啟動 Wi-Fi 連線]
    E --> F{連線成功?}
    F -->|是| G[配網完成]
    F -->|否| H[返回失敗狀態]
  1. 手機端透過 BluFi(如官方 EspBlufi App 或自研客戶端)連線裝置,傳送 Wi-Fi SSID/密碼;手機端也可以透過 BluFi 協議獲取裝置掃描到的 Wi-Fi 列表
  2. 裝置側在 ESP_BLUFI_EVENT_REQ_CONNECT_TO_AP 中將憑據寫入 SsidManager
  3. 啟動 WifiStation 掃描並連線,狀態透過 BluFi 返回
  4. 配網成功後裝置會自動連線新 Wi-Fi

使用步驟

1. 編譯韌體

配置並編譯韌體:

idf.py menuconfig  # 啟用 ESP-BluFi
idf.py build
idf.py flash

2. 觸發配網

裝置首次啟動且沒有已儲存的 Wi-Fi 時會自動進入配網模式。

3. 手機端操作

  1. 開啟 EspBlufi App(或其他 BluFi 客戶端)
  2. 搜尋並連線裝置(可選擇是否加密)
  3. 按提示輸入 Wi-Fi SSID/密碼併傳送

4. 觀察結果

  • 成功:BluFi 報告連線成功,裝置自動連線 Wi-Fi
  • 失敗:BluFi 返回失敗狀態,可重新傳送或檢查路由器

注意事項

  • 互斥性:BluFi 配網不支援與熱點配網同時開啟;如果熱點配網已經啟動,則預設使用熱點配網。請確保 menuconfig 中只保留一種配網方式
  • 儲存清除:多次測試時,建議清除 NVS 中 wifi 名稱空間的舊配置,避免干擾
  • 協議規範:使用自定義 BluFi 客戶端需遵循官方協議幀格式

相關連結