2023年03月20日 更新
どうも、クラゲジュニアです。
今回はIoTでよく使われるMQTT通信を少しだけ試してみようと思います。MQTT通信とは、複数の端末から小さなデータが大量に流れるときに有効な通信手段で、自動車のセンサデータを集約するときなどに幅広く使われています。
今回は、MQTT通信におけるデータの送信を簡単に触ってみようと思います。
MQTT通信にはパブリッシャー(publisher)
、サブスクライバー(subscriber)
、ブローカー(broker)
という3つの要素があります。
通信の流れとしては、パブリッシャー
がセンサ値などのデータをブローカー
に送信し、それをブローカー
が振り分けて最終的にサブスクライバー
がそのデータを受信するイメージです。
今回は、パブリッシャー
からブローカー
にデータを送信するところまで行います。
今回はMQTT X
というEMQ Technologies Inc.が開発したMQTTクライアントツールとshiftr.io
というサービスを使います。ちなみに今回はユーザー登録などの作業は必要ありません。
MQTT X
については、下記のリンクからツールをインストールしてください。クラゲジュニアはWindows 10(x64)を使っているため、v1.9.1.win64.exe
をインストールしました。
shiftr.io
については、特に何か用意することはありません。下記のリンクにアクセスして、少し下にスクロールして下図の青く色を反転させている箇所をコピーしていただければOKです。
登録のいらないサーバーである都合上、すでに色々な人が使っています。
今回は下記の構成を作っていきます。今回は、MQTT X
がパブリッシャー
、Shiftr.io
がブローカー
になっています。
まず、MQTT X
を起動し、+ New Connection
をクリックします。
表示設定画面のうち、Name
、Client ID
、Host
を設定します。
少し設定画面を下にスクロールし、Advanced
のMQTT Version
を3.1.1
に設定します。
設定がおわりましたら、右上のConnect
をクリックします。
正しく設定できていれば、Connected
と通知されます。
通知されていない場合は前述の設定を見返してみてください。
今からデータを送信します。前述の通り、今からデータを送るブローカー
は不特定多数の方が使用しているため、決して個人を特定できる情報は流さないでください。
Connected
通知後の画面で右下のPayload
タブを開き、Topic
の欄にjellyfish
、その下の欄に下記を入力してください。また、すでに何かが書かれていた場合は一旦すべて消してから貼り付けてください。
{
"msg": "hello, kurage"
}
設定したあと、右下の丸い送信ボタンをクリックします。 すると、画面上に送信されたメッセージが見えるようになります。何度か押すと、その都度メッセージが増えます。
では、shiftr.io
に再度アクセスしてみましょう。
下のグラフまでスクロールして、Last Messages
の欄で下スクロールしてTopic
に設定したjellyfish
を探してみましょう。また、三段目にかかれているIDがkurage_[設定したランダムな文字列]
になっていることも合わせて確認してみましょう。
途中で見切れていますが、{ "msg": "hello, kurag…
と表示されていますね。どうやらブローカー
にデータが送信されているようです!
今回はMQTT通信でパブリッシャー
からブローカー
までデータを流すことができました!
以上です。