はじめに
こちらはNode-REDのカレンダー | Advent Calendar 2023 - Qiita、22日目の記事です。
@mshioji さんからご紹介いただき、初心者ですが、記事を書かせていただいております。
Qiitaでの投稿も初めてとなります。読みにくい点もあろうかとは思いますがどうぞご容赦くださいませ。
2023年の大きな収穫のきっかけとなったのは、4月に参加したMaker Faire Kyoto 2023に参加したことです。ここで@mshioji さんとの出会いがあり、クラフトルームを使わせていただくようになりました。
当初はレーザー加工機をお借りして、ミニ百葉箱のキットを作成していました。
その時々でNode-RED-MCUのチャレンジはしていたのですが、まだ本腰が入っていませんでした。
なんとなく、今シーズンが終わった11月、新たなチャレンジをはじめました。
まずは、Raspberry Piを用意し、その上で、Node-REDを動かし、さらにMCU Editionまで動かす。というものです。
環境の設定
数回にわたるリセマラを乗り切り、ようやく環境を手に入れました。Raspberry Piも初めてで、Node-RED-MCUも初めて。
Node-REDはinject-debugを試したぐらい。
ここからのスタートです。
モックアップの作成
とにかく何かをしなければと思い、実現できそうなものというより、できればいいなと思うものを作ってみることにしました。
自動水やり装置の焼き直しですが、仕組みを理解しているので、実装はとても簡単でした。
ここで、Node-REDを少し理解できた気がします。
実際の装置作り
モックアップから実際の装置つくりまで数回コケましたがそれでも、今までの装置作りと比べると断然ラクです。
これから長期の稼働テストを行っていきたいと思います。
何がよかったのか?
少し冷静になって振り返ってみます。
思う所は3つあります。
Node-RED-dashboardが秀逸
私が今まで経験したプログラミング言語の考え方では、UIのオブジェクトを設計し、そこにイベントハンドラをぶら下げておいて、実際にイベントが流れてくるのを待ち構えています。
イベントの通り道を予測して、形つくっておくイメージです。
Node-RED-dashboardでは、基本的なオブジェクトをノードとして混ぜ込んでおいて、それぞれのフローを考えながら流れを変えていくことができます。
砂場で山の上から水を流して、その流れを見ながら、仕掛けを変えていくことができるようなイメージです。
メッセージの流れを意識するだけでよい
以前作ったSALZ mini 2022では同時に様々な割り込みに対応し複雑なアクションをこなすため、状態遷移表を作成し作りこみました。
これはこれでやり切った感はありましたが、もうこれ以上手を入れることができません。メインテナンス性が著しく悪いです。
Node-REDではメッセージの流れを意識するだけでよく、プログラムの可読性も非常に良いです。
Node-RED-MCUのデバッグ環境が秀逸
neopixelsのサンプルを試していて、injectのボタンを押すと、MCUのLEDが点灯する仕掛けが理解できませんでした。
「はじめてのNode-RED MCU Edition」より引用
それ程よくできているな、と思います。
おわりに
タイトルにも書かせていただきましたが、はじめてのNode-RED-MCUは電動自転車に乗った時のようなラクちんさで、このような楽しい体験は久しぶりです。
Node-RED-MCUの環境構築が難解でしたが、そこさえ乗り切れれば、これは素晴らしいツールだと思いました。
これからも、少しずつですが、盆栽向けの装置作りをこのNode-RED-MCUを使って進めて行こうと思います。