Monthly Archives: 4月 2016

BlueNinjaでEddystoneビーコンをつくる

BlueNinjaをGoogle Eddystoneビーコンとして動作させるサンプルです。

Eddystoneとは

Googleが公開しているBLEビーコンの規格です。
ファーマットはAppleのiBeaconのUUIDに相当するEddystone-UID、PhyscalWebの仕様にあたるEddystone-URL、機器状態の通知に仕様するEddystone-TLMがあります。

AppleのiBeaconに対して後発の規格でできることも似ていますが、仕様がオープンである点が特徴になります。

Eddystoneサンプルについて

サンプルプログラムでは、ほぼ1秒間隔でEddystone-UIDかEddystone-URL(ビルド時にマクロで選択)を送信します。
バッテリーの過放電を防ぐため電圧が下がる(2.91Vを下回る)と10秒間Eddystone-TLMで稼働時間等を通知した後、電源がOFFになります。
Eddystoneのサンプルとしてはもちろん、省電力機能のサンプルとしてもお使いいただけます。

省電力機能の使用

ビーコンはバッテリー駆動で長時間動作することが好ましいアプリケーションです。
LiPoバッテリーで長時間動作をさせるために、TZ1000BSPのTWiCの省電力管理機能を積極的に使用します。

省電力機能を使用しない場合、3[mA](=3000[µA])弱の電流が流れるところ、待機時に70[µA]前後、送信時に最大で125[µA]ほどに抑えることができました。
計算上、BlueNinja専用バッテリー(120[mAh])で一ヶ月以上動作します。

Eddystoneビーコンの受信

スマートフォンで受信

スマートフォンの場合、Eddystoneに対応したアプリを使うことで検出できます。

AndroidアプリのBeacon ScannerでEddystone-UIDを受信

AndroidアプリのBeacon ScannerでEddystone-UIDを受信

Raspberry Piで受信

Raspberry PiとUSBのBLEドングルの組み合わせで受信することができます。
Raspbian 8.0 + Bluez + node.js + nobleの組み合わせで動作するスクリプトを公開しています。
動作保証はできませんがサンプルとしてお使いいただければと思います。

Raspberry Pi B+ & BLEドングル

Raspberry Pi B+ & BLEドングル


Eddystone-UIDの受信

Eddystone-UID受信の様子