iBeaconの送受信をMac(Node.js)とiPhoneでやってみた。
Node.js -> iPhone
まずはNode.jsでiBeaconを送信するスクリプトを書く。bleaconというモジュールを使えばすぐできるらしい。
$ npm install bleacon
スクリプトはこんな感じ。
sender.js
var Bleacon = require('bleacon');
var uuid = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
var major = 0;
var minor = 0;
var measuredPower = -59;
Bleacon.startAdvertising(uuid, major, minor, measuredPower);
$ node sender.js
これでiBeaconが送信される状態になる。
iPhone側ではこれを受信したいので、受信テストアプリみたいのを入れる。これを使った。
これでアプリを立ち上げるとNode.jsで送信されてるiBeaconを受信できる。こんな感じ。
iPhone -> Node.js
次にiPhoneで送信したiBeaconをNode.jsで受信する。Node.js側で受信するスクリプトはこんな感じ。
reciever.js
var Bleacon = require('bleacon');
Bleacon.startScanning();
Bleacon.on('discover', function(bleacon) {
console.dir(bleacon);
});
これを実行する。
$ node reciever.js
送信側のiPhone側のアプリはこれを使った。(無駄におしゃれで有料)
このアプリでiBeacon送信するとコンソールにこんな感じで表示される。
{ uuid: 'f86b62516a014c80ba1b717c774b160a',
major: 1,
minor: 1,
measuredPower: -60,
rssi: -40,
accuracy: 0.2886751345948129,
proximity: 'immediate' }
{ uuid: 'f86b62516a014c80ba1b717c774b160a',
major: 1,
minor: 1,
measuredPower: -60,
rssi: -38,
accuracy: 0.254947239951116,
proximity: 'immediate' }
{ uuid: 'f86b62516a014c80ba1b717c774b160a',
major: 1,
minor: 1,
measuredPower: -60,
rssi: -39,
accuracy: 0.2712875389830217,
proximity: 'immediate' }
...
ただしMac OSX 10.9 じゃないと動かないっぽい。
以上。