ニュース
» 2016年06月09日 07時00分 公開

MQTTで始めるIoTデバイスづくり(3):MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT (4/4)

[今岡通博,MONOist]
前のページへ 1|2|3|4       

 次のリストは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)から行います。お楽しみに。

前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.