MQTTは、IOTおよびIIOTデバイス間でメッセージを伝送する、軽量のパブリッシュサブスクライブ型ネットワークプロトコルです。MQTTプロトコルは、通常、TCP/IP上で動作します。小さなコードフットプリント」が求められる遠隔地との接続や、ネットワークの帯域幅が限られている場合に設計されています。MQTTプロトコルは、IIOTデバイス、IOT、スマートホームシステム、ホームオートメーションシステムのアプリケーションに理想的な選択肢であり、広く使用されています。
MqttDeskは、Windows MQTTクライアント、Linux MQTTクライアント、macOS用MQTTクライアント、Raspberry Pi用MQTTクライアントとして重要な役割を果たしています。https://www.ioctrl.com/MQTT
任意のマイクロコントローラをMqttDesk Windows MQTT Clientに接続し、MQTT Brokerのアリを使って任意のIOT、IIOTデバイスをリモートで監視します。
ESP8266、ESP32、Raspberry Pi、Arduinoなどのエンドノードが、他のMQTTクライアントと通信することは、メーカー、フリーランサー、プロトタイプに最適なユースケースです。
IOT/IIOT/スマートホームシステム/ホームオートメーションシステムにおいて、MQTTはどのように重要な役割を果たしているのか?
MQTTプロトコルでは、メッセージブローカーと多数のクライアントという2種類のネットワークエンティティが定義されています。MQTTブローカーは、クライアントからすべてのメッセージを受信し、メッセージを適切な宛先クライアントにルーティングするサーバーです。
MQTTブローカーは、Raspberry Pi、ESP8266、ESP32、Arduinoなどの小型コントローラでもMQTTクライアントとして動作する。
MQTTクライアントとは、MQTTライブラリを実行し、ネットワーク経由でMQTTブローカーに接続するあらゆるデバイス(マイクロコントローラから本格的なサーバーまで)を指す。パブリッシャーは、配信する新しいデータがあると、接続しているブローカーにそのデータを含むコントロールメッセージを送信します。MQTTブローカーは、そのトピックを購読しているMQTTクライアントに情報を配信します。パブリッシャーはサブスクライバーの数や位置に関するデータを持つ必要はなく、逆にサブスクライバーはパブリッシャーに関するデータを設定する必要はありません。https://www.ioctrl.com
ブローカーが現在のサブスクライバーがいないトピックのメッセージを受信した場合、メッセージのパブリッシャーがメッセージをリテインメッセージとして指定していない限り、ブローカーはそのメッセージを破棄します。保持されたメッセージとは、retained フラグが true に設定された通常の MQTT メッセージのことです。ブローカーは、最後に保持したメッセージと、選択したトピックに対応するQoSを保存します。
保持されたメッセージのトピックに一致するトピックパターンをサブスクライブした各クライアントは、サブスクライブ後すぐに保持されたメッセージを受け取ります。ブローカーは、リテインされたメッセージをトピックごとに1つだけ保存します。これにより、あるトピックの新しいサブスクライバーは、パブリッシャーからの次の更新を待たずに、最新の値を受け取ることができます。
パブリッシングクライアントが初めてブローカに接続したときに、ブローカが、パブリッシングクライアントがブローカから予期せず切断されたことを検出した場合に、サブスクライバに送信するデフォルトメッセージを設定することができます。クライアントはブローカとしかやりとりしませんが、システムには、現在のサブスクライバのトピックに基づいてデータを交換する複数のブローカサーバが含まれている場合があります。MQTTの最小制御メッセージは、わずか2バイトのデータである。制御メッセージは、必要に応じて256メガバイト近くのデータを伝えることができます。クライアントとブローカーの接続や切断、データの公開、データの受信確認、クライアントとサーバー間の接続の監視などに使用されるメッセージタイプが定義されています。