📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == <br><br> == 必要な構成 == * ハードウェア ** Arduino UNO R4 WiFi *: <br> * ソフトウェア ** Arduino IDE 2.0以降 ** Arduino_ConnectionHandlerライブラリ ** ArduinoMqttClientライブラリ ** WiFiS3ライブラリ <br><br> == MQTT通信 == Arduino R4 WiFiを使用して、MQTT通信でトピックの送受信を行っている。<br> <br> * Wi-Fiへの接続 *: SSIDとパスワードを使用して、Wi-Fiネットワークに接…」 |
|||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
MQTTは軽量なメッセージング・プロトコルで、IoTデバイスの通信に最適である。<br> | |||
Arduinoのような限られたリソースを持つマイコンでも、効率的に通信できるよう設計されている。<br> | |||
<br> | |||
パブリッシャー (発行者) と サブスクライバ (購読者)、それらの仲介役となるBroker (ブローカー) という構成で動作する。<br> | |||
<br> | |||
MQTT通信では、トピックという概念がある。<br> | |||
例えば、温度センサの値を送信する場合、"home/livingroom/temperature"というトピックを設定する。<br> | |||
パプリッシャーは、このトピックにデータを送信して、サブスクライバは興味のあるトピックを購読する。<br> | |||
<br> | |||
これにより、以下に示すような通信が可能になる。<br> | |||
* 1対多の通信 | |||
*: 1つのパプリッシャーから複数のサブスクライバにデータを配信する。 | |||
* 多対1の通信 | |||
*: 複数のセンサからのデータを1つのモニタリングシステムで受信する。 | |||
* 多対多の通信 | |||
*: 複数のデバイス間でデータを共有する。 | |||
<br> | |||
また、MQTTには3段階のQoS (Quality of Service) がある。<br> | |||
* 0 | |||
*: 最大1回配信 | |||
*: 信頼性は低いが最も軽量 | |||
* 1 | |||
*: 最低1回配信 | |||
*: メッセージの到達を確認 | |||
* 正確に1回配信 | |||
*: 最も信頼性が高いが、オーバーヘッドも大きい。 | |||
<br> | |||
ArduinoでMQTT通信を実装する場合、ArduinoMqttClientライブラリやPubSubClientライブラリ等のライブラリを使用する。<br. | |||
* ArduinoMqttClientライブラリ | |||
*: 公式ライブラリであり、ビギナーにも簡単に使用できる。 | |||
* PubSubClientライブラリ | |||
*: 機能が豊富で広く使用されている。 | |||
<br> | |||
例えば、家庭内のIoTシステムの場合、Arduinoは以下に示すような役割を果たすことができる。<br> | |||
温度センサの値を定期的に送信するパプリッシャー、LED照明を制御するサブスクライバ、あるいはその両方の機能を持つデバイスとして動作させることができる。<br> | |||
<br> | |||
セキュリティ面においては、パブリックなMQTTブローカーを使用する場合は、センシティブな情報を送信しないように注意する。<br> | |||
もし、重要なデータを扱う場合、暗号化通信 (SSL/TLS証明書) の使用やユーザ認証の設定を行うべきである。<br> | |||
<br> | |||
Arduinoを使用したMQTT通信は、適切に実装することにより、信頼性の高いIoTシステムを構築できるツールである。<br> | |||
<br><br> | <br><br> | ||