BluFi 設定ガイド
このドキュメントでは、小智ファームウェアで BluFi(BLE による Wi-Fi 設定)を有効にして使う方法を説明します。Wi-Fi の接続と認証情報の保存は、リポジトリに含まれる esp-wifi-connect コンポーネントが担当します。プロトコルの詳細は Espressif 公式の BluFi ドキュメントを参照してください。
前提条件
- BLE に対応したチップとファームウェア構成であること。
idf.py menuconfigでWiFi Configuration Method -> ESP-BluFi(CONFIG_USE_ESP_BLUFI_WIFI_PROVISIONING=y)を有効にします。BluFi を使う場合は、同じメニューの Hotspot を無効にしてください。無効にしないと、既定でホットスポット設定が優先されます。- プロジェクトの
app_mainが行う既定の NVS とイベントループの初期化はそのまま残してください。 CONFIG_BT_BLUEDROID_ENABLEDとCONFIG_BT_NIMBLE_ENABLEDは排他的で、どちらか一方だけを選びます。
動作の流れ
- スマートフォン(公式の EspBlufi アプリまたは他の BluFi クライアント)が BLE でデバイスに接続し、接続先 Wi-Fi の SSID とパスワードを送ります。BluFi プロトコルを使って、デバイスがスキャンした Wi-Fi の一覧を要求することもできます。
ESP_BLUFI_EVENT_REQ_CONNECT_TO_APで、デバイスが認証情報をSsidManagerに保存します(esp-wifi-connectコンポーネントが NVS に永続化します)。- 続いてデバイスが
WifiStationを起動してスキャンと接続を行い、進行状況を BluFi 経由で返します。 - 設定に成功すると、デバイスは新しい Wi-Fi に自動で接続します。失敗した場合はエラー状態を返します。
手順
- 設定:menuconfig で
ESP-BluFiを有効にし、ファームウェアをビルドして書き込みます。 - 設定の開始:保存済みの Wi-Fi 情報がない状態で初めて起動すると、デバイスは自動的に設定モードに入ります。
- スマートフォン側:EspBlufi アプリ(または他の BluFi クライアント)を開き、デバイスをスキャンして接続します。必要に応じて暗号化を有効にし、Wi-Fi の SSID とパスワードを入力して送信します。
- 結果の確認:
- 成功:BluFi が成功を通知し、デバイスが Wi-Fi に接続します。
- 失敗:BluFi が失敗を通知します。再試行するか、ルーターを確認してください。
注意事項
- BluFi はホットスポット設定と同時には使えません。ホットスポット設定が有効なままだと、デバイスはそちらを使います。menuconfig では設定方式を 1 つだけ残してください。
- 繰り返しテストするときは、保存済みの SSID(NVS の
wifi名前空間)を消去するか上書きして、古い認証情報が次の試験に影響しないようにしてください。 - 独自の BluFi クライアントを作る場合は、上記の公式ドキュメントにあるプロトコルのフレーム形式に従ってください。
- EspBlufi アプリのダウンロードリンクは公式ドキュメントに掲載されています。
- デバイスは Bluetooth 名
Xiaozhi-Blufiをアドバタイズします(ESP_BLUFI_EVENT_INIT_FINISHで設定)。ESP-IDF 5.5.1 でビルドされた旧ファームウェアはBLUFI_DEVICEを使っていました。現在のファームウェアには ESP-IDF v6.0.1 以降が必要です。