Node-REDでMQTT通信(Node-RED MCU、M5Stack)

はじめに

 今回はNode-REDでMQTT通信を使ってみました。MQTT通信はIoT機器の通信にも使われていて、軽量かつ低消費電力だそうです。

 Node-RED MCUでプログラムを書き込んだ、M5Stackでも使うことができました。データをMQTT通信でRaspberry Piに送信して、Node-REDで処理することもできました。マイコンとサーバー間での通信が簡単になりそうです。

▼MQTTに関するページはこちら

https://www.ibm.com/docs/ja/ibm-mq/7.5?topic=mobile-messaging-m2m

▼Node-RED MCUに関する以前の記事

Node-RED MCUを使ってみる その1(Node-RED、M5Stack)

はじめに  今回はNode-RED MCUを使って、M5Stackにプログラムを書きこんでみました。以前の記事で少し紹介していたのですが、Makerが終わってからはNode-RED MCUばかり使…

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

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

Aedes MQTT brokerでMQTTブローカーを起動する

 Raspberry Pi上のNode-REDで、MQTTブローカーを起動してみました。MQTT通信の中継局みたいな感じです。今回はAedes MQTT brokerを使っています。

 パレットの管理→ノードを追加から、node-red-contrib-aedesを検索してノードを追加することができます。

▼ノードはこんな感じ

▼設定はこちら。ポートは1883番です。

mqtt in/outノードの設定をする

 mqtt inノードで受信して、mqtt outノードで送信します。それぞれのノードには、MQTTブローカーが置かれているサーバーと、トピックを設定します。同じトピックのノード間で通信します。

▼mqtt outノードの設定はこちら。mqtt inノードも同じです。

▼サーバーの選択肢の横にあるアイコンから、詳しく設定することができます。今回はローカルです。

MQTT通信を実行する

 injectノードのデータをmqtt outノードに送って、mqtt inノードで受信します。トピックは/testで揃えています。

▼ノードを配置するとこんな感じ。

▼injectノードの中身はこちら。msg.payloadが送られるので、debugノードにはmqtt testと表示されるはずです。

▼injectノードのボタンを押したときの様子。デバッグ欄に、mqtt testと表示されています。

Shiftr.ioのサーバーをMQTTブローカーにする

 Shiftr.ioという、外部サービスのMQTTサーバーを使うことができます。こちらも簡単に使えて便利です。

 無料で使える代わりに全世界に公開されているお試し用のサーバーと、アカウント登録で無料で使える代わりに6時間の制限があるサーバーがあります。

▼Shiftr.ioのページはこちら

https://www.shiftr.io/

▼こちらのTryのページで、公開されているサーバーのURLを取得できます。

https://www.shiftr.io/try/

▼Shiftr.ioを使って、M5StackとNode-REDでMQTT通信したときの様子はこんな感じです。データの流れが分かりやすいですね。

最後に

 Node-REDを使って、簡単にMQTT通信を試すことができました。Node-RED MCUと一緒に使って、マイコンとサーバーの通信に活用していきたいところです。

 MQTTSというものも見たので、HTTPSのように、よりセキュアな通信ができるかもしれません。Moddable SDKがHTTPSに対応できるようになったのが最近なので、そちらも試してみたいところです。

▼Shiftr.ioのTryのページで見ることができる、データの流れ。なんだか神経みたいですね。

コメントを残す

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