はじめに
「実践Node-RED活用マニュアル」書籍出版記念イベントでなかちょんさんが紹介していたEnOcean BLE 環境センサー(STM550B)とスイッチ(PTM215B)を試してみた。
BLEデバイスの動作
環境センサー(STM550B)もスイッチ(PTM215B)もBLEブロードキャストモードでアドバタイズパケットにデータが含まれるのでラズパイでスキャンするだけで良い。
パケットキャプチャー
最初はBluefruit LE Snifferを使用してBLEパケットデータをキャプチャーして動作を確認しました。
環境センサー(STM550B)はデフォルトで1分毎にデータを送信(1回の送信毎に同じデータを3回送信)し、スイッチ(PTM215B)は押す/離す度に同じデータを2回(押す→離すの時間間隔が短い場合、押す操作のデータ送信が2回になる)、または、3回送信することを確認しました。
構成
環境センサー(STM550B)はラズパイ上のNode-REDでBLEデータを受信し、センサーデータを抽出・加工してAmbientへ送信し、データを可視化してみました。
スイッチ(PTM215B)はラズパイ上のNode-REDでBLEデータを受信し、Sonosスピーカーを操作してみました。
Node-REDフロー
必要なノード
- node-red-contrib-blebeacon-scanner
- node-red-contrib-ambient
- node-red-contrib-better-sonos
BLE beacon scannerノードで環境センサー(STM550B)とスイッチ(PTM215B)のデータを受信します。
そのあと、BLEデバイスIDの情報をもとに環境センサー(STM550B)とスイッチ(PTM215B)でフローを分けます。(青枠)
環境センサー(STM550B)のフローは受信したデータからセンサーデータを抽出し、JSONデータに加工してAmbientへデータを送信します。(上の赤枠)
スイッチ(PTM215B)のフローは受信したデータからボタンの操作データを抽出し、Sonosスピーカーへ再生・一時停止・音量を上げる・音量を下げる等のコマンドを送信します。(下の赤枠)
フローサンプルはこちらです。
BLEデータ(ペイロード)の仕様
それぞれの製品のユーザーマニュアルにBLEデータ(ペイロード)の仕様が記載されています。
(仕様書の抜粋を載せておきます)
まとめ
EnOceanは超低消費電力性能が売りの1つですが、デフォルト設定で1日6時間200Luxの環境で動作し、バックアップバッテリー(CR1632)を併用すると数年単位で動作するとのことで、実際にどの程度電池が保つのか興味がありました。
実際に試した結果、夜間(太陽電池による発電が無い状態)で電池容量20%消費/6時間、昼間200Lux以上の環境で電池容量20%蓄電/1時間で、想像以上に性能が良いと感じました。
また、短い期間ですがデータの欠損も見られませんでした。