下が今回の実験環境を示す図です。
基本的には前回の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'};
これらの詳しい説明は前回の記事を参考にしてください。ここにきて、前々回のプロトコル解析が今回のプログラミングの際に役立つことがお分かり頂けたでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.