連載
MQTTで始めるIoTデバイスの作り方 第4回:ArduinoをMQTTブローカーに接続する:MQTTで始めるIoTデバイスづくり(4)(2/4 ページ)
「MQTTで始めるIoTデバイスの作り方」もいよいよ核心に迫ります。今回はArduinoをプログラミングして、MQTTブローカーへ接続する手順を紹介します。あえてライブラリを利用しないことで、その基礎を学びます。
実験環境構築とコマンドメッセージ
下が今回の実験環境を示す図です。
基本的には前回のUSBシリアル変換アダプターがArduino Nanoに置き換わったものと理解してください(MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT)。
前回はPCのターミナルエミュレーター操作でMQTTパケットをやりとりしましたが、今回、ターミナルエミュレーターはプログラムが正常に動作しているか確認するためのモニターとして使います。
それ以外は前回同様、PC側でMosquittoのMQTTブローカーが動作しており、緑の縁で囲まれた部分でMQTTのクライアントを構成します。そして、Arduino Nanoのプログラムを書き換えることでMQTTのパブリッシャーにしたり、サブスクライバーにしてみます。
- MQTTコマンドメッセージ
Arduinoでプログラムを行う際、C++言語がベースになったコンパイラを用います。そのためMQTTコマンド・メッセージをbyte型配列として用意しておきます。
byte con[]={ 0x10,0x21, 0x00,0x06, 'M','Q','I','s','d','p', 0x03,0x02,0x00,0x3c,0x00,0x13, 'm','o','s','q','s','u','b','/','1','2','5','1','6','-','h','i','r','o','3'};
byte sub[]={ 0x82,0x06, 0x00,0x01,0x00,0x01, '#',0x00};
byte pub[]={ 0x30,0x15, 0x00,0x06, 's','e','r','v','e','r','/','s','a','m','p','l','e','/','h','e','l','l','o'};
これらの詳しい説明は前回の記事を参考にしてください。ここにきて、前々回のプロトコル解析が今回のプログラミングの際に役立つことがお分かり頂けたでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT
この連載では簡単なIoTデバイスを製作し、「MQTT」を利用してネットサービスに接続できるまでを紹介します。今回はマイコンに接続可能なWi-FiモジュールをMosquittoに接続するまでの下準備です。 - MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する
連載では「MQTT」を利用して簡単なIoTデバイスを製作し、ネットサービスに接続できるまでを紹介しますが、デバイスの自作を考えるとMQTTのプロトコルやメッセージシーケンスへの理解は欠かせません。 - MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する
この連載では「MQTT」を利用して簡単なIoTデバイスを製作して、ネット上のサービスに接続できるまでを紹介します。電子工作やアナログ制御に不慣れでも読み進められる内容としますので、気軽に挑戦してみてください。