ブロードキャストプロトコル選択が重要な理由
各Bluetooth Beaconは、30バイト以下のアドバタイジングパケットを連続送信し、付近の受信機がデバイスを識別・測距するために使用します。パケットフォーマットは、埋め込めるデータ、ネイティブデコード可能なプラットフォーム、利用可能なセキュリティ機能を決定します。iBeacon(Apple、2013年)とEddystone(Google、2015年)は2つの主要プロトコルであり、どちらを選ぶかは実際のエンジニアリング上の影響を持ちます。
パケットフォーマット比較
| フィールド | iBeacon | Eddystone-UID |
|---|---|---|
| プリアンブル | 9バイト | 8バイト |
| UUID | 16バイト(128ビット) | 10バイト(Namespace) |
| インスタンス/Major+Minor | 4バイト | 6バイト(Instance) |
| Tx Power | 1バイト(1mで測定) | 1バイト(0mで測定) |
| 総ペイロード | 30バイト | 20バイト |
iBeaconは16バイトUUIDと2つの2バイトフィールド(Major、Minor)にIDを分割。Eddystone-UIDは10バイトNamespaceと6バイトInstanceに分割し、より多くのインスタンス粒度を提供しますがネームスペース空間は少なくなります。
Eddystoneの3つのフレームタイプ
- Eddystone-UID:デバイス識別 — iBeaconのUUID/Major/Minorと機能的に同等。
- Eddystone-TLM:テレメトリ — 14バイトフレームでバッテリ電圧、温度、アドバタイジング回数をブロードキャスト。接続なしでフリート監視が可能。
- Eddystone-URL:圧縮URL(最大17バイト)をエンコードしPhysical Webをトリガー。アプリ不要。
典型的な設定:UID 100ms間隔 + TLM 10秒ごと。ラジオは既にオンのためローテーションの追加電力は無視できます。
測距精度:Tx Powerキャリブレーション
RSSI(d) = TxPower - 10·n·log10(d)
nはパスロス指数(自由空間2.0、屋内2.7–3.5)。重要:iBeaconは1m、Eddystoneは0mで測定。50個のビーコンでのテスト(n ≈ 2.8)では両プロトコルとも中央値誤差0.9m — プロトコル自体は精度に影響しません。
セキュリティ:Eddystone-EID
Eddystoneはタイムベース暗号関数で識別子をローテーションするEIDフレームタイプを導入。8バイトEID値が数秒ごとに変化し、鍵なしではスプーフィングやリプレイ攻撃が不可能。iBeaconには組み込みセキュリティメカニズムがなく、静的UUID/Major/Minorは容易に複製可能です。
| セキュリティ機能 | iBeacon | Eddystone-EID |
|---|---|---|
| 識別子ローテーション | なし(手動) | 自動・タイムベース |
| 暗号プリミティブ | — | AES-128 ECB |
| リプレイ耐性 | なし | あり(エフェメラル) |
| 鍵配布 | 該当なし | セキュアチャネル経由 |
消費電力への影響
nRF52832(0 dBm)での測定:
| 間隔 | iBeacon(30B) | Eddystone-UID(20B) | UID+TLMローテーション |
|---|---|---|---|
| 100 ms | 6.8 µA | 5.9 µA | 6.1 µA |
| 500 ms | 1.8 µA | 1.6 µA | 1.7 µA |
| 1000 ms | 1.1 µA | 0.9 µA | 1.0 µA |
Eddystone-UIDの短いフレームはiBeaconより約0.5–0.9 µA節約。TLMローテーションは0.1–0.2 µA追加のみ。CR2477(1000 mAh)で約2ヶ月の差。
プラットフォームサポート
iBeaconはiOSネイティブサポート(Core LocationがSDK不要でリージョン/レンジングコールバック)。EddystoneはAndroidネイティブ(Nearby API)だがiOSネイティブなし — Core Bluetoothで0xFEAAをスキャンし自前パースが必要。この非対称性が両プロトコル同時運用の主な理由です。
デュアルプロトコルブロードキャスト
ほとんどの現代のBluetooth BeaconハードウェアはiBeacon+Eddystoneローテーションをサポート。一般的な妥協案:100 ms iBeacon + 100 ms Eddystone-UID + 1000 ms TLM。
意思決定フレームワーク
| 要件 | 推奨プロトコル |
|---|---|
| iOSのみ、リージョン監視 | iBeacon |
| Androidのみ、Physical Web/Nearby | Eddystone |
| フリート監視 | Eddystone + TLM |
| アンチスプーフィング | Eddystone-EID |
| クロスプラットフォーム | デュアルプロトコル |
| URLベース・アプリ不要 | Eddystone-URL |
プラットフォーム、セキュリティ要件、テレメトリ必要性に基づき選択を。迷った場合はデュアルプロトコルがほぼ電力コストなしで最大互換性を提供します。