2023年03月22日 更新
どうも、クラゲジュニアです。
前回行ったMQTT通信のデータ送信を簡単にためしてみように引き続き、今回はデータの受信を行います。
なお、今回の記事は事前に「MQTT通信のデータ送信を簡単にためしてみよう」に示すアプリをインストールし、Shiftr.io
上で送信データを確認するところまで実施していることを前提に行います。
今回は下図の構成でデータの送信および受信を行います。
MQTTは同じブローカーに対してTopic
で受信するデータを指定します。前回に引き続き、Topic: jellyfish
にします。
今回はMQTT X
のみで完結する都合上で一対一の通信になっていますが、複数のサブスクライバーがいれば下図のように一対多
で通信できます。実際のIoTとしての運用では、このように複数の端末間でやりとりすることが基本になります。
MQTT X
を立ち上げて、前回の接続先を右クリックしてDuplicate
をクリックします。
すると、前回の接続先の名前に対して_copy
がついたものが複製されます。
続いて右上の鉛筆マークをクリックすると複製した接続先の設定をい確認できます。
前回と同じ設定になっていることから、同じブローカーに接続することがわかりました。
なお、今回はShiftr.io
のパブリックインスタンスを使うためUsername
とPassword
に何も情報が入っていませんが、別のインスタンスを使う際には設定されたユーザー名とパスワードを設定する必要があります。
最後にBack
ボタンを押して前の画面に戻れば準備完了です!
まず、コピー元の接続先を選択し、Connect
をクリックしてブローカーへ接続します。こちらをパブリッシャーにします。
同じく、先程コピーで作成した接続先も同様の手順でブローカーに接続します。こちらをサブスクライバーにします。
New Subscription
をクリックし、データを受信する際のトピックを設定します。
Topic
にjellyfish
と設定し、Confirm
をクリックします。
新しくjellyfish
が作成されていることが確認できれば、データを受信するための準備は完了です!ちなみにSubscription
設定の背景色はランダムに決まるため、一致していなくてもOKです。
続いて、パブリッシャー側の接続先で送信するデータを設定します。今回は下記に設定しました。
{
msg: "hello, クラゲジュニアです"
}
送信ボタンをクリックすると、サブスクライバー側の接続先で❶と出力されていることが確認できます。
サブスクライバー側の接続先でReceived
をクリックしてみると、先程送った情報が受信できていることがわかります!
今回はMQTT通信で自分が送ったデータを受信できるようにしました。前回の「MQTT通信のデータ送信を簡単にためしてみよう」と合わせればいろいろなデータのやり取りができそうです。
以上です。