ここでは、public MQTT brokerを使った、携帯端末などとの接続方法について説明します。

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を削除します。

  1. Local MQTT Brokerのノードをダブルクリックする。
  2. 出てくる設定画面の左上にある削除のボタンをクリックして、ノードを削除する。

図2. Local MQTT brokerの削除

1-2. Public MQTT brokerのURL設定

つぎに、Public MQTT brokerのURLを設定します(図3参照)。

  1. 設定するMQTT publishノードかMQTT subscribeノードをダブルクリックします。
  2. 出てくる設定画面の「サーバ」の欄の右端の矢印を押して、「新規にmqtt-brokerを追加」を選択します。

図3. Public MQTT brokerのURL設定(1)

  1. 右上の完了ボタンを押すと、入れ替わりに出てくる設定画面の「サーバ」の欄に、Public MQTT brokerのURLを入力してください。(図4参照)
  2. その後、右上の「追加」ボタンを押します。

 

図4. Public MQTT brokerのURL設定(2)

1-3. Publish/Subscribeするトピック名の設定

URLの設定が終わると、前の画面に入れ替わりますので、トピック名を入力します。(図5参照)

  1. 「トピック」の欄に、Publish/Subscribeするトピックの名称を入力します。
  2. 入力が終わったら、右上の完了ボタンを押してください。

以上で、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が確認結果です。

  1. ①のインジェクションノードを押すと、デバッグ画面に、①のインジェクションノードで設定したメッセージが、Public MQTT broker経由で表示されます。
  2. ②のインジェクションノードを押すと、デバッグ画面に、②のインジェクションノードで設定したメッセージが、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 を起動します。

  1. Public MQTT brokerのURLを、”Host:”の欄に入力します。
    今回は、セキュリティ無しでPublish/Scribeを行いますので、Portは、”1883”のままで、”Username:”、”Password:”は空欄とします。
  2. URLを入力したら、「Connect」のボタンを押します。

 すると、

  1. 「Connect」ボタンが、「Disconnect」ボタンに変わります。
  2. 同時に、”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の確認画面です。

  1. Node-REDのSubscriberと同じトピック名をMQTToolの”Topic:”の欄に入力します。
  2. インジェクションを押すと、Node-REDのデバッグ画面と同じ内容が、スマホのMQTToolの画面にも表示されました。

 

図9.携帯端末へのSubscribe確認

2-4. Publilc MQTT brokerへの携帯端末からのPublish確認

こんどは、携帯端末からPublic MQTT brokerへのPublish動作の確認です。

スマホのMQTToolからPublishした内容が、Node-REDのデバッグ画面に表示されるかを確認します。図10が確認結果の画面です。

  1. MQTTool のPublish画面で、Subscribeの時のように、Node-REDのトピック名と同じトピック名を”Topic:”欄に入力します。
  2. つぎに、Publishするメッセージを”Message:”欄に入力します。
  3. 最後に、「Publish」ボタンを押します。
  4. Public MQTT brokerを経由して、Node-REDがSubscribeして、デバッグ画面にスマホでPublishしたメッセージが表示されます。

 

以上で、携帯端末へのSubscribe/携帯端末からのPublishの確認が完了です。

携帯端末とMQTTを連携させることで、ネットワークが繋がる所であれば、データの確認などがいつでもどこでもできるようになります。

※注意事項

このページで使用したPublic MQTT brokerは無料ですが、セキュリティが十分ではありません。

誰でもTopic名が分かれば、サブスクライブ/パブリッシュができます。テストではなく、実際に使用される場合は、暗号化対応のMQTTを選ばれること推奨します。