検索
連載

MQTTで始めるIoTデバイスの作り方 第4回:ArduinoをMQTTブローカーに接続するMQTTで始めるIoTデバイスづくり(4)(2/4 ページ)

「MQTTで始めるIoTデバイスの作り方」もいよいよ核心に迫ります。今回はArduinoをプログラミングして、MQTTブローカーへ接続する手順を紹介します。あえてライブラリを利用しないことで、その基礎を学びます。

Share
Tweet
LINE
Hatena

実験環境構築とコマンドメッセージ

 下が今回の実験環境を示す図です。

 基本的には前回の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.

ページトップに戻る