RPi iBeacon
しばらくぶりに触ったら、RPiのBlueTooth周りが変わっていた。
ついでに、RPiをペリフェラルにしたiBeaconもどきを試す。
さて、今回はBlueTooth 4.0対応。PlanexのBT-Micro4。
amazonで1,700円くらい。
1. install package
apt-get でドライバやツールをinstallする。 あと、RPi自体のfirmwareのupdateも必要らしい。$ sudo apt-get install bluetooth bluez bluez-firmware libbluetooth-dev $ sudo apt-get install rpi-update $ sudo rpi-update $ sudo reboot
2. deviceの確認
hciツールを利用して、自機を調べる。$ hcitool dev Devices: hci0 00:XX:DD:XX:22:YY
自分のdevice名は、hci0とわかったので、詳細情報を取得。
$ hciconfig hci0 name hci0: Type: BR/EDR Bus: USB BD Address: 00:XX:DC:XX:E2:XX ACL MTU: 310:10 SCO MTU: 64:8 Name: 'raspberrypi-0'
名前が「aspberrypi-0」だと長すぎるので、「RPi-BT」に変更する。
$ sudo hciconfig hci0 name RPi-BT
3. iBeaconのペリフェラルプログラムの準備と実行
株式会社アイムービックさんの記事をお手本にペリフェラルをmakeする。
$ git clone https://github.com/carsonmcdonald/bluez-ibeacon.git $ cd bluez-ibeacon/bluez-beacon $ make
いよいよ実行。
$ sudo ./ibeacon 200 e2c56db5dffb48d2b060d0f5a71096e0 0 0 -30
これで、ペリフェラルとしてアドバタイズしている状態。
4. セントラルプログラムの準備
セントラルとして、受信するプログラムをmacで試す。 言語は、nodejs。% npm install bleacon % node receiver.js { uuid: 'e2c56db5dffb48d2b060d0f5a71096e0', major: 0, minor: 0, measuredPower: -30, rssi: -54, accuracy: 19.725021954206717, proximity: 'far' }
お見事。