Edited at

1分でIoT環境を構築!Node-RED上でMQTTブローカを立ち上げる手順

More than 1 year has passed since last update.

 今回は、ローカルのNode-RED上でMQTTブローカの環境を手軽に用意できる処理ノードnode-red-contrib-mqtt-brokerを紹介します。Node-REDの処理ノードとして実装されたMQTTブローカですので、パレットから処理ノードをインストールする手順でMQTTブローカを用意することができます。1分もかからずMQTTブローカを用いたIoT環境を構築できますので、ぜひ試してみてください。


従来の方法: MQTTブローカを自前で構築

 通常、Node-REDでMQTTを利用するには、別途MQTTブローカのサーバを立ち上げる必要があります。クラウド上のMQTTブローカを用いる場合は、アカウント登録やクレジットカード番号の登録などの契約手続きがネックとなることがあります。また、OSSのMQTTブローカを無料で使うという選択肢もありますが、インストールコマンドとの闘いが生じ、意外と時間がかかります。もしNode.js上で動作するMQTTブローカがあれば、Node-REDと同じ環境で動作し手軽にMQTTを利用ことができます。「こんな都合の良いMQTTブローカがあれば良いな」と思っていたら、MoscaというMQTTブローカがありました!


今回の方法: 処理ノードとして動作するMQTTブローカを利用

 MoscaはNode.jsで実装されたMQTTブローカです(Node-RED勉強会の発表で知りました)。このMoscaをNode-REDの処理ノードとして手軽に利用できるのが、node-red-contrib-mqtt-brokerです。以降でNode-REDのパレット画面から本処理ノードをインストールする手順を説明します。


インストール手順

 まず、Node-REDのフローエディタの右上のメニューから、「処理ノードの追加削除」を選択します。

menu.png

 すると左側のパレット管理画面が表示されますので、「処理ノードの追加」のタブをクリックします。

palette.png

 ここでキーワードとして「node-red-contrib-mqtt-broker」を入力します。「処理ノードを追加」をクリックし、しばらく待つと、左下のパレットにmoscaノードが追加されます。その後、moscaノードを下の図の様にシートに配置し、debugノードと繋ぐのみで、MQTTブローカの環境構築が完了です。簡単ですね!

mqttbroker_flow.png

 早速、MQTTブローカを使ってみましょう。MQTT inとoutノードにトピック名(ここでは「data」)、ホスト名として「localhost」を指定します。以下のようにinjectノードとdebugノードを繋ぐのみで、メッセージがMQTTブローカを通して送られていることが確認できます。もちろん、他のNode-REDインスタンスから本MQTTブローカにメッセージを送ることも可能です。

flows.png

 この方法を用いると、ローカルのNode-RED環境でMQTTを簡単にテストできるようになりますね。

※注意

 本処理ノードは、ローカルPCやIaaS上でのみ動作します。Bluemix版Node-REDはCloudFoundry上で稼働しているため、動作しません。Bluemix環境ではBluemixで提供されているMQTTブローカを使用してください。