MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT:MQTTで始めるIoTデバイスづくり(3)(4/4 ページ)
この連載では簡単なIoTデバイスを製作し、「MQTT」を利用してネットサービスに接続できるまでを紹介します。今回はマイコンに接続可能なWi-FiモジュールをMosquittoに接続するまでの下準備です。
次のリストは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.
関連記事
- MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する
連載では「MQTT」を利用して簡単なIoTデバイスを製作し、ネットサービスに接続できるまでを紹介しますが、デバイスの自作を考えるとMQTTのプロトコルやメッセージシーケンスへの理解は欠かせません。 - MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する
この連載では「MQTT」を利用して簡単なIoTデバイスを製作して、ネット上のサービスに接続できるまでを紹介します。電子工作やアナログ制御に不慣れでも読み進められる内容としますので、気軽に挑戦してみてください。 - 話題の技適Wi-Fiモジュール「ESP8266」でIoTを手作りする
これから数回に渡り、今後、IoTエンドデバイス開発に大きな意味を持つと思われる、安価な技適認証済みWi-Fiモジュールを用いた作例を紹介していきたいと思います。 - ESP8266を宅内Wi-Fiにぶら下げるATコマンド実例
話題の技適モジュール「ESP8266」をWi-Fi接続して、ESP8266を宅内Wi-FiのAPにぶら下げる/APにする、といったATコマンド制御を紹介します。