Raspberry PiでNode-REDをはじめよう
Getting Started with Node-RED on Raspberry Pi
以前、投稿した記事の続きです。
【備忘録】Raspberry PiでNode-REDをはじめよう_インストールまで | 株式会社応用技術研究所 (hagane-karakuriya.com)
Node-RED概要
それでは、Node-REDのビジュアルインターフェイスを見てみましょう。
Node-RED Interface 主なセクション
下図は、Node-REDの主なセクションをラベルで表示しています。
※各セクション(NODES, FLOW, DEPLOY CHANGES… )の役割については、以下で説明します。
Nodes
左のサイドバーには、ブロックがたくさん並んだリストが表示されています。
これらのブロックはノードと呼ばれ、機能ごとに分けられています。
ノードを選択すると、ノードのドキュメントタブでその動作を確認することができます。
ノードには、他のノードと情報を受け渡しするための入力ポートおよび/または出力ポートがあります。
例えば、あるノードが前のノードから入力を受け取り、その情報を処理し、その情報を使って何かをする別のノードに別のメッセージを出力します。
このようにノード間でやり取りされる情報をメッセージと呼びます。
Flow
ノードはフローの構成要素である。
ノードを配線して、特定のタスクを実行するフローを作成します。
フローはワークスペースのタブでもあり、ノードを配置し整理する場所です。
中央にはフローがあり、ここにノードを配置します。
右サイドバー
右側のサイドバーには、いくつかのツールが用意されています。
- Information:フローに関する情報が表示されます。
- Help:ノードのドキュメントを表示します。
- Debug:バグアイコンはデバッグウィンドウを開き、デバッグノードに渡されたメッセージを表示します。
- Config nodes:歯車のアイコンは、設定ノードに関する情報を表示します。
設定ノードはメインのワークスペースには表示されず、フロー内の複数のノードで共有可能な再利用可能な設定を保持する特別なノードです。
Deploy
デプロイボタンはフローに加えられたすべての変更を保存し、フローの実行を開始します。
シンプルなフローを作ってみましょう
Node-REDのインターフェースに慣れるために、簡単なフローを作成してみましょう。
これから作成するフローは、トリガーされるとデバッグコンソールにメッセージを出力するだけです。
injectノードとdebugノードをフローにドラッグし、それらを一緒に配線します。
では、injectノードを編集してみましょう。
ノードをダブルクリックします。
下図で、変更できるさまざまな設定を確認できます。
msg.payload フィールドで、string を選択し、Hello と入力します。そして、Doneをクリックします。
Node-RED のメッセージ(msg)は、複数のプロパティを持つことができる javascript オブジェクトです。
payloadは、ほとんどのノードが使用するデフォルトのプロパティです。
次のノードに送信するメッセージの主な内容と考えることができます。
この例では、単にテキストメッセージを送信しています。
debugノードは編集しませんが、ダブルクリックしてそのプロパティを確認することができます。
debugノードの出力である msg.payload と、その出力をどこに送るかを選択できます。
この例では、デバッグウィンドウに送信します。
アプリケーションを保存するには、右上の Deploy ボタンをクリックする必要があります。
アプリケーションが保存されます。
フローをテストする
それでは、簡単なフローをテストしてみましょう。
debugウィンドウを開き、injectノードをクリックしてフローをトリガーします。
ご覧のようにinjectノードをトリガーすると、debugウィンドウに私たちのメッセージが表示されます。
これは非常に基本的な例で、役に立つことは何もしていません。
しかし、この記事の目的はNode-REDのインターフェースに慣れ親しんでもらうことです。
すぐに、独自のフローを作成し始めることができるでしょう。
ノードのエクスポートとインポート
このセクションでは、ノードを保存する方法について説明します。
これは、次のような場合に便利です。
- Backup Node-REDのフローをバックアップする
- Move フローを別のRaspberry Pi(またはマシン)に移動する
- Share Node-REDのプロジェクトを他の人と共有する
メインメニューを開き、Exportオプションを選択します。
新しいウィンドウが開きます。
選択したノード、現在のフロー、またはすべてのフローを保存するかどうかを選択できます。
また、ノードをJSONファイルとしてダウンロードしたり、JSONをクリップボードにコピーしたりすることもできます。
どのように動作するかを示すために、選択したノードのDownload をクリックします。
flows.jsonと呼ばれるJSONファイルがダウンロードされます。
メインメニューからImportオプションを選択すると、後でそれらのノードを別のRaspberry PiやNode-REDがインストールされた別のマシンにインポートすることができます。
Import nodesウィンドウでは、JSONファイルをアップロードするか、下書きのJSONを貼り付けることができます。
Pallete Nodeのインストール
これまで見たように、Node-REDはPallete(左サイドバー)にたくさんのノードがプリインストールされています。
他にも多くのノードが用意されており、インストールしてプロジェクトに使用することができます。
Node-REDのライブラリで見つけることができます。
もし、あなたのプロジェクトに何か特定のタスクが必要な場合、おそらくそのためのノードが既にあります。
例えば、フローにメールを送る機能を追加する必要がある場合、次のような感じでググってみてください。
“send email node-red node”(メールを送るノード、赤のノード)。
最初の検索結果の1つが、このnode-red-node-emailのページです。
これは、メールを送受信するためのノードがいくつか付属しています。
これらのノード(または他のノード)をフローで使用できるようにインストールしたい場合は、メインメニューに移動してManage paletteオプションを選択します。
以下のようなウィンドウが表示されます。
インストールタブを選択し、インストールしたいノードを検索します(例:node-red-node-email)。
Node-RED Dashboard
Node-RED Dashboardはライブデータダッシュボードを素早く作成するために、Node-REDのノード群を提供するモジュールです。
これらのノードは、Menu > Manage Paletteを使用してインストールできます。
そしてnode-red-dashboardを検索してインストールします。
インストール後、パレットにダッシュボードのノードが表示されます。
ダッシュボードセクションのノードは、アプリケーションのユーザーインターフェイス(UI)に表示されるウィジェットを提供します。
ユーザーインターフェースは、以下のURLでアクセスできます:
http://Your_RPi_IP_address:1880/ui
例えば、この場合:
http://192.168.1.106:1880/ui
現時点では、UIにアクセスすると、前の画面が表示されます。
それは、フローにダッシュボード・ノードを追加していないからです。
このチュートリアルでは、ダッシュボードのユーザーインターフェイスの作成方法については説明しません。
もっと学びたい方は、以下のリンク先を、ぜひ読んでみてください。
まとめ
このチュートリアルは、Node-REDのクイックスタートガイドです。
Raspberry PiにNode-REDをインストールする方法、シンプルなフローの作成方法、ノードのインポートとエクスポート、ノードのインストール、Node-REDダッシュボードのインストールを学びました。
また、例えばDigital OceanのようなクラウドサーバーにNode-REDをインストールすることもできます。
それについてはチュートリアルがあります: Access Node-RED Dashboard from Anywhere using Digital Ocean.
こちらもどうぞ
(以下のリンク先は原文です。)
Node-REDはMQTTを使用するIoTプロジェクトに非常に便利なので、私たちのすべてのMQTTプロジェクトをチェックすることをお勧めします。
読んでくれてありがとう。