Node-RED MCUの環境を構築する(ESP-IDF v5.1.1対応版、Raspberry Pi)

はじめに

 Moddable SDKがv4.2にアップデートされたことにより、Node-RED MCUの環境が大きく変化しています。特にESP-IDF v5に対応したことで、ESP-IDF v4のままだとエラーが出るようになっています。

 その影響で、私の環境でもアップデートするとエラーだらけで全然動作しなくなったんですよね...

 もうややこしいので、新しく環境を構築しましたというのが今回の話です。こういった時にSDカードを差し替えるだけで済むRaspberry Piは便利ですね。

▼Moddable SDKのリリース履歴については、こちらをご覧ください。

https://github.com/Moddable-OpenSource/moddable/releases

 以前の記事ではxs-devを使って簡単にインストールしたのですが、今回はより具体的な手順を知りたかったのでxs-devを使わずにインストールしました。

▼以前の記事はこちら

xs-devでRaspberry PiにNode-RED MCUの環境を構築する

はじめに  今回はRaspberry PiにNode-RED MCUの環境を構築してみました。  少し前に発売された書籍での方法とは違って、xs-devを使っています。構築が楽になるそうです…

▼こちらの書籍も参考にしています。

サポートページにて、バージョンアップデート後の環境構築について記載されています!

これから環境を構築する際はご確認ください。

はじめてのNode-RED MCU Edition ビジュアルプログラミングでマイコンを動かそう! (kohgakusha.co.jp)

▼Node-REDとNode-RED MCUの簡単な紹介はこちら

書籍紹介:『はじめてのNode-RED』/『はじめてのNode-RED MCU Edition』

Node-REDとは  一言でいうと、Node-REDはプログラミングが簡単にできるツールです。ビジュアルプログラミングの一種で、視覚的にわかりやすくなっています。 ▼百聞は一見…

Raspberry Piで環境を構築する

SDカードにOSを書き込む

▼私はRaspberry Pi 400を使っています。

▼Raspberry Pi imagerで64bitのOSを書き込みました。

 書き込み後の環境構築は、Raspberry Pi 400で行いました。

Moddable SDKをインストールする

 必要なパッケージをインストールします。


 sudo apt update
 sudo apt upgrade
 sudo apt install gcc git wget make libncurses-dev flex bison gperf
 sudo apt install libgtk-3-dev

 GitHubからModdableのリポジトリをクローンします。


 git clone https://github.com/Moddable-OpenSource/moddable

 git cloneでインストールしているので、ディレクトリに入ってgit pullを実行するとアップデートできます。

 次に環境変数を設定します。書籍ではsourceコマンドで.bashrcに設定していたのですが、できなかったのでnanoコマンドで直接編集しました。


 sudo nano .bashrc

 以下の二行を追加します。

※/home/piのpiの部分はユーザー名に合わせて変更してください。


 MODDABLE="/home/pi/moddable"
 PATH="$MODDABLE/build/bin/lin/release:$PATH"

 記入後、Ctrl + Sで保存、Ctrl + Xで終了します。

 以下のコマンドで再起動すると、環境変数の設定が反映されます。


 sudo reboot

 以下のコマンドでModdable SDKをビルドします。


 cd $MODDABLE/build/makefiles/lin
 make
 make install

 以下のコマンドでxsbugを開くことができればOKです。これはデバッグツールになっています。


 xsbug

 なお、.bashrcファイルはRaspberry Piのファイルマネージャーでは隠しファイル扱いになっています。隠しファイルも表示するように変更すると、ファイルを開くことができます。

▼ファイルマネージャーで設定を変更します。

▼すると、.bashrcも表示されます。ここから開くと権限によっては編集できないことがあるので、その場合は先程のコマンドを実行してください。

ESP-IDF v5.1.1をインストールする

 必要なパッケージをインストールします。


 sudo apt install python-is-python3 python3-pip python3-serial cmake ninja-build ccache libffi-dev libssl-dev dfu-util
 mkdir esp32
 cd esp32

 ここで、ESP-IDFのv5.1.1をインストールします。


 git clone -b v5.1.1 --recursive https://github.com/espressif/esp-idf.git

 ESP-IDFをビルドしてインストールします。


 export IDF_PATH=$HOME/esp32/esp-idf
 cd $IDF_PATH
 ./install.sh

 ここでの環境変数も、私の場合はnanoコマンドで追加しました。

Node-REDをインストールする

 Node.jsをインストールします。


 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
 sudo apt install -y nodejs

 以下のコマンドでnodeとnpmのバージョンを確認します。


 node -v  
 npm -v

 Node-REDをインストールします。


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

 Node-REDを起動します。


 sudo systemctl start nodered.service

 http://localhost:1880にアクセスします。

▼Node-REDの起動・停止関連のコマンドについてはこちら

起動sudo systemctl start nodered.service
停止sudo systemctl stop nodered.service
再起動sudo systemctl restart nodered.service
OSの起動時に自動起動sudo systemctl enable nodered.service
自動起動の停止sudo systemctl disable nodered.service

Node-RED MCU Pluginをインストールする

 node-red-mcu-pluginをインストールします。これでNode-REDにMCU用のプラグインが追加されます。


 cd .node-red
 npm install @ralphwetzel/node-red-mcu-plugin

 settings.jsファイルを編集します。これでNode-REDが起動したときにプラグインも読み込まれます。


 sudo nano settings.js

 一番最後の行に以下の行を追加します。

※/home/piのpiの部分はユーザー名に合わせて変更してください。


 process.env.MODDABLE = "home/pi/moddable"

 以下のコマンドでNode-REDを再起動して、再度http://localhost:1880にアクセスしましょう。


 sudo systemctl restart nodered.service

ノードを追加して動作確認をする

 Node-REDのメニュー→パレットの管理から、以下のノードを追加します。Node-RED MCU関連のノードは、「mcu」と検索するとヒットします。

  • @moddable-node-red/mcu
  • node-red-dashboard

 なお、@ralphwetzel/node-red-mcu-pluginについては、先程npmでインストールしているので不要です。パレットの管理から追加して再起動しても、Module already loadedというエラーが出て追加されません。ご注意ください。

▼ダッシュボードのノードを書き込んでみたところ、無事実行できました。

最後に

 無事Node-RED MCUの環境を構築することができました。アップデートによって対応機種が増えていたりするので、また試してみます。

 今後のアップデートでインストール方法がまた変わる可能性もあるので、要注意ですね。ハッカソンのときに突然エラーが出て困ったことがあるので、ちゃんと動作する環境を残しておこうと思っています。

 ちなみに、node-red-mcu-pluginをインストールしたのに、Node-REDに反映されていないことがありました。原因はsettings.jsに記入したファイルのパスのユーザー名が間違っていたからです。この記事で赤文字で書いたのは、そこで行き詰まったからです...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です