ESP32独自ガイド · 更新

ESP32「to-ESP32 MQTT Communication」入門|ESP32での設計・実装・動作確認

二台のESP32間でMQTTを使い、Broker、topic、再接続、データの鮮度を検証します。

対応するテーマ: ESP32-to-ESP32 MQTT Communication

この記事はAI支援で作成したオリジナルの編集ドラフトです。実機での検証は行っていません。配線や実装の前に、対象ボード・部品の公式仕様を照合してください。

基板の型番やESP32の派生品で使える端子・機能が異なります。配線前に使用するボードと部品の公式仕様を確認してください。

目的と観察対象を決める

二台直結ではなくBroker経由通信の役割を確認する。最初に成功とみなす観察結果を一つ決めます。期待値、許容範囲、測定場所を先に記し、部品を一度に増やして原因を追えなくしないことが大切です。対象機器の名称だけで用途を広げず、この段階で確かめる範囲を明確にします。結果は「できた/できない」だけでなく、何を入力し何を観測したか具体的に残し、同じ条件を再現できるようにします。たとえば未接続時の値も観察し、正常な入力との違いを確認します。

信号の意味を整理する

送信側と受信側でtopic・payloadを共有する。生の信号、判定後の状態、画面や通信へ渡す値を別々に扱います。無効値、未取得、古い値を正常値と混同しないよう、状態ごとの意味と単位を決めてください。情報の流れを図にすると、誤変換や処理順の問題を見つけやすくなります。データの有効期限、範囲外値、通信が止まった場合を決め、状態を利用者に誤解させない表示やログを用意します。記録した単位とサンプル時刻が画面・送信先でも維持されるか照合します。

型番と仕様を照合する

BrokerのMQTT版、TLS、認証方式を確認する。同じカテゴリの部品でも端子配列、電圧、タイミング、対応ライブラリーは異なります。部品の刻印と公式資料を照合し、ボード上の端子制約も含めて確認してください。不明な定格を推測で補わず、型番を特定してから接続します。ピン番号や部品名が似ていても互換とは限りません。対象型番の配線例と絶対最大定格を確認してから値を決めます。変更したライブラリー版と設定値を控え、旧版との差を追跡できるようにします。

回路と電源を確認する

各ボードのWi-Fiと証明書・時刻条件を準備する。配線前に電源を切り、GND、信号、電源の経路を回路図と実物の両方で確認します。ESP32の端子上限、外部電源の電流余裕、逆流や短絡の可能性を調べ、必要な抵抗・レベル変換・ドライバーを設けてください。通電前に短絡や極性を目視し、初回は電流制限できる電源を用います。異常な発熱・臭い・音があれば直ちに遮断します。接続を変えるときは必ず電源を切り、端子の向きと共通GNDを再確認します。

処理の流れを設計する

オンライン、購読済み、データ受信を別状態にする。初期化、読み取り、妥当性確認、状態更新、出力を分け、各段階で失敗を検出できるようにします。起動時の初期状態を明示し、入力断や通信断で古い情報を無期限に使わないことが重要です。長い待ち処理には時間上限を設けます。関数や状態遷移を小さく保ち、エラー時に安全側へ戻る経路を作ります。起動直後の端子状態も単独で確認してください。エラー時は状態を明示し、最後に成功した値を最新値として表示しないようにします。

段階的に動作を試す

片方を停止・再起動して復旧と重複を観察する。まず単体の入力または表示だけを試し、観察できた後に次の部品を追加します。通常動作だけでなく、境界値、再起動、切断、復旧も同じ手順で繰り返してください。危険な負荷を接続せず、模擬出力で判定ロジックを先に確認します。試験結果が安定しない場合は部品を追加せず、測定器と配線を含めた最小構成へ戻して原因を一つずつ切り分けます。試験ごとに期待値と実測値を並べて記録し、偶然の成功を見分けます。

症状から原因を切り分ける

片方向のみ失敗時はtopic、ACL、client IDを調べる。症状を電源、配線、信号、設定、コード、周辺環境に分類し、一度に一つの条件だけ変えます。測定値と仮説を区別してログに残せば、推測による変更を避けられます。再現した操作を記録し、変更前後を比較します。エラーコードや測定値は時刻とともに確認し、直前の操作を記録します。根拠のない修正を重ねず再現性を優先します。電源を切ってから配線を点検し、再通電後に同じ操作で症状が出るか確かめます。

安全性と用途の限界を守る

公開Brokerに秘密情報を送らず通信をTLSで保護する。この試作を認証済み警報器、計測器、施錠装置、機械安全、医療機器の代替として使わないでください。電源、可動部、水、熱、音、ネットワークが人や財産へ影響する場合は、故障時の安全状態と独立した遮断を設計し、専門家の評価を受けます。本番の人・設備へ接続する前に、異常時の停止、手動復帰、電源喪失時の状態を独立した方法で検討してください。制御対象を外した模擬試験で停止指令と電源断時の挙動を確認します。

再現できる記録を残す

デバイスIDとメッセージ時刻を記録し鍵を隠す。ボード・部品の型番、配線、ソフトウェア版、電源、試験条件、期待結果と実測結果を一緒に記録します。秘密鍵、パスワード、不要な個人情報はログや公開リポジトリーに保存しないでください。再現可能な記録が次の改善の基準になります。配線図と試験条件を残せば、別の個体との差や経時変化を比較できます。秘密情報と個人データは記録から除外します。記録の単位・時刻・型番を揃え、別の日の測定と比較できるようにします。

次の検証へ進む

QoS、LWT、メッセージ有効期限を用途に合わせる。追加機能を組み込む前に、今の構成で電源再投入、失敗、復旧をもう一度確認します。次の試験では一つの変更だけを加え、同じ条件で結果を比べます。長期運転や製品利用を想定する場合は、要求に合う部品と評価手順へ置き換えてください。要件を満たせない場合は未達として扱い、測定方法や部品選定から見直します。実装が動くことだけを安全性の根拠にしません。変更後には正常系だけでなく、切断と再起動の確認も繰り返します。

公式資料