ESP32、nRF52、Raspberry Pi Pico W、STM32などでBluetooth Low Energy機器を開発するときは、GATT(Generic Attribute Profile)サーバーの構造を確認する作業が欠かせません。Windows上で動く軽快なGATTエクスプローラーがあれば、ファームウェアのデバッグやIoTデータの検証が格段に楽になります。
この記事では、周囲のBLE機器を探索し、GATTの階層をたどって、キャラクタリスティックの読み書きと通知を検証する手順を解説します。
BLE GATTの構造
セントラル側の機器がBLEペリフェラルに接続すると、通信はGATTの階層に沿って行われます。
- プロファイル: Heart Rate ProfileやHID over GATTなど、あらかじめ定義されたサービスの組み合わせです。
- サービス: 16bitの標準UUIDまたは128bitの独自UUIDで識別される、データのまとまりです。
- キャラクタリスティック: 個々のデータ項目で、
Read、Write、Write Without Response、Notify、Indicateなどの操作に対応します。 - ディスクリプタ: 値に関する補足情報です。CCCD(Client Characteristic Configuration Descriptor)などが該当します。
手順: GATTサービスを調査する
1
fTool BLE Scanner Proで周囲のBLE機器をスキャン
fTool BLE Scanner Proを起動し、周囲のアドバタイズを受信します。
2
ターゲット機器にGATT接続
接続ボタンをクリックし、プライマリサービスツリーを展開します。
3
キャラクタリスティックの値を取得・送信
Read/Write/Notifyプロパティを操作し、生バイト列(Hex/UTF-8)をテストします。
開発時に役立つ機能
- 値の多形式表示: 取得した値をHex、UTF-8テキスト、整数、10進数で同時に確認できます。
- Notify / Indicateの購読: センサーからの連続データをタイムスタンプ付きで記録し、CSVに書き出せます。
- 標準名の自動解決: Bluetooth SIGが定めた標準UUIDには、対応する名称が自動で表示されます。
fTool BLE Scanner Pro
BLE機器のスキャンからGATTサービスの探索、Read/Write/Notifyの検証、iBeacon・Eddystoneの自動デコード、CSV出力まで。IoT開発者のための完全買い切り型アプリです。