前回、ラズパイに接続した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サイトを作る気はないのですが、やれば出来る、と。
ブロックを積みながら(68) Node-RED、HTTP in / outノードその1
前回 TCP in / out ノードをやってみたので、今回は HTTP in / out です。2つを直接接続すれば一応ノードとしての動作確認はできるのですが実用になりません。やっぱり高水準です。in と out の間に処理を挟みたいです。それにリクエストを投げる側にも準備がいる、と。まあ改良した実験はまた今度と。
ブロックを積みながら(67) Node-RED、TCP in / outノード
前回は query送ってanswer受け取るスタイルのTCP requestノードを実験しました。今回は一方通行のTCP out ノードと、TCP in ノードを実験してみます。TCP out ノードで送信したパケットをそのままTCP in ノードで受け取れば実験できると。local host内で完結。お手軽。
ブロックを積みながら(66) Node-RED、TCP requestノード
前回はUDPパケットを対向機にECHOしてもらってUDP in/out の動作を見てみました。今回はTCP requestノードを使って 送信したTCPパケットを前回同様にECHOしてもらって動作確認したいと思います。TCPはハンドシェークが必要なので実際に流れるパケットの様子は複雑ですが、表向きは超簡単!ホントか?
ブロックを積みながら(65) Node-RED、UDPパケットの送受信ノード
Node-REDと先っぽのマイコンの間の通信はMQTTばかり使ってきました。しかしNode-REDの「パレット」には他のNetworkプロトコルのノードも並んでいます。httpなど上位レイヤーもあれば、TCP/UDPなど下位レイヤもあります。今回は下のレベルで「投げっぱなし」で「軽い」UDPを使ってみたいと思います。
ブロックを積みながら(64) Node-RED、外部プログラムの実行ができるexecノード
今回は execノード、出力が3個ある太っちょ(人のことは言えませんが)のノードです。外部プログラムを起動してその結果をとりこむことができるもの。テスト用の外部プログラムとしてはPythonのスクリプトを使用いたしました。標準出力、標準エラー出力、戻り値の3通りの方法で結果を受け取ることができます。
ブロックを積みながら(63) Node-RED、流量制限ができる、delayノード
今回の delay ノードは、本来到着した msg を一定時間遅延させて送り出すものです。しかしこの遅延機能を使ってメッセージの流量制限もできると。時間あたりのmsgの「流量」を決めると、それを超えるmsgはため込まれ流量制限の範囲で下流に流しだされます。フローの中のまさにダムみたいなもの?
ブロックを積みながら(62) Node-RED、時間経過で引き金を引く、triggerノード
今回はtriggerノードです。到来したメッセージに対して所定の遅延時間後に別なメッセージを送信することができるもの。人感センサが反応したら3分間だけ点灯するとか、所定時間内にメッセージが到来しなかった場合にタイムアウトを知らせるインターバルタイマ的な使用など、設定次第でいろいろな目的に使えそうなノードです。 “ブロックを積みながら(62) Node-RED、時間経過で引き金を引く、triggerノード” の続きを読む
ブロックを積みながら(61) Node-RED、変化の有無でフィルタするfilterノード
今回はfilterノードです。filterというとついローパスフィルタとか考えてしまう年寄りですが、このノードは違います。データに関してLPFをかけたりする機能は前々回のsmoothノードが持っていました。今回のfilterノードは、条件に当てはまる msg だけを通過させたり、通過させなかったりするもの。