EnOcean

高齢者のゆるい見守りに!EnOcean環境センサとobnizを使った見守りシステム

この記事はobniz Advent Calendar 2020の8日目の記事になります。

”現実世界をオブジェクト化する”をうたう”obniz(オブナイズ)”は、設備とIoT機器のゲートウェイとしてとても興味があり実際にビジネスにも使いたいと思っています。

↓ 過去記事
obnizを設備とIoT機器のゲートウェイとして期待している件|デジタルライト(Digital-light.jp)

しかしながら、購入していくつか試してからそのままになっているので、私と同世代の方々が共通で関心のある分野、「高齢者のゆるい見守りに!EnOcean環境センサとobnizを使った見守りシステム」について紹介したいとおもいます。

obnizのすごいところ

obnizのすごいところ、それはインターネットに接続さえしていれば空間に縛られずにデータを送ったり受け取ったりできること。

私のやっている設備の制御は遠隔からの監視や状態の変更が求められることが多いのですが、obnizを使えば、そこそこ簡単なことは、そこそこ簡単に実現できちゃいます。

なので、今回はさくっと簡単なケースをご紹介して、これを発展させたらどんなふうに仕事につながるかのネタになればいいなぁと思っております。

今回、obnizを使ってやること

Thum EnOcean NodeRED obniz2

今回、obnizを使ってやることは、

太陽電池で自己発電するEnOceanの無線環境センサーをつかって、温度、湿度、照度、マグネットコンタクの状態をローカルのラズパイで動かすNode-REDで取得、そこからobnizノードを使って遠隔地にあるobnizのスクリーンに表示させる。

という流れです。

EnOcean環境センサーについて

今回使うEnOcean環境センサーについて解説します。

Img stm550b

EnOcean環境センサーは、2.4GHzのBLEタイプ(STM550B)と、928MHzのEnOceanタイプ(EMSIJ)の2種類があります。

どちらも取得できるセンサーデータは同じですが、違いは、BLEタイプはBLEで通信できれば受信可能ですが、928Mhzタイプは別途EnOceanのレシーバーが必要になることと、STM550Bはモジュールタイプなのでカバーなし、EMSIJはカバーありとなっています。

1日200luxで6時間以上の光を受けることができれば、本体の太陽電池で稼働することができ、温度、湿度、照度、加速度、加速度の専用センサーとマグネットコンタクトが内蔵され、60秒ごとに状態を送信するという、電池交換などのメンテがいらないとても使いやすいセンサーです。

ちなみに今回はスイッチサイエンスさんで販売しているBLEタイプを使って解説します。

↓ 商品の詳細についてこちらをご参照ください。

↓ 参考過去記事

Node-REDのフローについて

12 05

Node-REDのフローは上記の通り。

↓ こちらのフローです。

[{"id":"dfd8995c.6a0588","type":"obniz-function","z":"da22126.e0222f","obniz":"4ea9cf05.2f90f","name":"obniz","code":"var value = msg.payload;\r\n\r\nobniz.display.clear();\r\n\r\n//obniz.display.print(value);\r\n\r\nobniz.display.print('Temp:'+value['Temp']+'\\n');\r\nobniz.display.print('Humid:'+value['Humid']+'\\n');\r\nobniz.display.print('Lux:'+value['Lux']+'\\n');\r\nobniz.display.print('Contact:'+value['Contact']+'\\n');","x":590,"y":280,"wires":[[]]},{"id":"4ea9cf05.2f90f","type":"obniz","z":"","obnizId":"00000000","deviceType":"obnizboard","name":"","accessToken":"","code":""}]

では、解説していきます。

BLE Beacon ScannerからEnOcean電文デコードまで

12 05

環境センサーからのデータを受信するには、”node-red-contrib-blebeacon-scanner”ノードを利用します。

↓このライブラリのインストールはこちらの記事を参考にしてください。
チュートリアル:ラズパイにNode-REDを入れてEnOcean(BLE)の環境センサーを接続する2/2|デジタルライト(Digital-light.jp)

さて、そのままだと非常に多くのBLEデータを受信しますので、Switchノードを使ってフィルターをかけます。

Stm550b id

環境センサーの裏側に表示されているIDをチェック。

12 05

Switchノードのプロパティに、”msg.payload.id”として先程のIDを入力。

12 05

同じメッセージが複数回飛んでくるので、delayノードを使って流量制限をします。

12 05

受け取ったメッセージをfunctionノードを使ってデコードします。

var Packet = msg.payload.other
var Temp = (Packet[8]*256+Packet[7])/100
var Humid = Packet[10]/2
var Lux = Packet[13]*256+Packet[12]
var Energy = Packet[22]/2
var contact = Packet[20]
if ( contact == 2 ) { contact = "Close" } else { contact = "Open" } 
 
var data = {
    "Temp": Temp,
    "Humid": Humid+'%',
    "Lux": Lux+'lux',
    "Contact": contact,
    "Energy": Energy+'%'
}
msg.payload = data
return msg

functionノードには上記のコードを利用ください。

* ちなみに、BLEではなく928MHzのEnOcean版の方については、杉山寛幸さんからコードをいただいておりますので、ご興味ある方は連絡ください。

obnizノード

ここからは結果をobnizに出力するフローです。

12 05

Node-REDの”パレットの管理”から”node-red-contrib-obniz”をインストール。

12 05

obniz functionノードを使います。

12 05

obnizには、ご自分がお持ちのobnizのIDを入力してください。

12 05
var value = msg.payload;

obniz.display.clear();

//obniz.display.print(value);

obniz.display.print('Temp:'+value['Temp']+'\n');
obniz.display.print('Humid:'+value['Humid']+'\n');
obniz.display.print('Lux:'+value['Lux']+'\n');
obniz.display.print('Contact:'+value['Contact']+'\n');

obnizに表示させるコードは上記のようにしました。

フローの確認

12 05

BLE Beacon Scannerとobnizの両方とも緑になっていれば、正常に動いております。

結果

IMG 3128 12 05

結果はこのように、1分ごとに環境センサーから送られた、温度、湿度、照度、マグネットコンタクトの状態をobnizで表示することができます。

12 05

また、この環境センサーにはマグネットコンタクトがついており、上の写真の位置にマグネットを近づけると”Open”と”Close”のデータが即時に送られます。

Magnet

まとめ

以上、太陽電池で自己発電するEnOceanの無線環境センサーをつかって、温度、湿度、照度、マグネットコンタクのの状態をローカルのラズパイで動かすNode-REDで取得、そこからobnizノードを使って遠隔地にあるobnizのスクリーンに表示させるの方法をご紹介しました。

オフィスや家庭でIoTセンサーを使う場合、なにげに電池の交換ってかなり手間だったりしますが、これであればその手間からは開放されます。

また、遠く離れた場所に済んでいる高齢の両親宅で、センサーを必ず使うドアに設置し、開閉したらマグネットコンタクトで情報を拾い、ラズパイでそのデータを受け取ることで、ネットさえつながっていれば安価に【ゆる〜い見守り】システムを構築することができます。

もし連絡が取れなくても、ドアが最後にいつ開閉されたか?部屋の明るさや温度はどれぐらいか?といった情報があれば、問題ないけど電話に気づかなかっただけなのか、なにかあったのではないか?などといった推測のヒントにもなります。

本当は監視カメラいれたいところだけど、さすがにそれは抵抗ありますからねぇ。

ということで、EnOceanのセンサーやobnizを使って、なにかお役に立てれば幸いです。

ではでは!

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。