LoginSignup
4
4

More than 5 years have passed since last update.

MQTT-SNを簡単にテストする方法 その2

Last updated at Posted at 2015-05-19

MQTT-SNゲートウェイを動かしてみよう

MQTT-SNの通信では MQTT-SNメッセージを MQTTメッセージ に変換してブローカーと仲介するMQTT-SNゲートウェイが必要となります。 MQTT-SNクライアント(UDP)とMQTTブローカー(TCP/IP)は直接通信することはできません。
その2では、MQTT-SNゲートウェイを作成してクライアントとブローカー間の通信を行います。 
さらに、シェアードメモリ上のリングバッファに出力されている通信ログをモニターしてみます。 

RaspberryPiなどHDDのないマシンでは、ファイルをFlashメモリに作成するので、メモリの寿命を心配してSRAM上のリングバッファに書き出しています。

用意するもの

  • クライアント用LinuxマシンとC++開発環境
  • ゲートウェイ用LinuxマシンとC++開発環境  
  • インターネットルーター DHCPサーバー付

ゲートウェイの作成

step1. ソースコードの準備

step1. ホームディレクトリーで、Githubからライブラリーをダウンロードします。

$ git clone https://github.com/ty4tw/AsyncMQTT-SN.git

AsyncMQTT-SN/AsyncGateway/srcにゲートウェイのソースコードとAsyncMQTT-SN/AsyncGateway/src/libに必要なライブラリーのソースコードが入っています。

step2. ソースコードをコンパイルします。

$ cd AsyncMQTT-SN/AsyncGateway
$ make DEFS=-DNETWORK_UDP
コンパイルエラーがなければゲートウェイをコピーします。
$ make install
実行モジュール TomyGateway がホームディレクトリーにコピーされます。

step3. ゲートウェイのコンフィグレーションファイルを作成します。

コンフィグレーションファイル /usr/local/etc/tomygateway/config/param.conf を作成します。

param.conf

BrokerName=test.mosquitto.org
BrokerPortNo=1883
SecureConnection=NO
#BrokerPortNo=8883
#SecureConnection=YES
StableNetwork=YES
GatewayID=1
GatewayName=TomyGateway-01
KeepAlive=900
#LoginID=
#Password=
SerialDevice=/dev/ttyUSB0
BroadcastIP=225.1.1.1
GatewayPortNo=2000
BroadcastPortNo=1883

BrokerName で使用するプローカーのドメイン名、BrokerPortNo でブローカーのポートを指定します。
ブローカーとTLSで接続する場合は BrokerPortNo=8883  SecureConnection=YES に変更します。
StableConnection はG3モデムを使用する場合などレスポンスが遅いか不安定な場合 NO にすることで CONNECTの処理が変わります。NOにするとCONNECTに時間がかかります。

step5. リングバッファを使用するために必要なキーファイルを作成します。

次の3つの空ファイルをキーファイルをとして作成します。
1) /usr/local/etc/tomygateway/config/rbmutex.key
2) /usr/local/etc/tomygateway/config/ringbuffer.key
3) /usr/local/etc/tomygateway/config/semaphore.key

step6. ゲートウェイを起動します。
ただし、クライアントとは異なるマシンで実行する必要があります。
$ ./TomyGateway

異常終了しなければ、たぶん動いています。 動いていることを確認するために通信ログを見てみましょう。 

ログモニターの作成

step1. ログモニターのコンパイル。

$ cd AsyncMQTT-SN/LogMonitor
$ make
コンパイルエラーがなければログモニターをコピーします。
$ make install
実行モジュール LogMonitor がホームディレクトリーにコピーされます。

step2. ログモニターの起動。

'$ sudo ./LogMonitor

ログが表示されます。

ここで、Linuxクライアントを起動してください。 クライアント・ゲートウェイ・プローカー間で行われているメッセージ交換内容が表示されているはずです。
Screenshot from 2015-05-20 05:37:02.png

つぎは、その3 でArduino用のクライアントを作成し、クライアント間で通信して、LEDを点滅させてみます。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4