次のリストはTera TermでMQTTメッセージのやりとりを行ったログです。
AT+CIPSTART="TCP","192.168.1.16",1883 CONNECT OK AT+CIPSEND=25 OK > MQIsdp<guest01 busy s... Recv 25 bytes SEND OK +IPD,4: AT+CIPSEND=8 OK > Recv 8 bytes SEND OK +IPD,5: +IPD,16:0 arduino/d2/0 +IPD,16:0 arduino/d2/1 AT+CIPSEND=16 OK > Recv 16 bytes SEND OK
1行目でブローカーがあるPCのIPアドレスとポート番号を指定して接続します。一般的にMQTTプロトコルは1883番が使われます。
4行目でMQTTブローカーに対してコネクト要求を送るため、ESP8266に対してATコマンドで「これから25バイト送る」ことを通知します。その後、先ほどマクロをファイルとして用意しましたが、そのマクロを呼び出します。
Tera Termの「コントロール」から「マクロ」を選択し、connect.ttlを選択します。するとマクロに記載したバイナリデータが送出されます。11行目で4バイト受信していますが、これはconnect要求に対するAckが帰ってきたことを示しています。ただASCIIコードではないので画面には内容は表示されません。
12行目からsubscribe要求を送っています。方法は先ほどのconnect要求を送った時と同じです。18行でsubscribe要求に対するAckが帰ってきています。19行目と21行目でpublishメッセージを受信しています。
24行目でpublishメッセージを送っています。実際にメッセージが送られたかどうかは、moquittoを起動するときに-vオプションを付けておけば、ブローカーを起動したコマンドプロンプトの画面で確認できます。
以下プローカーのログ表示の内送ったpublishメッセージに関わる部分です。
1461890015: Received PUBLISH from guest01 (d0, q0, r0, m0, 'arduino/d2/', ... (1 bytes)) 1461890015: Sending PUBLISH to mosqsub/1288-hiro3 (d0, q0, r0, m0, 'arduino/d2/', ... (1 bytes))
このログからブローカーはguest01からpublishメッセージを送り、subscribe要求をしている他のクライアントにそのメッセージを送ったことが分かります。
今回はWi-FiモジュールからターミナルエミュレーターのオペレーションでMQTTメッセージのやりとりを行いました。次回はいよいよマイコン(Arduino)から行います。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.