RPi iBeacon

投稿日:

しばらくぶりに触ったら、RPiのBlueTooth周りが変わっていた。
ついでに、RPiをペリフェラルにしたiBeaconもどきを試す。

前回の2013/01/20の記事

さて、今回は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' }

お見事。