Intel EdisonでのMosquitto MQTTの構築と使用



この記事では、Intel EdisonでMQTTプロトコルを使用する方法を説明します。 これにより、センサーからデータを受信し、制御をアクチュエーターに転送できます。

MQTTは、デバイス間の通信に使用される軽量プロトコルです(M2M-マシン間)。 パブリッシャー/サブスクライバーモデルを使用して、TCP / IP経由でメッセージを送信します。 MQTTプロトコルの中心部分は、パブリッシャーとサブスクライバーにアクセスできるMQTTサーバーまたはブローカーです。 MQTTを使用して、センサーのネットワークを構築し、各センサーに固有のメッセージの形式でデータを公開できます。 アクチュエータは、応答する必要があるメッセージをサブスクライブします。 MQTTブローカーは、パブリッシャーからサブスクライバーへのメッセージのリダイレクトを処理します。





マイクロコントローラーAは、スイッチの値を読み取り、「switch = on」の形式でMQTTブローカーにメッセージでそのステータスを送信します。 インターネット上のどこかで、マイクロコントローラBは「スイッチ」メッセージをサブスクライブします。 ユーザーがスイッチを押すと、マイクロコントローラーAはMQTTブローカーにメッセージを送信します。 ブローカーは、メッセージをサブスクライバーのリストに転送します。 マイクロコントローラーBはメッセージを受信すると、内容を分析し、スイッチの状態を判別してから、ランプをそれぞれオンまたはオフにすることができます。







MQTTプロトコルの詳細については、 mqtt.orgを参照してください



Edison Yoctoオペレーティングシステムには、RSMB(Really Small Message Broker)と呼ばれる小さなMQTTブローカーが付属しています。 残念ながら、これらすべてをテストする組み込みMQTTクライアントはありません。 この記事では、別のMQTTブローカーであるMosquittoを構築する方法について説明します。



エジソンのモスキートを構築する



読者はすでにEdisonボードをセットアップし、標準のLinuxオペレーションを所有していると想定されています。

Intel Edison向けのMosquittoの構築は非常に簡単です。



1. mosquitto.orgからmosquittoをダウンロードします

$> wget http://mosquitto.org/files/source/mosquitto-1.3.5.tar.gz
      
      







2.アーカイブを解凍します

 $> tar xzf mosquitto-1.3.5 $> cd mosquitto-1.3.5
      
      







3.ビルド

 $> make WITH_SRV=no
      
      







4.コンパイルされた蚊の確認とインストール

 # Create user mosquitto $> add user mosquitto # Test $> cd test/broker $> make test $> cd ../../ # Install $> cp client/mosquitto_pub /usr/bin $> cp client/mosquitto_sub /usr/bin $> cp lib/libmosquitto.so.1 /usr/lib $> cp src/mosquitto /usr/bin
      
      







メインのmosquittoフォルダーにテストがあります。 残念ながら、それらのほとんどはPython3を必要としますが、これはEdison OSでは利用できないため、後のテストのいくつかは失敗します。 ただし、test / brokerフォルダーのテストはPython3を使用せず、すべての基本的なMQTT操作をカバーしています。



mosquittoのクライアントとサーバーのテスト



Edison OSは、rsmbブローカーを自動的に起動するように構成されています。 標準の1883 TCPポートを使用し、最初に標準ポートを使用してmosquittoクライアントをテストします。 後で、mosquittoブローカーを設定して、別のポートで動作するかどうかを確認します。

クライアントをテストするには、Edisonへの2つのssh接続を開きます。 最初の接続で、mosquitto_subクライアントを実行します。これは、Edisonでローカルに動作するrsmbブローカーの「テスト」トピックにサブスクライブします。







2番目のssh接続で、同じローカルサーバーのトピック「test」でメッセージ「Hello World!」を発行します。

mosquitto_subが実行されているウィンドウにメッセージが表示されます。 mosquitto_subクライアントは継続的に動作し、停止するまでサーバーから新しいメッセージを受信し続けることに注意してください。







一番上のテストでは、構築したmosquitto_subおよびmosquitto_pubクライアントがローカルのrsmb MQTTサーバーで正しく動作することが示されています。

これで、たとえば1993など、別のポートでmosquittoブローカーを使用して同様のテストを実行できます。







mosquitto_subおよびmosquitto_pubに-p 1993パラメーターを指定したコマンドを使用して、ポート1993でブローカーをテストします。











さらに、 Mosquittoのドキュメントを参照してください。



All Articles