MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する:MQTTで始めるIoTデバイスづくり(2)(1/5 ページ)
連載では「MQTT」を利用して簡単なIoTデバイスを製作し、ネットサービスに接続できるまでを紹介しますが、デバイスの自作を考えるとMQTTのプロトコルやメッセージシーケンスへの理解は欠かせません。
はじめに
この連載では軽量プロトコルとして注目を浴びているMQTT(Message Queue Telemetry Transport)を利用し、自作したIoTバイスをMQTTサービスに接続するまでを解説します。
MQTTの挙動を理解してもらうため、既存のプロトコルスタックやライブラリを使わず、直接TCPレイヤーをたたくことでメッセージのやりとりを行います。そのためには、MQTTのプロトコルやメッセージシーケンスに対する、しっかりとした理解が必要となります。
そこで今回は「wireshark」というプロトコル解析ツールを用いて、MQTTのメッセージのやりとりを見てみましょう。
目次
- 第2回 MQTTプロトコル解析
- 第3回 ESP8266でMQTT
- 第4回 ArduinoをMQTTブローカーに接続
- 第5回 Arduinoで部屋の明るさをPublish
- 第6回 スマホからLEDをON/OFF
MQTTのプロトコル
MQTTプロトコルに関しては、「MQTT V3.1 プロトコル仕様1」として43ページのPDFにまとめられています(MQ Telemetry Transport (MQTT) V3.1 プロトコル仕様)。
仕様については「これを読んでください」で終わってしまうのですが、実際にブローカーとサブスクライバー、パブリッシャーの間でどのようなメッセージが交わされているか確認しないと、マイコンに実装できても身につきませんね。そこで、実際にメッセージのやりとりが観察できる環境を用意して、これらを見てみることにしましょう。ですが「MQTT V3.1 プロトコル仕様1」をいつでも参照できる準備はしておいてください。
観測環境
以下が観測環境を示した図です。
前回mosquittoを導入したPCに、パケット解析ツールである「Wireshark」をインストールします。PC上でmosquittoのブローカーを起動しますが、前回のようにクライアントも同一PC上にあったのではWiresharkでパケットを観測できません。
そこで外部にスマートフォンを用意してそこにMQTTクライアントアプリをインストールします。スマホは無線LANルーター経由で、mosquittoブローカーのある同一セグメントに接続します。
MQTTクライアントアプリの導入
Android端末(スマートフォン)をお持ちの方は、MQTTクライアントアプリ「IoT MQTT Dashbord」がお勧めです。こちら(Google Play)から無料で入手できます。
下図の左画面はこのアプリを利用して、Android端末をサブスクライバーとして動作させている画面です。連載の第5回で扱う予定ですが、部屋の明るさをパブリシュされたものをグラフ化したものです。
そして下図右はスマホをパブリッシャーとして動作させた画面です。サブスクライバーとして設定されたマイコンに接続されたLEDをON/OFFするメッセージをパブリッシュする画面です(この仕組みについては連載の第6回で紹介します)。
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コマンド制御を紹介します。