MQTT(Message Queuing Telemetry Transport)は、IoT(モノのインターネット)デバイス向けに設計された軽量な通信プロトコルです。メモリの制約が厳しかったり、ネットワーク帯域幅が限られているような環境での利用に適しているようです。
主な用途
スマートホーム:温度センサー、スマートライトの制御、ドアの開閉通知
工場・製造 :PLCからリアルタイムでデータを収集し、見える化
農業 :土壌湿度センサーと灌漑システムの自動連携
医療機器 :患者のバイタル情報をクラウドへ送信し、遠隔モニタリング
モビリティ :車両からの走行データをリアルタイムで共有
MQTT以外との比較
特徴 | MQTT | HTTP | CoAP | AMQP |
---|---|---|---|---|
軽量さ | ◎ | △ | ◎ | △ |
通信方向 | 双方向 | リクエスト/レスポンス | 双方向 | 双方向 |
プロトコル層 | TCP | TCP | UDP | TCP |
適用分野 | IoT全般 | Web API | 組込みIoT | 金融など高信頼が必要な分野 |
他と比べて軽量であることが分かります。
セキュリティについて
MQTT自体は軽量化を重視しているため、暗号化や認証はオプションです。そのため、実際の運用では以下のような対策が取られます。
- TLS(SSL)で暗号化:データを盗聴から守る
- ユーザー認証:IDとパスワードで接続制御
- ACL(アクセス制御リスト):誰がどのトピックにアクセスできるか管理
用語まとめ(簡単に)
用語 | 意味 |
---|---|
トピック | データの「宛先」を表す階層構造の文字列(例:home/living/temp ) |
Publish | トピックにデータを送る(発信) |
Subscribe | 特定のトピックのデータを受け取る(受信) |
ブローカー | メッセージの橋渡しをするサーバー |
QoS | 配信の確実性レベル(0, 1, 2) |
実際に使うには?
ツール名 | 説明 |
---|---|
Mosquitto | 有名なオープンソースMQTTブローカー。Raspberry Piにも対応 |
Node-RED | MQTTノードをドラッグ&ドロップで使えるビジュアル開発ツール |
MQTT Explorer | トピックごとのデータを見やすく整理してくれるGUIクライアント |
上記のようなツール・プラットフォームでMQTTを試すことが出来ます。
まとめ
MQTTは、「小さくて軽いのに強力」な通信の仕組みであり、スマートホームや医療、農業などこれからのIoT・スマート化社会において欠かせない技術であると考えます。