ビーコンをラズパイから設定する

Braveridge 社のビーコン「どりっぴー君」(BVMCN1001CRH B)をセットアップする機会があったので、ラズパイからビーコンのUUIDを設定してみました。

http://www.products.braveridge.com/beacon/bvmcn1001crh-b-%E3%83%89%E3%83%AA%E3%83%83%E3%83%94%E3%83%BC%E5%90%9B/

f:id:bunji2:20160702111705j:image

この製品はサービスやCharacteristicの技術情報が公開されているので、開発者にとって扱い易い製品です。

f:id:bunji2:20160702111725j:image
 基盤です。

f:id:bunji2:20160702111735j:image
 スイッチを押すと設定モードになって、緑のLEDが点灯します。
 
ここからラズパイ。

f:id:bunji2:20160702114438p:plain

まず hciconfig で内蔵bluetoothバイスが上がってることを確認。

それから hcitool で周囲のBLE機器をスキャン。対象を発見。

以降、BLE機器のMACは一部伏せます。

 

f:id:bunji2:20160702114457p:plain

発見したMACに接続し、プライマリサービス一覧を表示。

三行目の 12300100... のUUIDがセットアップ用のサービス。

 

f:id:bunji2:20160702114505p:plain

特性(Characteristic)一覧を表示。

ビーコンUUIDの値は 12300101…のUUIDなので、そのハンドル0x000bを控えておく。

 

f:id:bunji2:20160702114513p:plain

ハンドル0x000bにビーコンUUID "00112233-4455-6677-8899-AABBCCDDEEFF" を書き込み。

 

f:id:bunji2:20160702114521p:plain

ハンドル0x000bの値を読み出し。

 

f:id:bunji2:20160702114526p:plain

最後にハンドル0x0014 に 0x01 を書き込んでリセット。

 

f:id:bunji2:20160702114538p:plain

設定したビーコンUUIDのビーコンシグナルが発信されることを、android のビーコンスキャナアプリで確認。


今回やったことは、ほとんど Bluez パッケージの gatttool なのでラズパイに限らずbluetoothアダプタを持ったlinuxマシンならどれでも同じようにできると思います。

ただ、ラズパイ3だと最初からbluetoothアダプタ内蔵なのですぐ使えます。