Posted at

Intel EdisonでiBeaconを受信する(Node.js + bleacon)

More than 5 years have passed since last update.

Intel EdisonでiBeaconの信号を受信するためのメモ。

内容的には、参考にしたページ『Intel EdisonをiBeacon化する. - 椎茸糞日記』を超えるものはありません。


環境

使用した環境は以下の通りです。

root# uname -a

Linux nayutaya-edison-001 3.10.17-poky-edison+ #1 SMP PREEMPT Tue Oct 14 15:19:49 CEST 2014 i686 GNU/Linux
root# cat /etc/version
edison-rel1-maint-weekly_build_16_2014-10-14_14-56-19
root# node -v
v0.10.32
root# npm -v
1.4.28


Bluetoothを有効化する

Intel EdisonのBluetoothは出荷時状態では無効化されています。

Intel EdisonのBluetoothを有効化する - Qiita』などを参考に、Bluetoothを有効化してください。


bluezのヘッダファイルをインストールする

bleaconモジュールを利用するためにはbluetooth.hが必要なため、opkgコマンドを用いてbluez5-devパッケージをインストールします。

root# vi /etc/opkg/base-feeds.conf

root# cat /etc/opkg/base-feeds.conf
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

root# opkg update
root# opkg upgrade
root# opkg install bluez5-dev


bleaconモジュールをインストールする

npmコマンドを用いてbleaconモジュールをインストールします。

執筆時点でのバージョンは0.2.0でした。

root# npm install bleacon


iBeaconの信号を受信する

iBeaconの信号を受信し、コンソールに出力するためのスクリプトを準備します。


beacon_discover.js

var Bleacon = require("bleacon");

Bleacon.startScanning();
Bleacon.on("discover", function(bleacon) {
console.dir(bleacon);
});

スクリプトを実行すると、コンソールに情報が出力されます。なお、root権限が必要です。

(UUIDはマスクしています)

root# node beacon_discover.js

{ uuid: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
major: 1,
minor: 1,
measuredPower: -76,
rssi: -70,
accuracy: 0.7450788247551209,
proximity: 'near' }
...


参考