このシリーズ記事のもう一つの柱である「Node-RED」について概要を説明します。
説明内容
今回の記事では、Node-REDの起動からGPIOを制御するまでの概要を説明して、雰囲気をつかんでいただこうと思います。
でも、「そもそもNode-REDで何ができるのか?」という疑問をお持ちの方もいるかもしれません。この疑問への回答はなかなか難しく、「プログラミングでできることは一通りできます」など、漠然とした回答になってしまいそうです。
そこで今回の記事では、「Node-REDを起動してからGPIOを制御するまで」の手順の概要を確認して、雰囲気をつかんでいただこうと思います。
Node-REDの起動
Node-REDはラズベリーパイにデフォルトではインストールされていません。最初にラズベリーパイにインストールする必要があります。(具体的なインストール手順はNode-REDインストールの記事で説明します)
Node-REDのインストールができたら、次に説明するような流れでNode-REDを起動します。
ラズベリーパイは、以下のようなWindowsやMacと似たようなデスクトップ画面でいろいろな作業をします。
このデストップ画面の左上に「ラズベリーパイアイコン」がありますので、ここをクリックするとメニューの中にインストールした「Node-RED」があります。
この「Node-RED」を選択するとNode-REDが起動します。ただ、「起動する」とはいっても、Node-REDは一般的なアプリケーションのようなユーザインターフェースはないんです。
通常のアプリケーションの場合、起動すると何かウィンドウが表示されてそこでいろいろな操作をしますよね。
実は、Node-REDは裏で動作しているだけなので、操作するウィンドウなどは表示されないんです。
どのように利用するかというと、Node-REDはウェブサーバとして動作しているので、ブラウザからNode-REDにアクセスして操作します。ブラウザからNode-REDにアクセスすると、ブラウザの画面上にNode-REDの操作画面が表示されるわけです。
ラズベリーパイにはデフォルトでブラウザがインストールされてますので、ブラウザを立ち上げてNode-REDのURL(http://〜〜〜)にアクセスします。(どのURLにアクセスするかなどの詳細な手順は、実際に操作する記事で説明します)
このようにブラウザからNode-REDにアクセスすると、Node-REDの操作画面が表示されます。Node-REDの操作はすべてこのブラウザ画面から行います。
なお、Node-REDはウェブサーバとして動作していますので、ラズベリーパイ上で動作しているNode-REDにネットワーク経由でアクセスして、WindowsやMac、タブレットやスマホのブラウザからもリモートで開発することができます。リモートでアクセスする方法も操作説明の記事で詳しく説明します。
Node-REDでの開発手順
ブラウザでNode-REDにアクセスできたら、いよいよ開発します。
Node-REDの操作画面は以下の図の青枠で示したように、左側に機能のリスト、中央に機能を配置して組み合わせるスペースがあります。
この操作画面で、以下のように開発を行います。
- 左側の機能リストから、必要な機能を選んで中央のスペースに配置する
- 必要な機能を配置したら、機能同士が制御できるように線で接続する
- 最後に右上の「デプロイ」ボタンをクリックすると動作が開始される(「デプロイ」とは「保存&実行」のような意味です)
この説明だけですと具体的な作業をイメージするのはなかなか難しいですよね。
そこで具体例として、GPIOにLEDを接続して、そのLEDをON/OFF制御する場合に、Node-REDでどのように開発するのかを確認していきます。
LED制御例
制御例として、以下のように、ラスベリーパイのGPIOピンにLEDを接続して、ON/OFF制御をしてみます。
最初はGPIOピン制御の機能をつくっていきます。
Node-REDの左側の機能リストの中に、GPIOを制御するための「gpio out」という機能があります。
この「gpio out」は、データを受けてGPIOを出力制御します。
具体的には、以下のように「1」というデータを受けるとGPIOのスイッチをONに、「0」というデータを受けるとスイッチをOFFにします。つまり、この「gpio out」機能に「1」のデータを送るとLEDが点灯し、「0」のデータを送るとLEDが消えるわけです。
この「gpio out」機能を配置スペースに置きます。
次に、この機能は実際にどのGPIOピンを制御するのかを設定します。配置したgpio out機能をダブルクリックすると、以下のような設定画面が表示されます。
初めて見るのでちょっと複雑なので「えっ」ってなってしまいますが、設定は簡単です。
この設定は、以下のようにラズベリーパイ本体のGPIOピンと対応しています。
この設定では、ラズベリーパイ本体にLEDを接続しているピンを選択するだけです。
これでGPIO機能の設定は終わりです!
次に、このGPIO機能に「1」や「0」のデータを送る機能を追加します。
機能リストの中に、以下のような「inject」というデータを送る機能があります。
この機能を先ほどと同じように配置します。配置後、この機能をダブルクリックすると以下のような設定画面が表示されます。この機能は「1」というデータを送りたいので、以下のように「1」に設定します。
なお、この「Inject」機能はクリックできるボタンがついていて、クリックすると指定した信号を送ります。
これで機能の配置ができました!
あとは、「Inject」機能から「GPIO」機能にデータを送るために、マウスで二つの機能を結びます。
このあと、右上の「デプロイ」をクリックすると動作を開始します。
動作開始後、「inject」機能のボタンをクリックすると、以下のような流れでLEDが点灯します。
ところでLEDを消す場合ですが、「GPIO」機能に「0」を送る必要があります。そのため、以下のように「0」を送る「Inject」機能を追加してデプロイします。
これで、「1」を送る「inject」ボタンをクリックするとLEDが点灯、「0」を送るボタンをクリックするとLEDが消えます。
Node-REDはこのように、機能を配置、必要な設定を行なって、それらが機能するように線で接続する、という作業になります。
これはLEDを手動で制御する簡単な例ですが、Node-REDにはさまざまな機能が用意されています。
かなり複雑な制御もできる機能がありますので、プログラミングなしでいろいろな制御ができます。
Node-REDの特徴
これまで、Node-REDについて具体例を通してイメージをつかんでいただきましたが、なんとなく特徴はわかりましたでしょうか。
特徴のひとつは、先ほどの例のようにプログラミングすることなく、「機能」を組み合わせるだけでさまざまな制御ができる点です。
またプログラミング経験がある方でしたら、プログラムを書く仕組みも用意されていますので、「機能」と組み合わせてプログラミングすることもできます。使用言語はJavaScriptです。
また今回はGPIOを手動でON/OFFする簡単な例でしたが、「機能」には他にもさまざまなものが用意されています。公式サイトでは2022時点で約3,700もの「機能」がリリースされています。
今回の記事では、Node-REDの雰囲気をつかんでいただくだけでしたが、このあと実際にラスベリーパイで電子工作をして、電子部品をNode-REDで制御していきます!
更新履歴
日付 | 内容 |
---|---|
2022.2.15 | 新規投稿 |