ABLICのPH-AシリーズでBLE受信強度をopenblockのLEDランプで視覚化する方法 

今回はABLICのPH-Aシリーズで漏水センサーからデータを受信する際、Node-RED側で漏水センサーの受信強度をopenblockのLEDランプで視覚化する方法をご紹介します。

使用するノード

今回はこちらの3つのノードを使っていきます。

機能追加方法(電波強度条件)

まずはopenblockからNodeREDを開きます。

今回は下のメールの方は使わず、ipc-inから新たに作っていきます。
左のノード欄からswitchノードをドラック&ドロップします。

追加したswitchノードを開き、プロパティのmsg.payloadをmsg.payload.rssiに変更します。

こちらの名前は、受信したデータによって変わっていくのですが、openblockのホームページで書かれているため、そちらを参照に変更してください。(今回はrssi)

https://docs.plathome.co.jp/docs/openblocks/fw5/developer/how_to_use/how_to_use

こちらの変更後スイッチノードの中身を以下のように変更してください。
下の追加ボタンから5まで追加します。

左の==をクリックするといろいろな条件が出てきますので、下記図のように条件と数値を設定します。

こちらの数値もホームページに載っているので参考に設定してください。
すべての設定が終わったらデプロイそして終わりになります。こちらで強度の条件設定ができました。
次に動作の設定をしていきます。

機能追加方法(動作設定)

左のノード欄からexecノードをドラック&ドロップします。

追加したexecを開き、以下のコマンドをコマンドの欄に入力します。

pkill -SIGSTOP led_updater.sh

このコマンドは2つに分かれており、初めの
pkill -SIGSTOPはLinuxコマンドになります。プロセスを停止するというコマンドになります。
以下のURLを参考にしてください。


ミライサーバー Linuxのプロセスとは。psコマンドやkillコマンドの使い方も解説 より引用

https://www.miraiserver.ne.jp/column/linux_process

次にled_updater.shはopenblockのコマンドになります。こちらは特に説明がないのですが下図のように書かれています。

今回は下のLED制御なので、下のled_updater.shを使用しています。
これをswitchノードで作った条件分追加します。(今回は5個作ったため5個作ります)

これで通常光っているLEDランプが一時的に消えることになります。
次に、LEDを受信強度に合わせて色を変えていきたいと思います。
先ほどと同じようにexecノードを追加し中身を変更します。

こちらのコマンドもホームページを参照してください。

この中のn3\n2の部分がLEDの色になります。こちらの数字を変更することで色を変更できるのですが、こちらもホームページに何番が何色か書いてあります。

こちらを参考に変更してください。
echo -e “1000\n1000\n{色番号}\n{色番号}\n” > /tmp/.runled
先ほどと同じように5個作ります

色の中身の一覧はこちらになります。

最後にデプロイして終わりになります。

機能追加方法(LEDを通常戻す)

最後にLEDを通常動作に戻します。
まずdelayノードをドラック&ドロップします。

これはLEDが光る時間の設定になります。
中身の変更は特になく、時間を変更した際に中身の時間を変更してください。

次にexecノードをドラック&ドロップして中身を開きます。

こちらのコマンドもホームページを参照すると、「SIGCONTがプロセスの再開」というコマンドのため、こちらでLEDのプロセスが再開します。
こちらですべての設定が終わりになります。最後にすべてを接続していきます。

ここで気を付けることが
BLE受信強度の振り分けは「1つの点に対しLED制御停止1つを繋げる」こと
exec(歯車マークの赤いノード)は3つの点があるが、1番上のものだけを繋げる。
この2つを気を付けてください。

上図のように接続出来たら最後にデプロイをして終了になります。
色が変わるかを試したいときは、injectノードをLED制御停止に繋げデプロイすると、injectノードの左側が押せるようになるので、クリックするとLED動作が見れます。