2023年03月22日 更新

MQTT通信のデータ受信を簡単にためしてみよう

どうも、クラゲジュニアです。

前回行ったMQTT通信のデータ送信を簡単にためしてみように引き続き、今回はデータの受信を行います。

なお、今回の記事は事前に「MQTT通信のデータ送信を簡単にためしてみよう」に示すアプリをインストールし、Shiftr.io上で送信データを確認するところまで実施していることを前提に行います。

今回の構成

今回は下図の構成でデータの送信および受信を行います。

MQTTは同じブローカーに対してTopicで受信するデータを指定します。前回に引き続き、Topic: jellyfishにします。

今回はMQTT Xのみで完結する都合上で一対一の通信になっていますが、複数のサブスクライバーがいれば下図のように一対多 で通信できます。実際のIoTとしての運用では、このように複数の端末間でやりとりすることが基本になります。

準備

MQTT Xを立ち上げて、前回の接続先を右クリックしてDuplicateをクリックします。

すると、前回の接続先の名前に対して_copyがついたものが複製されます。

続いて右上の鉛筆マークをクリックすると複製した接続先の設定をい確認できます。

前回と同じ設定になっていることから、同じブローカーに接続することがわかりました。

なお、今回はShiftr.ioのパブリックインスタンスを使うためUsernamePasswordに何も情報が入っていませんが、別のインスタンスを使う際には設定されたユーザー名とパスワードを設定する必要があります。

最後にBackボタンを押して前の画面に戻れば準備完了です!

実際に接続してみよう

まず、コピー元の接続先を選択し、Connectをクリックしてブローカーへ接続します。こちらをパブリッシャーにします。

同じく、先程コピーで作成した接続先も同様の手順でブローカーに接続します。こちらをサブスクライバーにします。

New Subscriptionをクリックし、データを受信する際のトピックを設定します。

Topicjellyfishと設定し、Confirmをクリックします。

新しくjellyfishが作成されていることが確認できれば、データを受信するための準備は完了です!ちなみにSubscription設定の背景色はランダムに決まるため、一致していなくてもOKです。

続いて、パブリッシャー側の接続先で送信するデータを設定します。今回は下記に設定しました。

{
    msg: "hello, クラゲジュニアです"
}

送信ボタンをクリックすると、サブスクライバー側の接続先で❶と出力されていることが確認できます。

サブスクライバー側の接続先でReceivedをクリックしてみると、先程送った情報が受信できていることがわかります!

今回はMQTT通信で自分が送ったデータを受信できるようにしました。前回の「MQTT通信のデータ送信を簡単にためしてみよう」と合わせればいろいろなデータのやり取りができそうです。

以上です。