今回はABLICのPH-Aシリーズで漏水センサーからデータを受信する際、Node-RED側で漏水センサーの受信強度をopenblockのLEDランプで視覚化する方法をご紹介します。
使用するノード
今回はこちらの3つのノードを使っていきます。
機能追加方法(電波強度条件)
まずはopenblockからNodeREDを開きます。
今回は下のメールの方は使わず、ipc-inから新たに作っていきます。
左のノード欄からswitchノードをドラック&ドロップします。
追加したswitchノードを開き、プロパティのmsg.payloadをmsg.payload.rssiに変更します。
こちらの名前は、受信したデータによって変わっていくのですが、openblockのホームページで書かれているため、そちらを参照に変更してください。(今回はrssi)
こちらの変更後スイッチノードの中身を以下のように変更してください。
下の追加ボタンから5まで追加します。
左の==をクリックするといろいろな条件が出てきますので、下記図のように条件と数値を設定します。
こちらの数値もホームページに載っているので参考に設定してください。
すべての設定が終わったらデプロイそして終わりになります。こちらで強度の条件設定ができました。
次に動作の設定をしていきます。
機能追加方法(動作設定)
左のノード欄からexecノードをドラック&ドロップします。
追加したexecを開き、以下のコマンドをコマンドの欄に入力します。
pkill -SIGSTOP led_updater.sh
このコマンドは2つに分かれており、初めの
pkill -SIGSTOPはLinuxコマンドになります。プロセスを停止するというコマンドになります。
以下のURLを参考にしてください。
ミライサーバー Linuxのプロセスとは。psコマンドやkillコマンドの使い方も解説 より引用
次に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動作が見れます。