LoginSignup
1
0

More than 1 year has passed since last update.

RPi + CHIRIMEN + Node-REDの環境づくり

Last updated at Posted at 2022-10-10

はじめに

Web IoT MakersというIoTの演習+ハッカソンイベントでCHIRIMENというJavaScriptでRPiを動かせるフレームワークを学びました。
Web系のエンジニアの方はJavaScriptですいすいコーディングできるのだと思うのですが、すこしでも楽をしたいのでNode-RED環境も作って併用する環境を作ってみます。
少々回りくどいですが、CHIRIMENのコア部分はWeb I2C APIとWeb GPIO APIです。htmlでUIを使ってJSのAPIでセンサやGPIO制御してMQTTでデータをNode-REDに投げてごにょごにょするイメージです。

CHIRIMEN用のマイクロSDを作る

CHIRIMENの基本的な情報は次のサイトを参考にしてください。
https://chirimen.org/
https://tutorial.chirimen.org/pizero/#chirimen--1
https://chirimen.org/chirimen/gc/top/examples/

起動用のmicro SDカードの作り方はこちらです。
https://tutorial.chirimen.org/raspi/sdcard

基本的な流れは次の通り
①OSイメージファイルをダウンロード
②イメージファイルを解凍
balena Etcherで書き込み

Node-REDをインストール

先ほど作ったmicroSDでRaspberry Piを立ち上げ、Node-REDをインストールします。
インストール方法はNode-RED公式の通り、terminalから次のコマンドを実行します。

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

途中で2回ほど[y/N]を聞かれるのでどちらも[y]。

インストールには数分かかります。

Node-REDを起動する

Node-REDを起動するコマンドは次の通り。terminalから実行します。

node-red-pi --max-old-space-size=256

シェルスクリプトを使って自動起動

sudo vim $home/Workspace/node-red-start.sh

スクリプトの中身

node-red-pi --max-old-space-size=256

crontabにコマンド追加

crontab -e

初めて起動するときはエディタに何を使うか聞いてくるのでお好みで。
よくわからない人はnanoを選んでおくとよいかな。
設定ファイルの一番最後に一行追加して保存

@reboot /home/airpocket/Workspace/node-red-start.sh

airpocketのところは自分のuser名を。

Node-REDを自動起動する

毎回起動コマンドを入力するのはめんどくさいので、自動実行させておきましょう。

sudo systemctl enable nodered.service

自動実行をやめるのは次のコマンドです。

sudo systemctl disable nodered.service

Node-REDにアクセスする

Node-REDはブラウザでアクセスして、フロー(プログラム)を編集します。
Raspberry Piのブラウザでアクセスする場合は、ブラウザを立ち上げて「http://localhost:1880」を読み込みましょう。初めてアクセスするとチュートリアルが表示されます。消してOK。
Raspberry Piと同じLANに接続しているPCからもブラウザで簡単にアクセスできます。
アクセス先のアドレスは「http://...:1880」です。***にはRaspberry PiのIPアドレスを指定します。

Node-REDの使い方をちょっとだけ

Node-REDの画面構成はこのようになっています。
image.png

パレットには、様々な昨日を持った「ノード」がならんでいます。試しに「inject」と「debug」 ノードをワークスペースにドラッグしてみましょう。
image.png

「inject」が「タイムスタンプ」、「debug」が「msg.payload」に変化します。①から④の操作を続けてください。
image.png

画面右のサイドバーの虫のマークのアイコンをクリックして、デバックタブを表示すると、タイムスタンプノードで取得した現在時刻のデータがmsg.payloadノードからデバッグウィンドウに出力されています。数字はUNIX時間で表示されていますがデバッグウィンドウ内の▶をクリックすると表示フォーマットを変更できます。
image.png

次に、時刻データではなく、テキストメッセージを出力してみます。下図の通り、「inject」ノードのプロパティを変更すると時刻ではなく、テキストが表示されるようになります。
image.png
Node-REDは、ノードをつなげるて、msg.payroadなどのデータを次のノードに送りながら様々な処理を行うフロー形式のプログラミングツールであることがなんとなくイメージできたでしょうか。

まとめ

CHIRIMENにNode-RED環境をインストールしました。
2022年10月現在、CHRIMENはDebian Busterベース、インストールされているNode.jsはVer14ですがNode-REDのインストールは可能でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0