ニュース
MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する:MQTTで始めるIoTデバイスづくり(2)(4/5 ページ)
連載では「MQTT」を利用して簡単なIoTデバイスを製作し、ネットサービスに接続できるまでを紹介しますが、デバイスの自作を考えるとMQTTのプロトコルやメッセージシーケンスへの理解は欠かせません。
次にやりとりされたMQTTメッセージの中身を見てみましょう。以下の説明に関しては、参考文献「MQTT V3.1 プロトコル仕様1」をあわせて参照してください。
connectメッセージ 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ------------------------------------------------------------------------- 0000 10 1b 00 04 4d 51 54 54 04 02 00 3c 00 0f 70 63 ....MQTT...<..pc 0010 31 34 36 31 38 33 31 35 31 37 31 37 31 1461831517171
0x10がMQTTのコネクト要求であることを示し、次の0x1bはメッセージの長さ、“ MQTT”はプロトコル名を示します。0x04はプロトコルバージョン、0x02は接続フラグを示します。Clean Sessionフラグが立っていますが、これはブローカーが持っているこのクライアントのこれまでの情報を破棄することを意味します。
0x003cはキープアライブ・タイマーの値です。0x000fは次に続くユーザーネームの長さを示しています。“pc1461831517171”がユーザーネームです。
connectに対するAck 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ------------------------------------------------------------------------- 0000 20 02 00 00 ...
これはブローカーからクライアントに送られるメッセージです。
0x20はMQTTのコネクト要求に対するAckであることを示しています。次の0x02はメッセージの長さを示します。
subscribe要求 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ------------------------------------------------------------------------- 0000 82 06 00 03 00 01 23 00 ......#.
これはサブスクライバーがブローカーに送るリクエストメッセージです。
0x82はMQTTのsubscribe要求であることを示しています。次の0x06はメッセージの長さ、“ # ”はサブスクライブ要求したトピックを示します。この場合全てのトピックに対してサブスクライブ要求を行っています。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する
この連載では「MQTT」を利用して簡単なIoTデバイスを製作して、ネット上のサービスに接続できるまでを紹介します。電子工作やアナログ制御に不慣れでも読み進められる内容としますので、気軽に挑戦してみてください。 - WebブラウザからHTTPサーバ経由でESP8266に接続されたセンサーの値を読み出す
今回はESP8266にマイコンと光センサーを組み合わせ、得た値をHTTPサーバ経由で遠隔取得します。センサーを交換したり、値を変更するなどすればさまざまなIoT DIYに応用できます。 - ESP8266を使って、Webブラウザ経由でマイコンを制御する
今回はESP8266とマイコンの組み合わせでHTTPサーバに挑戦します。これによりWebブラウザから、マイコンの制御が可能となります。 - ESP8266にmbedマイコンを接続してM2Mを実現する
話題の技適モジュール「ESP8266」を使ってIoTを手作りするこの連載、今回はESP8266にmbedマイコンを接続してM2Mの実現を図ります。 - ESP8266を宅内Wi-Fiにぶら下げるATコマンド実例
話題の技適モジュール「ESP8266」をWi-Fi接続して、ESP8266を宅内Wi-FiのAPにぶら下げる/APにする、といったATコマンド制御を紹介します。 - ESP8266を宅内Wi-Fiにぶら下げるATコマンド実例
話題の技適モジュール「ESP8266」をWi-Fi接続して、ESP8266を宅内Wi-FiのAPにぶら下げる/APにする、といったATコマンド制御を紹介します。