
MQTTとは?IoT時代の「伝言板」を初心者向けに解説
HowTo8分で読めます
このシリーズ: 全5回
はじめに
「MQTT」という言葉を聞いたことはありますか?
IoT(モノのインターネット)やスマートホームの世界では欠かせない技術ですが、 初めて聞く方には「なんだか難しそう...」と感じるかもしれません。
この記事では、MQTTを**「伝言板」**に例えて、誰でもわかるように解説します。
MQTTを一言で説明すると?
MQTT = 機械同士がメッセージをやり取りするための「共通言語」
人間がLINEやメールでメッセージを送り合うように、 機械(センサーやカメラ、スマート家電など)もメッセージを送り合う必要があります。
その時に使う「共通のルール」がMQTTです。
なぜMQTTが生まれたの?
昔の方法:直接つなぐ(1対1通信)
text
┌─────────┐ ┌─────────┐
│センサーA │ ───────→ │ サーバー │
└─────────┘ └─────────┘
┌─────────┐ ┌─────────┐
│センサーB │ ───────→ │ サーバー │
└─────────┘ └─────────┘
┌─────────┐ ┌─────────┐
│センサーC │ ───────→ │ サーバー │
└─────────┘ └─────────┘問題点:
- センサーが100個あったら、100本の接続が必要
- サーバーがダウンしたら、全部止まる
- センサー同士で情報を共有するのが大変
MQTTの方法:伝言板を使う
text
┌─────────┐
│センサーA │ ─┐
└─────────┘ │
│ ┌──────────────┐ ┌─────────┐
┌─────────┐ │ │ │ │ │
│センサーB │ ──┼────→│ 伝言板 │←─────│ サーバー │
└─────────┘ │ │ (ブローカー) │ │ │
│ └──────────────┘ └─────────┘
┌─────────┐ │
│センサーC │ ─┘
└─────────┘メリット:
- 全員が1つの伝言板を見るだけでOK
- 誰かがいなくても、伝言板にメッセージが残る
- 新しい機械を追加するのが簡単
身近な例で理解しよう
例1: オフィスの伝言板
text
┌────────────────────────────────────────────────────────┐
│ オフィスの伝言板 │
├────────────────────────────────────────────────────────┤
│ │
│ 📌 【会議室】本日15時から使用中 (田中) │
│ │
│ 📌 【コーヒー】豆が切れました (佐藤) │
│ │
│ 📌 【エアコン】温度を25度に設定しました (鈴木) │
│ │
└────────────────────────────────────────────────────────┘
↑書く人 ↓読む人
(Publisher) (Subscriber)- 書く人(Publisher): 伝言を書き込む
- 読む人(Subscriber): 興味のある伝言を読む
- 伝言板(Broker): メッセージを保管・配信
例2: YouTubeのチャンネル登録
text
┌──────────────┐
│ YouTuber A │ ─── 動画投稿 ──→ ┌─────────────┐
└──────────────┘ │ │
│ YouTube │ ──→ 登録者に通知
┌──────────────┐ │ (ブローカー)│
│ YouTuber B │ ─── 動画投稿 ──→ │ │
└──────────────┘ └─────────────┘- YouTuber = Publisher(発信者)
- YouTube = Broker(仲介者)
- チャンネル登録者 = Subscriber(購読者)
登録者は、興味のあるチャンネルだけを「購読」して、 新しい動画があれば通知を受け取ります。
MQTTも全く同じ仕組みです!
MQTTの3つの登場人物
text
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ │ │ │ │ │ │
│ │Publisher │ ─────→ │ Broker │ ─────→ │Subscriber│ │
│ │ (発信者) │ │ (仲介者) │ │ (購読者) │ │
│ │ │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ 温度センサー Mosquitto スマホアプリ │
│ カメラ AWS IoT データベース │
│ ボタン HiveMQ 警報システム │
│ │
└─────────────────────────────────────────────────────────────┘| 役割 | 説明 | 例 |
|---|---|---|
| Publisher(発信者) | メッセージを送る側 | センサー、カメラ |
| Broker(仲介者) | メッセージを受け取り、配る | Mosquitto |
| Subscriber(購読者) | メッセージを受け取る側 | アプリ、DB |
なぜMQTTが選ばれるの?
1. 軽い(省電力)
text
HTTP通信:
┌────────────────────────────────────────┐
│ GET /api/temperature HTTP/1.1 │
│ Host: example.com │
│ Content-Type: application/json │
│ Authorization: Bearer xxxxx │
│ ...(大量のヘッダー) │
└────────────────────────────────────────┘
→ 数百バイト〜数キロバイト
MQTT通信:
┌────────────────────────────────────────┐
│ Topic: sensor/temp │
│ Data: 25.5 │
└────────────────────────────────────────┘
→ 数十バイト電池で動くセンサーに最適!
2. リアルタイム
text
HTTP(従来):
センサー → サーバー「温度は?」→ 返答 → また聞く...
(毎回質問が必要)
MQTT:
センサー → 変化があったら自動で通知 → 購読者に即座に届く
(待ってるだけでOK)3. 信頼性
text
┌─────────────────────────────────────────────────────┐
│ QoS(サービス品質)レベル │
├─────────────────────────────────────────────────────┤
│ │
│ QoS 0: 送りっぱなし(届かなくてもOK) │
│ → 温度データなど、多少欠けても問題ない │
│ │
│ QoS 1: 最低1回届く(重複の可能性あり) │
│ → 通常のセンサーデータ │
│ │
│ QoS 2: 確実に1回届く(重複なし) │
│ → 課金データなど、絶対に失敗できない │
│ │
└─────────────────────────────────────────────────────┘Mosquittoとは?
Mosquitto(モスキート) は、最も人気のあるMQTTブローカーです。
text
┌─────────────────────────────────────────────────────┐
│ │
│ 🦟 Mosquitto = 無料のMQTTブローカーソフトウェア │
│ │
│ ・オープンソース(無料) │
│ ・軽量(Raspberry Piでも動く) │
│ ・信頼性が高い │
│ ・世界中で使われている │
│ │
└─────────────────────────────────────────────────────┘名前の由来は「蚊」(Mosquito)。 小さくて軽いけど、しっかり仕事をする、という意味が込められています。
まとめ
| 用語 | 意味 | 身近な例 |
|---|---|---|
| MQTT | 機械同士の通信ルール | LINEのプロトコル |
| Broker | メッセージを仲介する | LINEのサーバー |
| Publisher | メッセージを送る | LINEで送信する人 |
| Subscriber | メッセージを受け取る | LINEで受信する人 |
| Topic | メッセージの分類 | LINEのグループ |
| Mosquitto | 無料のブローカー | 自分で建てるLINEサーバー |
次の記事
MQTTの心臓部である「Publish/Subscribe」パターンと、 メッセージを分類する「トピック」について詳しく解説します。