Node.jsとiPhoneでiBeaconの送受信テスト


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側ではこれを受信したいので、受信テストアプリみたいのを入れる。これを使った。

BLUETUS for iBeacon

これでアプリを立ち上げると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 Emitter

このアプリで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 じゃないと動かないっぽい。

以上。

参考