前回はfunctionノードの中で、require(‘os’)的な操作をする方法を練習。これでNode-REDの中から node.js の各種パッケージが使えるようになり嬉しいです。でも「出来合い」のモジュールだけじゃあな。自前のも使いたい、ということで今回は自前モジュールも同じ方法で使えることを確かめました。 “ブロックを積みながら(85) Node-RED、自作モジュールのロード” の続きを読む
ブロックを積みながら(84) Node-RED、追加モジュールのロード
前回までで手元のNode-RED環境のパレットにあるノードをひとわたり触れたことになりました。これからはも少し「掘ったり」「新たなノードを追加」したりしてみたいと思います。まずは何でもできる function ノード、も少し詳しくなりたいです。今回はrequire(‘xxx’)的に外部モジュールを呼び出したいです。
ブロックを積みながら(83) Node-RED、Rpi-keyboardノードでキー入力
前回マウスであったので、今回はキーボードです。ラズパイのUSBコネクタにUSBキーボードを取り付けたときに使える Rpi-keyboard ノードです。ノードの設定は不要、使い方は簡単ですが、キースキャンコードの解釈は簡単なような、でも何処をみたらいいんだろうか、トホホな感じがいたします。
ブロックを積みながら(82) Node-RED、Rpi-Mouseノードでクリックを検出
この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スクリプトとの間で通信できることを確認してみました。