このNode-REDの練習シリーズはラズパイ3機をNode-REDサーバとして使っております。それでラズパイ特有のNode-REDノードが使えると。以前に、ラズパイGPIOを直接操作できるノードをやりました。今回は、ラズパイUSBに接続したマウスの読み取りができるノードです。Rpi-Mouseノード。
ブロックを積みながら(81) Node-RED、yamlノードでオブジェクトと相互変換
昨日は「第4回目接種」でありまして倦怠感あり、何もやる気が起きませぬ。気を取り直して予定の yaml ノードをやっつけてしまう所存。やっつけなので、内容は?、まあ、いつものことですかね。
ブロックを積みながら(80) Node-RED、jsonノードで文字列とオブジェクト相互変換
今回はjsonノードです。文字列とNode-REDの主要データ構造であるJSONオブジェクトを相互変換できるもの。実用的には変換時にSchemaによるバリデーションを行えることが重要かと。でもね、面倒臭いのよSchema。今日のところは自分で自分にデータを投げつけているだけなので省略。いいのか、そういうことで。
ブロックを積みながら(79) Node-RED、watchノードでファイルを監視
今回は watch ノードです。watchといっても腕時計ではありませんよ。指定したファイルを監視してくれるノードです。Node-REDの「外側で」起こった変更を捕捉するのには便利な機能じゃないかと思います。捕捉できたところで次にどうするのかはまた別の話ですが。
ブロックを積みながら(78) Node-RED、batchノードでmsg列をひとからげ
今回は batch ノードです。なにか「バッチ処理」をしてくれるノードかと思いきや「バッチ処理」しやすいようにmsg列をグループ化してくれるもの。topicとpartsの属性を付け加えてくれます。それをjoinノードに渡せばparts属性の順番で、グループに属するmsg群を一個のmsgにまとめることができます。 “ブロックを積みながら(78) Node-RED、batchノードでmsg列をひとからげ” の続きを読む
ブロックを積みながら(77) Node-RED、sortノードで流れてくるmsgをソート
今回はsortノードです。ベタで何の工夫もないソートの例題やってみました。数値配列をsplitしmsg列を sort ノードに送り込み、payloadの数値をキーにして昇順ソート、出力されたmsg列をjoinノードで配列(勿論ソート済の)に戻すというもの。言葉で書くとメンドウですが、ノードをつなげていくだけ、お楽。
ブロックを積みながら(76) Node-RED、rangeノードで数値範囲を変換
今回は rangeノードです。シンプル機能のノードです。ある範囲内の数値を別な範囲に変換するだけです。変換といっても入力範囲の最大を出力範囲の最大、入力範囲の最小を出力範囲の最小にマップするだけの「線形」な変換のみです。難しい変換はできません。範囲外だったらサチらせるとか、ラップさせるとかできるので、ま、十分か。
ブロックを積みながら(75) Node-RED、completeノードで「ちょい足し」
今回の completeノードは出力ポート無のフロー終端の完了後に何かを始めるためのノードです。ノード間に「配線」がないのにアクションとるノードには、エラーをキャッチするcatchノード、ステータスを取得するstatusノードなどもありますが completeノードは特定のノードに寄生するので、ちょい足しに便利かと。
ブロックを積みながら(74) Node-RED、rpi-gpioをDashboard接続
前回、ラズパイに接続したIO ExpanderをNode-REDダッシュボードから制御できるようにしました。今回は以前に rpi-gpio in/out ノードを使ってNode-REDのフローから直接操作できるようにしてあった LEDとプッシュスイッチをダッシュボードに接続してみます。でも回路をずるしてるんだ、これが。
ブロックを積みながら(73) Node-RED、Execした結果をDashboardに表示
別シリーズでラズパイにMCP23017 IO Expanderを取り付け、8ビットのDIPスイッチの値を読み取るPythonスクリプトを作りました。しかし、暑さにかまけてPython書いて中断、Node-REDダッシュボードから制御する部分を後回しっと。残り作業は純然たるNode-REDの作業なのでこちらでやります。
ブロックを積みながら(72) Node-RED、websocket in/out ノード
今回はNode-REDのWebSocket-in/out ノードの試用です。世の動きに鈍い年寄りにはWebSocketは最近の流行?いや双方向でモダンなWebアプリケーションには必須のプロトコルだと。今回は最低線のフローをNode-RED上に実装、Pythonスクリプトとの間で通信できることを確認してみました。
ブロックを積みながら(71) Node-RED、rpi-gpio in ノード
前回Node-REDから、Raspberry PiのGPIO端子を出力として操作してみました。今回は入力として使用してみます。前回同様、外部のボードとはフォトカプラで絶縁しています。入力イベント「ボタンを押した」を捉まえるために昔やった記憶のあるfilterノードに御出馬お願い。その裏で前回の出力回路を微妙に修正も。
ブロックを積みながら(70) Node-RED、rpi-gpio out ノード
今回からRaspberry Pi上でNode-REDを走らせているときに使えるノードをいくつか実験して行きたいと思います。Raspberry Piの持つ拡張端子を直接操作していくものども。制約事項もままありますが、外部回路を接続できるので応用無限大?ホントか?
ブロックを積みながら(69) Node-RED、HTTP in / outノードその2
前回 HTTP in/outノードを試用してみましたがinとoutの間に何も処理を挟まなかったのでそれらしくありませんでした。今回はtemplateノード一つ挟んで、HTTPらしくGETして、POSTして、とやって見たいと思います。まあ、Node-REDで普通のWebサイトを作る気はないのですが、やれば出来る、と。