数年前にiPhoneで対応して急にブームになったiBeaconをふと思いだして調査してみました。
iBeaconの検出
Bluetoothのデバイスへの接続等も必要であればnobleというモジュールを利用するようですが、iBeaconの単純な受信だけであればラッパーであるBleaconが良さそうです。
インストールはnpmで一発です。
npm install belacon
※Warninigが出た場合でも動作しているようです...。(動いたからきちんとチェックしていない)
Bleacon = require('bleacon');
Bleacon.startScanning();
Bleacon.on('discover', function(bleacon){
console.log(bleacon);
})
以下のようなオブジェクトが返ってくる
{ uuid: '8492e75f4fd6469db132043fe949XXXXX',
major: 5453,
minor: 12650,
measuredPower: -59,
rssi: -44,
accuracy: 0.3876571779678571,
proximity: 'immediate' }
仕組みとしてUUIDは製品(サービス)毎に同一のものにし、majorとminorを個別に設定してビーコンの識別をする想定のようです。
startScanningのパラメータにUUIDを渡せば、同一UUIDのデバイスのみ検出するようです。
iBeaconモジュール
こちらが問題。いろいろと調べてみましたが、2014年ごろにニュースリリースが出ているところも製品として販売していなさそう。電波法の関係で認証無しの直輸入もできません。
アプリックス
どうも販売終了とSOLD OUTが多いのが気になるし、肝心の普通のビーコンが売り切れ...。
Gimbal
下の記事でGimbalというメーカー?を発見。日本の認証も通っているモジュールを販売しているようで、しかも小型のビーコンは$5!
ということで、送料は高いのですが単価が圧倒的に安いためこちらから輸入する事にしました。電池の持ちは不安要素ですが...。
ごにょごにょ
nodejsで簡単に書けそうだったので、これはいけるな...と思っていたらデバイスが見つからず悩みました。1000円前後の小さなものを探していたので、BTLEモジュールに電池つけて自作しようかとまで思いました。これから売れるんと思うんだけどなぁ...。