ここでは、public MQTT brokerを使った、携帯端末などとの接続方法について説明します。
Contents
- 1. Public MQTT brokerとの接続
- 1-1. Local MQTT brokerの削除
- 1-2. Public MQTT brokerのURL設定
- 1-3. Publish/Subscribeするトピック名の設定
- 1-4. 他のPublishノード/Subscribeノードの変更
- 1-5. PublishとSubscribeの確認
- 2. 携帯端末へのSubscribe/携帯端末からのPublish
- 2-1. 携帯端末へのMQTT用アプリのインストール
- 2-2. Publilc MQTT brokerへの接続
- 2-3. Publilc MQTT brokerからの携帯端末へのSubscribe確認
- 2-4. Publilc MQTT brokerへの携帯端末からのPublish確認
- ※注意事項
1. Public MQTT brokerとの接続
PublicなMQTT brokerは、https://github.com/mqtt/mqtt.org/wiki/public_brokersにあるように利用に際してフリーなものから、有償なもの、テスト運用的なものから、商用運用のものなどいろいろなものがあります。また、セキュリティに関しても、暗号化/認証無のものから、セキュリティのしっかりしたものまであります。
具体的に使用する際の用途に合わせて、brokerを選ぶ必要があります。ここでは、実験的な接続として、暗号化/認証無でのbrokerへの接続と、暗号化/認証有でのbrokerへの接続を見てみたいと思います。
接続の内容としては、「20. MQTT によるネットワークの構築とデータの活用」で確認した内容が、Public MQTT brokerでも同じように実現できるかを確認します(図1)。
図1. Pbulic MQTT brokerの確認用Node-RED
では、ここから図1をPublic MQTT broker用に変更していきます。
1-1. Local MQTT brokerの削除
まず、図2に示すようにして、localに置いたMQTT brokerを削除します。
- Local MQTT Brokerのノードをダブルクリックする。
- 出てくる設定画面の左上にある削除のボタンをクリックして、ノードを削除する。
図2. Local MQTT brokerの削除
1-2. Public MQTT brokerのURL設定
つぎに、Public MQTT brokerのURLを設定します(図3参照)。
- 設定するMQTT publishノードかMQTT subscribeノードをダブルクリックします。
- 出てくる設定画面の「サーバ」の欄の右端の矢印を押して、「新規にmqtt-brokerを追加」を選択します。
図3. Public MQTT brokerのURL設定(1)
- 右上の完了ボタンを押すと、入れ替わりに出てくる設定画面の「サーバ」の欄に、Public MQTT brokerのURLを入力してください。(図4参照)
- その後、右上の「追加」ボタンを押します。
図4. Public MQTT brokerのURL設定(2)
1-3. Publish/Subscribeするトピック名の設定
URLの設定が終わると、前の画面に入れ替わりますので、トピック名を入力します。(図5参照)
- 「トピック」の欄に、Publish/Subscribeするトピックの名称を入力します。
- 入力が終わったら、右上の完了ボタンを押してください。
以上で、Public MQTT brokerのURLとPublish/Subscribeするトピック名の設定は終了です。
図5. トピック名の設定
1-4. 他のPublishノード/Subscribeノードの変更
図6に示すように、他のPublishノード/Subscribeノードも同様に変更してください。
図6. 変更の展開
最後にデプロイすると、図7のように、Public MQTT brokerに接続された状態になります。
図7. Public MQTT brokerへの接続完了
1-5. PublishとSubscribeの確認
後は、インジェクションノードを順番に押して、メッセージがデバッグ画面に表示されるかどうかを確認します。
図8が確認結果です。
- ①のインジェクションノードを押すと、デバッグ画面に、①のインジェクションノードで設定したメッセージが、Public MQTT broker経由で表示されます。
- ②のインジェクションノードを押すと、デバッグ画面に、②のインジェクションノードで設定したメッセージが、Public MQTT broker経由で表示されます。
図8. Public MQTT brokerとのPublish/Subscribe実験
2. 携帯端末へのSubscribe/携帯端末からのPublish
つぎに、スマホやタブレットなどの携帯端末へのSubscribeや携帯端末からのPublishのやり方に関して説明します。ここでは、iphone を使った説明を行いますが、Andoroid 端末でもMQTT用アプリが異なるだけで基本は同じです。
2-1. 携帯端末へのMQTT用アプリのインストール
MQTT 用アプリは、有料のもの、無料のものといろいろあります。ここでは、無料のMQTToolをiphoneにインストロールしました。iphone のApple Storeで”MQTTool”で検索して、インストールします。
2-2. Publilc MQTT brokerへの接続
つぎに、MQTTool を起動します。
- Public MQTT brokerのURLを、”Host:”の欄に入力します。
今回は、セキュリティ無しでPublish/Scribeを行いますので、Portは、”1883”のままで、”Username:”、”Password:”は空欄とします。 - URLを入力したら、「Connect」のボタンを押します。
すると、
- 「Connect」ボタンが、「Disconnect」ボタンに変わります。
- 同時に、”Status:”のメッセージがConnectedに変わります。
以上で、Public MQTT brokerへの接続が完了しました。
2-3. Publilc MQTT brokerからの携帯端末へのSubscribe確認
ここで、第1章で作ったNode-REDを利用して、Public MQTT brokerからのSubscribeの確認を行います。
「1-5. PublishとSubscribeの確認」では、インジェクションノードを押して、図8のようにデバッグ画面にbroker経由で文字が表示されました。スマホのMQTToolでも、図8のNode-REDと同じトピック名をSubscribeします。そのうえで、Node-REDでPublishすると、同じメッセージがスマホ画面に表示されるかを確認します。
図9がSubscribeの確認画面です。
- Node-REDのSubscriberと同じトピック名をMQTToolの”Topic:”の欄に入力します。
- インジェクションを押すと、Node-REDのデバッグ画面と同じ内容が、スマホのMQTToolの画面にも表示されました。
図9.携帯端末へのSubscribe確認
2-4. Publilc MQTT brokerへの携帯端末からのPublish確認
こんどは、携帯端末からPublic MQTT brokerへのPublish動作の確認です。
スマホのMQTToolからPublishした内容が、Node-REDのデバッグ画面に表示されるかを確認します。図10が確認結果の画面です。
- MQTTool のPublish画面で、Subscribeの時のように、Node-REDのトピック名と同じトピック名を”Topic:”欄に入力します。
- つぎに、Publishするメッセージを”Message:”欄に入力します。
- 最後に、「Publish」ボタンを押します。
- Public MQTT brokerを経由して、Node-REDがSubscribeして、デバッグ画面にスマホでPublishしたメッセージが表示されます。
以上で、携帯端末へのSubscribe/携帯端末からのPublishの確認が完了です。
携帯端末とMQTTを連携させることで、ネットワークが繋がる所であれば、データの確認などがいつでもどこでもできるようになります。
※注意事項
このページで使用したPublic MQTT brokerは無料ですが、セキュリティが十分ではありません。
誰でもTopic名が分かれば、サブスクライブ/パブリッシュができます。テストではなく、実際に使用される場合は、暗号化対応のMQTTを選ばれること推奨します。