見出し画像

Node-Red 円グラフでNO/GO表示

RasPiを使って稼働させている装置群が集めたデータをダッシュボードに可視化したいと考えてNode-Redを試しています。

Webアプリのように複数の端末からか使えるようにしたいので、FlaskやPlotly Dashを試してみましたが、私の使用頻度でこれらを扱える技量を維持し続けるのは困難なように感じていました。

ダッシュボードは稼働後にも改修が必要になりそうですが、プログラムを扱える人材を増やして他の用途にも展開出来るようにしたいと考えてNode-Redを試しています。

各ノードを試す

Node-Redのdashboardをメインに、各ノードを試しているところです。

fig.1 各ノードの動作確認

LED表示

Webを参考にnode-red-contrib-ui-ledを使って機器のNO/GOを表示してみました。タイトル画像は下図(fig.2)部分のフローです。

fig.2 LED表示

TRUEボタンを押すと緑色表示、FASEボタンを押すと赤色表示に成ります。実際にはボタンではなくて機器の状態をポーリングして表示を切り替えて使いたいと思います。
payloadとしてテキスト表示しているのはTRUE=1, FALSE=0です。

2台のPCからこの画面を見ていると、ボタン操作したPCではリアルタイムに緑→赤→緑と表示が変わるのに、もう一台のPCではLED表示が変化しないことが分かりました。

fig.3 操作しないPCではLED表示が変化しない

円グラフでNO/GO表示

LEDが小さいことも気になっていたので、円グラフを使って表示を試みました。こちらは2台のPC共に問題なく表示が切り替わります。
LED同様に3色でも4色でも対応できると思います。

表示サイズは3x2ですが、3x1では円グラフを表示してくれませんでした。

面倒な処理はPython活用

装置群からの出力をNode-Red用に変換するような場面では、execノードでPhthonスクリプトを動かして対応しようと思います。

functionノードで複雑な処理を書くことは推奨されないようですし、そもそもJavaスクリプトを勉強するのは面倒だな~と感じています。
fanctionノードは改行コードを削除すると言った簡単な機能だけにしようと考えています。

dashboardでは散布図を表示出来ないなど、制約がありますが複雑なグラフが必要になればPlotly Dash等他の方法を使おうと思います。

以上のような方針なら私でも比較的容易にダッシュボードを作れそうです。


今後とも宜しくお願い致します。




出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。