ESP32やNordicのnRFシリーズなど主要なマイコンプラットフォームでは公式のBLE経由のWi-Fi設定(Provisioning)ツールが提供されています。しかしRaspberry Pi Pico Wには同様の設定ツールは提供されていません。本記事では、BLE経由でPico WおよびPico 2 WのWi-Fi設定(SSIDやパスワード)を行うシンプルな実装を紹介します。つまり、ついカッとなって書いた。
実装には、pico-sdkを利用しています。次のリポジトリでコードを公開しています。
実装した機能
- BLEを使用してWi-FiのSSIDとパスワードを設定できます
- DHCPで割り当てられたIPアドレスをBLEで取得できます
- Just Worksでペアリングします(暗号通信しますが、認証はしていません)
- 専用アプリではなく、汎用のLightBlueなどの一般的なBLEデバッグアプリで設定できます
使い方
- リポジトリのファームウェアを書き込んだPico Wを起動します
- 汎用BLEデバッグアプリでPico Wに接続します
- 専用のGATT Characteristicを通じてSSIDとパスワードを送信します
- 接続に成功するとオンボードLEDを点灯します
- DHCPで取得したIPアドレスはBLE経由で確認できます
Characteristic Name | UUID | Description |
---|---|---|
SSID | BE3D7601-0EA0-4E96-82E0-89AA6A3DC19F |
Wi-Fi SSID (read/write) |
Password | BE3D7602-0EA0-4E96-82E0-89AA6A3DC19F |
Wi-Fi password (write only) |
IP Address | BE3D7603-0EA0-4E96-82E0-89AA6A3DC19F |
Acquired IP address (read/notify) |

こういうツールは公式が用意してくれていればみんな幸せなんですけどね。