ビーコンのManufactureDataを取得できるノードを作成しました。


概要

Raspberry PiとNode-REDとAzureを使って、
簡易なIoTシステムをいろいろ開発をしています。

最近使うセンサーが、BLEのAdvertising Messageで
データを送信するものが多いんですが、iBeacon仕様とかではなくて・・・。

iBeaconやEddystoneであれば、
Node-REDのノードがすでに存在するんですが・・・。

ということで、メッセージを解析して、iBeaconやEddystoneでなければ、
ManufactureDataを取得するノードを作成しました。

ソースコード

gitに上げています。
https://github.com/yossihard/node-red-contrib-blebeacon-scanner

README.mdにも記載していますが、
futomiさんという方がNode.js用に開発されていたコードを流用しています。

インストール方法

ラズパイで使用するには、先に以下のコマンドを実行してください。

> sudo apt-get install libbluetooth-dev libudev-dev pi-bluetooth
> npm install @abandonware/noble

今回作成したコードは、node-red-contrib-blebeacon-scannerという名前で
npmにも登録してみました。

Node-RED上の「パレットの管理」から「ノードの追加」画面で追加できるようになるはず・・・なんですが、
今はまだ追加されていないようです(汗)。
⇒README.mdの記載量が足りない???

Node-RED上の「パレットの管理」から「ノードの追加」画面で追加できます。

Node-RED公式サイトでのフロー紹介ページはこちら
https://flows.nodered.org/node/node-red-contrib-blebeacon-scanner

ということで、以下のコマンドでインストールしてください。
以下のコマンドでもインストールできます。

> npm install node-red-contrib-blebeacon-scanner

使い方

こんな感じ。

ものすごく大量のデータが取得されるので、
switchノードで欲しいビーコンのIDを指定してくださいませ。