下が今回の実験環境を示す図です。
基本的には前回のUSBシリアル変換アダプターがArduino Nanoに置き換わったものと理解してください(MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT)。
前回はPCのターミナルエミュレーター操作でMQTTパケットをやりとりしましたが、今回、ターミナルエミュレーターはプログラムが正常に動作しているか確認するためのモニターとして使います。
それ以外は前回同様、PC側でMosquittoのMQTTブローカーが動作しており、緑の縁で囲まれた部分でMQTTのクライアントを構成します。そして、Arduino Nanoのプログラムを書き換えることで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'};
これらの詳しい説明は前回の記事を参考にしてください。ここにきて、前々回のプロトコル解析が今回のプログラミングの際に役立つことがお分かり頂けたでしょう。
MQTTで始めるIoTデバイスの作り方 第3回:ESP8266でMQTT
MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解する
MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入するCopyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク
よく読まれている編集記者コラム