VitconMQTT

HOME

VitconMQTTは、ArduinoデバイスでVitcon WIFI-LINKでMQTTサービスを使用するためのライブラリです。

Compatiblity

AVR MCUを使用するArduino機器でのみ正常に動作します。他の機器や他のMCUを使用する場合の動作は保証できません。

Installing

Arduino sketchのLibrary Managerから、VitconMQTTと検索しインストールします。
もしくは、ReleaseファイルをArduino libraryフォルダから圧縮ファイルをダウンロードし、
Arduino libraryフォルダに圧縮ファイルを解凍することでライブラリのインストールが完了します。

一般的なArudino libraryフォルダの場所は、

C:\Users\(ユーザーID名)\Documents\Arduino\libraries\

gitコマンドを使用する場合

git clone https://github.com/vitcon-iot/VitconMQTT.git

から、VitconIOT保存場所全体を読み込むことができます。

Arduino sketchが実行されている状態でライブラリをインストールした場合、
Arduino sketchを再起動するか、Library Managerを一度実行すれば正常に使用することができます。

Modules

VitconIOTは2つのモジュールで構成されています。

・VitconMQTTComm
・VitconMQTTItem

VitconMQTTItemモジュールは、publishするMQTT topicとdataの定義です。
VitconMQTTCommモジュールはVitcon WIFI-LINKとの通信を担当するモジュールです。

How to use

Arduino sketchからVitcon IoTサーバーとの通信を行うためには、まずVitconMQTTCommヘッダをincludeしてvitcon namespaceを使用するように宣言します。

#include “VitconMQTTComm.h”
using namespace vitcon;

次は、defineでアイテム数を宣言します。

#define ITEMCOUNT 4
or
const int ITEMCOUNT 4

アイテム数の指定が終わったらpublishするアイテムを宣言します。アイテム宣言時に
は、引数としてtopic名を入力する必要があります。

MQTTItem Analog0(“A0”);
MQTTItem Analog1(“A1”);
MQTTItem Analog2(“A2”);
MQTTItem Analog3(“A3”);

Publishするアイテムの宣言が終わったら、アイテムの配列を宣言してアイテムを一つの配列で管理します。

MQTTItem *Items[ITEMCOUNT] = { &Analog0, &Analog1, &Analog2, &Analog3 };

MQTTCommクラスを宣言します。
MQTTCommはアイテム情報、個数とSerial port一つを引数として受け、入力した情報をもとに、WIFI-LINKにデータを転送するようになります。
該当Serial portにはWIFI-LINKが接続されていなければなりません。

MQTTComm comm(&Serial, Items, ITEMCOUNT);

topicをsubscribeしたい場合、callback関数を宣言しなければなりません。
Subscribe callback関数は文字列二つの引数を受けなければなりません。

void Subscribe(const char* topic, const char* data)
{
  String gettopic = String(topic);
  String getdata = String(data);
  …
}

setup関数でクラスの初期化とSubscribe callback関数を設定します。

void setup()
{
  comm.Init();
  comm.SetSubscribe(Subscribe);
}

loop関数でアイテムにどのデータを送るかを決めることができます。

void loop()
{
  Analog0.Set(analogRead(A0));
}

プロセスが継続的に実行できるように、loop関数comm.Run();を追加します。

void loop()
{
  Analog0.Set(analogRead(A0));
  comm.Run();
}

Examples

この項目は、VitconMQTTライブラリに含まれている例題になります。

MQTT_basic

GitHub-VITCON