MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する:MQTTで始めるIoTデバイスづくり(2)(2/5 ページ)
連載では「MQTT」を利用して簡単なIoTデバイスを製作し、ネットサービスに接続できるまでを紹介しますが、デバイスの自作を考えるとMQTTのプロトコルやメッセージシーケンスへの理解は欠かせません。
Wiresharkの導入
「Wireshark」はパケットをキャプチャーして解析するツールとしてはメジャーな存在です。今回は原稿執筆時点で最新版となるVersion 2.0.3を利用しますが、このバージョンになってからMQTTを標準で解析できるようになりました(それ以前はMQTTを解析するためには、Luaなどで書かれたアドインのコードが必要でした)。
Wiresharkは公式サイトから、利用するプラットフォームに適合したものをダウンロードして、インストールしてください(本稿ではVersion 2.0.3をWindows 10で動作させています)。
ポート1883の開放
ブローカーをインストールしたPC以外のノード間で、MQTTメッセージをやりとりするためには、ブローカーが動作するPCのTCPポート「1883」を解放する必要があります。
ポート開放は利用する環境によって手順が異なるため、全てを説明することはできませんが、Windowsの場合は「Windows ファイアウォールでポートを開く」が参考となります。セキュリティソフトやルーターも必要に応じて、ポートの状態を確認しましょう。
パケットのキャプチャーと解析
まずブローカーをインストールしたPCでmosquittoを起動します。起動時には、オプションの -v を指定して、ログを表示するモードで起動します。次にスマホアプリからこのブローカーに接続し、メッセージのやりとりを観測します。それでは早速、Wiresharkでこれらのパケットをキャプチャーしてみましょう。
c:\Program Files (x86)\mosquitto>mosquitto -v 1461811097: mosquitto version 1.4.3 (build date 19/08/2015 13:37:44.73) starting 1461811097: Using default config. 1461811097: Opening ipv6 listen socket on port 1883. 1461811097: Opening ipv4 listen socket on port 1883.
Wiresharkを起動すると以下のような画面が表れますので、キャプチャーしたいインタフェースをダブルクリックします。筆者の環境ではWi-Fiを選択しました。
次の画面はパケットをキャプチャーした画面です。緑になっているテキストボックスでmqttと入力してリターンキーを押すとmaqttプロトコルのパケットのみが表示されます。これでキャプチャー準備はOKです。
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コマンド制御を紹介します。