メインコンテンツへスキップ
見出し画像

MQTTは回覧板?センサーの通知をトピック・購読・QoSからやさしく理解する

    ケンタ『温度センサーは、通知する相手の住所を全部覚えるんですか?』先生『掲示板に出して、必要な人が受け取る仕組みもあるよ』。IoTの用語でよく見かけるMQTT。名前だけ覚えるより、温度を知らせる小さな教室を想像すると役割が見えてきます。ただし掲示板のたとえだけでは誤解する部分もあります。今日はトピック、購読、QoS、保持メッセージを5問で確かめます。

    1.最初にそろえる条件

    MQTTはパブリッシュ/サブスクライブ型のメッセージングの仕組みです。送信側がトピックを付けてブローカーへ発行し、受信側はトピックを購読します。たとえばroom/temperatureなら温度表示アプリが必要な通知を受け取れます。ブローカーを介して役割を分けられる一方、通信断やブローカー運用も考える必要があります。MQTTのQoSは配送の段階を示します。0は最大1回、1は少なくとも1回、2は正確に1回の配送を扱います。ただしQoSを上げれば、注文や機械制御の業務が端から端まで必ず一度だけ成功する、という意味ではありません。保持メッセージはトピックの最新の保持値を新しい購読者へ渡すために使えます。全履歴の保存とは別です。

    画像

    2.5問で考え方を確かめる

    問1|受け手を増やす

    温度表示に加えて記録アプリも同じ温度通知を受け取りたい。何を設定する考え方ですか?

    解説:記録アプリも該当トピックを購読します。送信側と各受信アプリの結びつきを直接増やすのではなく、トピックを介します。実際には認証・権限と接続設定も必要です。

    問2|QoS1の落とし穴

    同じ通知が再配送される可能性を考える必要があるのはQoS1ですか?

    解説:はい。少なくとも1回の配送なので、重複する可能性があります。測定IDなどを持たせ、記録側が重複を識別する設計が役立ちます。

    問3|QoS2なら業務完了?

    QoS2を使えば、受信アプリのデータベース更新も必ず一度だけ完了すると言えますか?

    解説:言えません。QoSの配送範囲とアプリの処理は別です。処理中の停止や再実行について、業務側の仕組みが必要です。

    問4|新しい購読者

    表示アプリを起動した直後に最新の保持温度を受け取りたい。保持メッセージは全過去データを届けますか?

    解説:いいえ。トピックに保持された最新のメッセージを受け取る仕組みで、時系列の全履歴を提供する機能ではありません。履歴は別の保存先で扱います。

    問5|大きいQoSが正解?

    すべてのセンサーをQoS2にすれば最適ですか?

    解説:一律には決められません。配送要件、通信量、処理負荷、欠測の影響を考えます。毎秒の温度表示と重要なイベントでは、必要な保証が違う場合があります。

    3.間違えた後に残すこと

    先生『誰が出す、誰が仲介する、誰が受け取る、を先に描こう』。その後に、欠けて困るのか、重複して困るのか、古くて困るのかを追加します。QoSの数字を優劣のランキングにせず、必要な性質と費用の交換として読むと設計の会話になります。保持値を使う場合は測定時刻も確認し、古い値を現在の値だと扱わない工夫が重要です。

    コピーして使える復習シート

    送信側:__/トピック:__/ブローカー:__/購読側:__/欠測の影響:__/重複の扱い:__/測定時刻:__

    4.よくある疑問

    Q. MQTTなら暗号化される? A. 通信保護や認証の設定は別途確認します。Q. 保持値はデータベースの代わり? A. 最新値の配布と履歴保存は目的が違います。

    5.別の問題で試してみる

    この記事で確認した考え方を、別の問題でも使えるか試してみてください。

    ▶ ICTの問題と解説を見てみる

    当アカウントが運営する非公式教材のIoT基礎体験は、登録・カード不要の20問・20分。終了後にカテゴリ別の正答数と全問解説を確認できます。途中で閉じると回答は消えます。記事とサービスの問題は独自演習で、実際の試験問題・過去問・再現問題ではありません。合格を保証するものでもありません。

    画像

    参考資料・確認日

    技術の定義は次の一次資料を参照。物語と確認問題は説明用に作成したものです。確認日:2026年10月4日。

    技術の定義を確認した一次資料

    次に読む:目的から考える検定選び​

    次に読む:理解をつなげる2記事

    MQTTの流れが分かったら、Retainが保持するものと、ログの時刻が指すものを確認しましょう。「届いた情報」と「今起きていること」の違いが見えます。

    MQTTで届いた温度は「今」の情報?Retainは履歴保存ではない|先生とケンタの5問
    https://note.com/ict_mogishiken/n/nf82b5ddd01c7

    ログの時刻を信じすぎない|IoTの『起きた時間』と『届いた時間』を先生とケンタの5問で整理
    https://note.com/ict_mogishiken/n/ne6da4755d985

    このテーマの記事をまとめて読む
    https://note.com/ict_mogishiken/m/m3446de4d4981

    どの検定・記事から始めるか迷った方へ:学習ガイド
    https://note.com/ict_mogishiken/n/n889c1f914d9a

    記事で分かったことを別の問題でも確かめたい方は、本文の無料お試しから、受ける検定に合う問題を選んでください。続きの記事は、上のマガジンをフォローすると探しやすくなります。

    ​

    あなたへのおすすめ