近接ビーコンやワイヤレスIoTセンサーは、ペアリングを必要とせずに小さなアドバタイズパケット(GAPデータ)を発信し続けています。屋内位置測位のためにiBeaconを設置する場合も、Eddystone-TLMで環境センサーの値を受け取る場合も、まずはこのパケットを受信して中身を読み解く必要があります。
この記事では、Windows上でBLEのアドバタイズパケットを受信し、規格ごとに自動デコードして解析する手順を解説します。
主なビーコンのフォーマット
- Apple iBeacon: 16バイトのProximity UUID、2バイトのMajor(店舗など)、2バイトのMinor(売り場や棚など)、1m地点での送信出力(TX Power)を発信します。
- Google Eddystone-UID / URL: ネームスペースとインスタンスのID、または短縮URLを発信します。
- Eddystone-TLM: 電池電圧、チップ温度、送信パケット数、稼働時間を含むテレメトリフレームです。
- Manufacturer Data: 企業ごとに割り当てられたIDを持つ独自データです(例: Microsoft 0x0006、Apple 0x004C、Nordic 0x0059)。
手順: ビーコンのデータを受信・解析する
1
fTool BLE Scanner Proでパケットキャプチャを開始
fTool BLE Scanner Proを開き、アドバタイズリスナーをスタートさせます。
2
ビーコンパケットのフォーマットを自動判別
iBeacon(UUID/Major/Minor)、Eddystone(UID/URL/TLM)、Manufacturer Dataが自動デコードされます。
3
生バイト列とRSSI推移を分析
パケットごとの生HEXバイト列と電波強度(RSSI)のリアルタイムグラフを確認します。
解析に役立つ機能
- 生バイト列の表示: HEXのペイロードを、データ構造の区切りを色分けした状態で確認できます。
- 距離の目安: TX PowerとRSSIから、おおよその距離を推定して表示します。
- CSV出力: 時系列の電波強度やテレメトリをCSVに書き出し、ExcelやPythonで分析できます。
fTool BLE Scanner Pro
BLE機器のスキャンからGATTサービスの探索、Read/Write/Notifyの検証、iBeacon・Eddystoneの自動デコード、CSV出力まで。IoT開発者のための完全買い切り型アプリです。