#はじめに
過去にRASPBERRY PIをIBEACON化する(1)というのを書いたが、大分時間が経過してbluezもビルド不要で導入できるようになったみたい。
DebianのPackage: bluez (4.99-2)を参照。
この記事は基本的にBLE対応のアダプタ接続済み、bluez導入済みで、node.jsのbleaconを使うところからスタートします。
bleaconではアドバタイジングにblenoをセントラルにnobleを利用しているみたい。
Raspberry PiでiBeaconを受信する(Node.js + bleacon)がよくまとまっているので、こちらを参照するといいかも。
#ためしてみる
とりあえずbluezが動いているかhciconfigを利用して確認する。
UP RUNNINGになっていればOK。
pi@raspberrypi2 ~/bleacon $ hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: <MAC_ADDRESS> ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:2757 acl:6 sco:0 events:201 errors:0
TX bytes:2565 acl:1 sco:0 commands:185 errors:0
ある筋では有名な一行でiBeaconできるコードを利用する。
measurePowerの値を調整することでキャリブレーションできるようなので、少しいじってみる。
bleacon = require('bleacon');
var uuid = 'E86367B8D8A84BE082DE4653A7333113';
var major = 0;
var minor = 0;
var measuredPower = -59;
bleacon.startAdvertising(uuid, major, minor, measuredPower);
##Androidから探してみる
iPhoneでもいいのですが、今回はAndroidでチェックしてみた。
アプリはBluetooth LE Scannerを使用した。なんでもいいと思う。
基本いい感じなんだが少し不安定な気もする。
「部屋に入ってきたら」というトリガにするためにはもう少し精度が高くないとダメかな?という印象だった。
今後詰めてゆく。
###IMMEDIATE
Raspberry Piが設置してある部屋のPCテーブルにAndroid端末を置いた時。
###NEAR
Raspberry Piが設置してある部屋の出口付近。
###FAR
Raspberry Piが設置してある部屋から出て離れた時。
#さいごに
bleaconは一行でiBeacon化できるのが本当にすごい。
あと、自分自身がBLEで使うUUIDをあまり理解していないので、追記ではbleaconの使い方を補強してゆく予定。