MQTTでIoTデバイスを管理

MQTTって何?と思って試したのが↓。。

MQTTを試す

あれから2か月。

MQTTって、双方向でリアルタイムな通信ができるのが魅力かなぁ。
しかも、MosquittoやったらWebSocketに対応してるんで、端末に依存せぇへんWEBブラウザでデバイスを管理できる。
更に、デバイスの状態を同報できるんで、複数の端末でデバイスを管理できる。

で、とりあえず、あれこれ増えてきたRaspberry Piを管理するものを作ってみた。

下の写真
– 左側画面(Win10)と右側画面(Linux LMDE2へリモート接続して操作)
– 片方の画面で操作した結果が両方の画面に反映される。

MQTT WEB

作ったのは、Raspberry Pi と Raspberry Pi 2 + Apple Pi とチャットやデバッグ用の制御ができるFreeのForm。

MQTT WEB

MQTT Raspberry Pi   MQTT Raspberry Pi 2

操作感

 

構成

__MQTT Broker__
mosquitto version 1.4.8
MQTT v3.1 broker
Web Socketの設定
/etc/mosquitto/mosquitto.confに以下を追加

listener 1883

listener 9090 127.0.0.1
protocol websockets

__WEBクライアント__
Ajaxで実現している。
MQTTの処理はmqttws31.jsを使用。

__Raspberry Pi__
Publisher

mosquitto-clientsを使用。
自作の手間を省いてsystem関数でmosquitto_pubを実行。

Subscriber

libmosquitto0-devを使用して自作。
静的ライブラリ化したんで、使い勝手はエエ感じ。
参考にしたサイトは新しいバージョンのMosquittoの開発パッケージをダウンロードして使用してるけど、自分の場合はリポジトリを変えずにそのまま使用したんで、かなり古いバージョンがインストールされた。
バージョンによって関数の引数が異なっているんで、ちゃんとヘッダを確認しながら作りましょう。。ってことで、ヘッダは↓。
ヘッダ: /usr/include/mosquitto.h

MQTT構成 MQTT構成

Radioの制御

以前、赤外線のリモコンを使用して作ったネットラジオをMQTTでも制御できるよう変更。

Apple Piで簡単プログラミング(ネットラジオを作る)

今回はMQTTのMessage受信をイベントとしてMessageをリモコンのスイッチに読み替えて制御した。
フローの朱書き部分が今回追加した処理。

MQTT Netradio Flow

参考にしたサイト

Mosquitto .. An Open Source MQTT v3.1/v3.1.1 Broker

mosquittoでMQTTとWebSocket両方に対応させる

MQTTを試してみる( 2/2 )

Eclipse Paho JavaScript Client

MQTT Client -C言語-


絵で見てわかるIoT/センサの仕組みと活用

 

カテゴリー: Linux, Raspberry Pi タグ: , パーマリンク

MQTTでIoTデバイスを管理 への1件のフィードバック

  1. ピンバック: MQTTでIoTデバイスを管理 (ESP-WROOM-02で監視カメラ) | IT社会の崖下で...その2

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください