Raspberry Pi で iBeacon を発見するための調査メモ
近いうちに試してみることになるかもしれないのでメモ。
Raspberry Pi で Bluetoothを使えるようにするために
Raspberry Pi を Bluetooth Low Energy (BLE) の Peripheral として動作させるで、BLE の Peripheral として動作させたことはあるので参考に。
RPi Bluetooth LE が詳しい。
あとはこのあたりを参考に。
https://github.com/sandeepmistry/noble#prerequisites
apt-get
で BlueZ をインストールできるが、バージョンが 4.99 で BLE のサポートが完全ではないらしい。
BLE のスキャニングだけならおそらく問題はないと思うけど、使えない場合はビルドが必要。
Node.js でプログラミングするために
sandeepmistry/node-bleacon でいけるっぽい。
スキャニングは Central モジュールの noble に、発信は Peripheral 側の bleno に依存している。
UUID を指定しなくてもスキャニングは可能。…というか実装を見てみたら、全部取得してから通知するかどうかの判断をしている模様。
UUID は配列で複数渡すこともできるから、違う種類の iBeacon が混在していても大丈夫そう。
iBeacon と Raspberry Pi の距離の測定
node-bleacon では MeasuredPower や RSSI の値を取得可能。
ただし、それらの値だけでは距離の算出は難しい。
iBeaconのRSSIでiPhoneの二次元座標をとれたらいいな
屋内測位をやってみました
大雑把な距離なら proximity を使えばいいけど、具体的な距離を出したい場合はキャリブレーションが必要っぽい。
Raspberry Pi では収集だけして、フィンガープリンティングの値の設定と距離の算出をサーバ側でするようにしたら個別にソースをいじらなくてもいいかも。