MQTTとは? MQTTについてご紹介します。

MQTTは、IOTおよびIIOTデバイス間でメッセージを伝送する、軽量のパブリッシュサブスクライブ型ネットワークプロトコルです。MQTTプロトコルは、通常、TCP/IP上で動作します。小さなコードフットプリント」が求められる遠隔地との接続や、ネットワークの帯域幅が限られている場合に設計されています。MQTTプロトコルは、IIOTデバイス、IOT、スマートホームシステム、ホームオートメーションシステムのアプリケーションに理想的な選択肢であり、広く使用されています。

ESP8266、ESP32、Raspberry Pi、Arduinoなどのエンドノードが、他のMQTTクライアントと通信することは、メーカー、フリーランサー、プロトタイプに最適なユースケースです。

MQTTプロトコル用語集-ioctrl technologies

IOT/IIOT/スマートホームシステム/ホームオートメーションシステムにおいて、MQTTはどのように重要な役割を果たしているのか?

MQTTプロトコルでは、メッセージブローカーと多数のクライアントという2種類のネットワークエンティティが定義されています。MQTTブローカーは、クライアントからすべてのメッセージを受信し、メッセージを適切な宛先クライアントにルーティングするサーバーです。

MQTTブローカーは、Raspberry Pi、ESP8266、ESP32、Arduinoなどの小型コントローラでもMQTTクライアントとして動作する。

MQTTクライアントとは、MQTTライブラリを実行し、ネットワーク経由でMQTTブローカーに接続するあらゆるデバイス(マイクロコントローラから本格的なサーバーまで)のことである。

パブリッシャーは、配信する新しいデータがあると、接続しているブローカーにそのデータを含むコントロールメッセージを送信します。MQTTブローカーは、そのトピックを購読しているMQTTクライアントに情報を配信します。

パブリッシャーはサブスクライバーの数や位置に関するデータを持つ必要はなく、逆にサブスクライバーはパブリッシャーに関するデータを設定する必要はありません。

ブローカーが現在のサブスクライバーがいないトピックのメッセージを受信した場合、メッセージのパブリッシャーがメッセージをリテインメッセージとして指定していない限り、ブローカーはそのメッセージを破棄します。保持されたメッセージとは、retained フラグが true に設定された通常の MQTT メッセージのことです。ブローカーは、最後に保持したメッセージと、選択したトピックに対応するQoSを保存します。

保持されたメッセージのトピックに一致するトピックパターンをサブスクライブした各クライアントは、サブスクライブ後すぐに保持されたメッセージを受け取ります。ブローカーは、リテインされたメッセージをトピックごとに1つだけ保存します。これにより、あるトピックの新しいサブスクライバーは、パブリッシャーからの次の更新を待たずに、最新の値を受け取ることができます。

パブリッシングクライアントが初めてブローカに接続したときに、ブローカが、パブリッシングクライアントがブローカから予期せず切断されたことを検出した場合に、サブスクライバに送信するデフォルトメッセージを設定することができます。

クライアントはブローカとしかやりとりしませんが、システムには、現在のサブスクライバのトピックに基づいてデータを交換する複数のブローカサーバが含まれている場合があります。

MQTTの最小制御メッセージは、わずか2バイトのデータである。

制御メッセージは、必要に応じて256メガバイト近くのデータを伝えることができます。クライアントとブローカーの接続や切断、データの公開、データの受信確認、クライアントとサーバー間の接続の監視などに使用されるメッセージタイプが定義されている。

MQTTは、データ転送にTCPプロトコルを使用しています。 

標準TCPプロトコル:1883、暗号化:8883

MQTTプロトコルについての情

報は、www.mqtt.org