はじめに
ABLIC社のバッテリレス漏水センサのビーコン(BLE Beacon)をNode-REDで受信する手順をまとめます。
仕様書(ユーザーズマニュアル)
Wiresharkでビーコン情報を確認する
nRF Sniffer for Bluetooth LEツールとWiresharkでビーコン情報を確認します。
XIAO BLEにnRF Sniffer for Bluetooth LEツール(バージョン: v4.1.1)を書き込みます。
Wiresharkの設定を行い、起動してパケットをキャプチャーします。
流れるパケットの量が多い場合はフィルターを設定します。(BLEのアドレスを設定します)
btle.advertising_address == fc:c8:13:08:bf:09
サンプルのキャプチャーデータ
データ構造
基本的に同じデータを受信します。
Node-RED
ラズパイにNode-REDをインストールします。
最初にNode.js 18.x系をインストールします。
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install -y nodejs
$ node -v
v18.14.2
$ npm -v
9.5.0
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
以下のモジュールをインストールします。
- node-red-contrib-beacon-scanner
$ cd ~/.node-red
$ sudo apt install bluetooth bluez libbluetooth-dev libudev-dev
$ sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
$ npm i node-red-contrib-beacon-scanner
Node-REDを起動します。
$ sudo systemctl start nodered.service
ブラウザを開いて、http://[ラズパイのIPアドレス]:1880へアクセスし、フローを作成します。
reTerminal
reTerminalの場合、Raspberry Pi OSとNode-REDがインストールされているため、以下のモジュールをインストールします。
- node-red-contrib-beacon-scanner
- node-red-contrib-reterminal
$ cd ~/.node-red
$ npm i node-red-contrib-reterminal
漏水センサのビーコンを受信したらreTerminalのブザーを鳴らし、reTerminalのボタンを押したらブザーの音を消す、といった使い方ができます。