Intern

MQTTとは

MQTT(Message Queuing Telemetry Transport)は、IoT(モノのインターネット)デバイス向けに設計された軽量な通信プロトコルです。メモリの制約が厳しかったり、ネットワーク帯域幅が限られているような環境での利用に適しているようです。

主な用途

スマートホーム:温度センサー、スマートライトの制御、ドアの開閉通知
工場・製造  :PLCからリアルタイムでデータを収集し、見える化
農業     :土壌湿度センサーと灌漑システムの自動連携
医療機器   :患者のバイタル情報をクラウドへ送信し、遠隔モニタリング
モビリティ  :車両からの走行データをリアルタイムで共有

MQTT以外との比較

特徴MQTTHTTPCoAPAMQP
軽量さ
通信方向双方向リクエスト/レスポンス双方向双方向
プロトコル層TCPTCPUDPTCP
適用分野IoT全般Web API組込みIoT金融など高信頼が必要な分野

他と比べて軽量であることが分かります。

セキュリティについて

MQTT自体は軽量化を重視しているため、暗号化や認証はオプションです。そのため、実際の運用では以下のような対策が取られます。

  • TLS(SSL)で暗号化:データを盗聴から守る
  • ユーザー認証:IDとパスワードで接続制御
  • ACL(アクセス制御リスト):誰がどのトピックにアクセスできるか管理

用語まとめ(簡単に)

用語意味
トピックデータの「宛先」を表す階層構造の文字列(例:home/living/temp
Publishトピックにデータを送る(発信)
Subscribe特定のトピックのデータを受け取る(受信)
ブローカーメッセージの橋渡しをするサーバー
QoS配信の確実性レベル(0, 1, 2)

実際に使うには?

ツール名説明
Mosquitto有名なオープンソースMQTTブローカー。Raspberry Piにも対応
Node-REDMQTTノードをドラッグ&ドロップで使えるビジュアル開発ツール
MQTT Explorerトピックごとのデータを見やすく整理してくれるGUIクライアント

上記のようなツール・プラットフォームでMQTTを試すことが出来ます。

まとめ

MQTTは、「小さくて軽いのに強力」な通信の仕組みであり、スマートホームや医療、農業などこれからのIoT・スマート化社会において欠かせない技術であると考えます。