ESP32チュートリアル 48/55 - リモート温度監視とLED制御 MQTT | SunFounderのESP32 IoTキット
このチュートリアルでは、Adafruit IOプラットフォームを使用して、温度と湿度をリモートで監視するために、SunFounderのESP32拡張ボードとESP32モジュールをどのように活用するかを探ります。さらに、ウェブインターフェースを通じてLEDを制御する機能も実装します。このプロジェクトの終わりには、リアルタイムで温度と湿度のデータを表示し、ブラウザからLEDをオンとオフに切り替えることができるようになります。
このプロジェクトは、ESP32とAdafruit IOサービス間の効率的な通信のためにMQTTプロトコルを利用しています。MQTTは軽量でIoTアプリケーションに適しており、センサーデータを簡単に公開し、LED制御のためのコマンドに登録できます。コードと配線のさらなる説明については、このチュートリアルに付随するビデオ(ビデオは:00で)を必ず確認してください。
ハードウェアの説明
このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラー、DHT11温湿度センサー、LEDが含まれます。ESP32は、内蔵のWi-FiおよびBluetooth機能を備えた強力なマイクロコントローラーで、IoTプロジェクトに最適な選択肢です。複数のタスクを処理し、シームレスにインターネットに接続できます。
DHT11センサーは、温度と湿度を測定する役割を担っています。デジタル信号を出力し、ESP32によって読み取ることができます。LEDはインジケーターとして機能し、インターネット上でデバイスを管理するMQTTプロトコルの有効性を示すためにリモートで制御することができます。
データシートの詳細
| メーカー |
アダフルート |
| 部品番号 |
DHT11 |
| ロジック/IO電圧 |
3.3 V |
| 供給電圧 |
3.3 V |
| 出力電流(チャネルごと) |
20 mA |
| ピーク電流(チャンネルごと) |
50 mA |
| PWM周波数ガイダンス |
N/A |
| 入力論理閾値 |
0.3 V(低)、0.7 V(高) |
| 電圧降下 / RDS(on)/ 飽和 |
N/A |
| 熱的限界 |
0〜50 °C |
| パッケージ |
3ピン |
| ノート / バリアント |
高精度のためにDHT22を使用してください。 |
- 正しい配線を確認して損傷を防いでください。
- LEDに対して、電流制限のために220オームの抵抗を使用してください。
- 必要に応じて、DHT11のデータピンにプルアップ抵抗を使用してください。
- Wi-Fiの認証情報の大文字と小文字を確認してください。
- 接続問題のデバッグのためにシリアル出力を監視してください。
- MQTTトピックは競合を避けるために一意に保ってください。
- センサーの読み取りをテストして、それらが有効であることを確認してください。
- DHT11の応答時間に注意してください。読み取りが安定するまでに時間がかかる場合があります。
LED= コントロールLED;temperature温度データを公開する;humidity湿度データを公開する。
配線手順
コンポーネントを配線するには、まずDHT11センサーを接続します。DHT11の左ピンを赤いワイヤーを使ってブレッドボードの3.3V電源レールに接続します。DHT11の中央ピンは、黄色いワイヤーを使ってESP32のピン13に接続する必要があります。最後に、DHT11の右ピンを青いワイヤーを使ってグラウンドレールに接続します。
次に、LEDのアノード(長い脚)を220オームの抵抗を介してESP32のピン15に接続します。カソード(短い脚)はブレッドボードのグラウンドレールに直接接続します。すべての接続が確実であることを確認し、緩んでいるワイヤーがないか再確認してください。
ダッシュボードの設定
-
訪問アダフルート IO、その後クリックしてください無料で始める無料アカウントを作成する。
-
アカウントを作成するにはフォームに記入してください。
-
Adafruitアカウントを作成したら、Adafruit ioを再度開く必要があります。クリックしてください。ダッシュボード、その後クリックします新しいダッシュボード.
-
作成する新しいダッシュボード.
-
新しく作成されたものを入力してくださいダッシュボード新しいブロックを作成します。
-
作成する1切り替えブロック。
-
次に、ここで新しいフィードを作成する必要があります。このトグルはLEDを制御するために使用され、私たちはこのフィードに「LED」という名前を付けます。
-
チェックしてくださいLEDフィードしたら、次のステップに進んでください。
-
ブロックの設定を完了してください(主にブロックタイトル、オンテキスト、オフテキスト)、その後クリックしてください。ブロックを作成する右下のボタンを押して完了してください。
-
私たちはまた、2つを作成する必要があります。テキストブロック次に。それらは温度と湿度を表示するために使用されます。したがって、名前付きのフィードを二つ作成します。温度と湿度.
-
作成後、あなたのダッシュボードは次のような感じになるはずです:
-
レイアウトは、使用することで調整できます。レイアウトを編集ダッシュボードのオプション。
-
クリックしてAPIキー、そしてあなたのユーザー名が表示されます。APIキー表示されました。これをメモしておいてください。コードに必要になります。
コードの例と手順解説
コードは必要なライブラリを含め、Wi-Fiの資格情報を設定し、MQTTのパラメータを定義することから始まります。主要な識別子としてAIO_USERNAMEとAIO_KEYAdafruit IOサービスでの認証に使用されます。
#define AIO_USERNAME "YourUsername"
#define AIO_KEY "YourKey"
これらの行は、MQTTブローカーに接続するために不可欠なAdafruit IOのユーザー名とキーを定義しています。成功した接続を確立するために、これらの値が正確であることを確認してください。
中でsetup()機能として、Wi-Fi接続が初期化され、MQTTクライアントが安全な通信のためにルートCA証明書で設定されます。
WiFi.begin(WLAN_SSID, WLAN_PASS);
client.setCACert(adafruitio_root_ca);
このコードはESP32を指定されたWi-Fiネットワークに接続し、セキュアなMQTT接続のためのルートCAを設定します。これらの接続を適切に処理することは、信頼性の高いデータ伝送にとって重要です。
最後に、loop()関数はMQTT接続を管理し、定期的に温度と湿度の測定値を公開します。
mqtt.processPackets(5000);
このラインは、ESP32が購読されたトピックの受信メッセージを処理できるようにし、デバイスがウェブインターフェースから送信されたコマンドに応じる状態を維持します。
記事の下に読み込まれている完全なプログラムを参照してください。
デモンストレーション / 期待されること
セットアップが成功すると、Adafruit IO ダッシュボードで温度と湿度のリアルタイム更新が表示されます。また、ウェブインターフェースを通じて LED のオン・オフを切り替えることもできます。LED が期待通りに応答しない場合は、配線を確認し、MQTT トピック名がコードで定義されたものと一致していることを確認してください。
特定のMQTT接続エラーは、証明書の有効期限切れにより発生する可能性があることに注意してください。これらの問題を回避するために、コードに最新のルートCA証明書が含まれていることを確認してください(ビデオの15:30で)。
ビデオタイムスタンプ
- 00:00 開始
- 1:50 プロジェクトの紹介
- 3:16 MQTTとは何か
- 6:36 Adafruit IO セットアップ
- 11:13 配線
- 13:38 Arduinoコードの説明
- 22:03 ESP32ボードとCOMポートの選択
- 23:44 プロジェクトデモ
- 27:05 ダッシュボードを更新中
849-ESP32 Tutorial 48/55- Arduino code for Remote Temperature Monitoring and LED control MQTT
言語: C++
850-ESP32 Tutorial 48/55- Basic Adafruit MQTT code (watch video)
言語: C++