ESP32 チュートリアル 28/55 - DHT11 温度センサーと LCD | SunFounder の ESP32 IoT 学習キット
このチュートリアルでは、DHT11温湿度センサーをESP32マイクロコントローラーと接続する方法を探ります。このセットアップを使用して、周囲の温度と湿度を測定し、シリアルモニターとLCDスクリーンの両方に結果を表示します。さらに、温度が特定の閾値を超えたときに動作するブザーを実装します。
ESP32-28_dht温度センサーメイン
このプロジェクトは、DHT11センサーの使用を示すだけでなく、内蔵のWi-FiとBluetooth機能を備えたESP32の汎用性も紹介しています。このチュートリアルの終わりには、環境条件を継続的に監視し、リアルタイムのフィードバックを提供する動作するセットアップが完成します。
このチュートリアルに付随するビデオをチェックして、視覚的なガイドを見てみましょう(ビデオは00:00にあります)。それでは始めましょう!
ハードウェアの説明
このプロジェクトで使用される主なコンポーネントは、ESP32マイクロコントローラー、DHT11センサー、およびLCDディスプレイです。ESP32はこの操作の脳として機能し、DHT11センサーからのデータを処理し、LCD出力を制御します。
DHT11センサーは湿度と温度を測定し、1本のデータラインを通じて読み取り値を提供します。3.3Vから5.5Vの電源供給が必要で、低消費電力であるため、バッテリー駆動のアプリケーションに適しています。LCDはリアルタイムで温度と湿度の値を表示します。
データシートの詳細
| 製造業者 |
グローブ |
| 部品番号 |
DHT11 |
| 論理/IO電圧 |
3.3 - 5.5 V |
| 供給電圧 |
3.3 V |
| 出力電流(チャネルごと) |
0.5 mA 標準 |
| ピーク電流(チャネルごと) |
最大2.5 mA |
| PWM周波数ガイダンス |
N/A |
| 入力論理閾値 |
0.3 VCC(ローレベル)、0.7 VCC(ハイレベル) |
| 電圧降下 / RDS(on)/ 滞留 |
該当なし |
| 熱的限界 |
0°Cから60°C |
| パッケージ |
DIP-4 |
| ノート / 変種 |
解像度:1°C / 1% RH |
- データラインにプルアップ抵抗(推奨値5 kΩ)を使用してください。
- センサーの配線は短く(20メートル未満)、正確な読み取りを確保してください。
- DHT11を最適な性能のために3.3Vで動作させます。
- サンプリング期間は1秒未満であってはならない。
- 読み取り値が失敗した場合は、配線接続を確認してください(例:接続されていない、ピンが不正)。
配線指示
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzerDHT11センサーをESP32に配線するには、まずDHT11のVCCピン(左端のピン)をESP32の3.3V出力に接続します。次に、グラウンドピン(4番目のピン)をESP32のグラウンド(GND)ピンに接続します。データピン(2番目のピン)はESP32のGPIOピン14に接続する必要があります。
LCDの場合、VCCピンをESP32の5V出力に接続します。グラウンドピンはESP32のグラウンドピンに接続する必要があります。LCDのSDAおよびSCLピンはそれぞれGPIOピン21および22に接続する必要があります。データを読み取る際の問題を避けるために、すべての接続が確実であることを確認してください。
コード例とウォークスルー
コードの最初の部分では、DHTセンサーを初期化し、ピン番号を設定します。#define DHTPIN 14この識別子を使用すると、コード全体でDHT11データラインに接続されたピンを簡単に参照できます。
#include "DHT.h"
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
の中でsetup()関数では、デバッグ用にシリアル通信を初期化し、DHTセンサーを開始します。メインループには、センサーにリクエストを過剰に送信しないようにするために2秒の遅延が含まれています。
次に、湿度と温度の値を読み取ります。float humidity = dht.readHumidity();とfloat temperature = dht.readTemperature();これらの識別子は、後で使用するための測定値を保存します。
void loop() {
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
}
最後に、読み取りエラーがないか確認し、値をシリアルモニタに印刷します。Serial.print()これにより、リアルタイムで測定値を観察することができます。
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
LCDコードでは、LCDを初期化し、画面に温度と湿度を表示します。lcd.print()機能。これはDHT11センサーによって収集されたデータの視覚的表現を提供します。
デモンストレーション / 期待できること
すべてが正しく配線され、コードがESP32にアップロードされると、温度と湿度の測定値がシリアルモニターとLCD画面に表示されるはずです。温度が30°Cを超えると、ブザーが作動し、音のアラートが提供されます。
逆接続には注意し、センサーが極端な条件にさらされないようにしてください。これが読み取り値に影響を与える可能性があります。要件に応じてブザーのしきい値を調整する必要があるかもしれません(動画の15:30で)。
動画のタイムスタンプ
- 00:00 スタート
- 1:57 DHT11の紹介
- 6:18 ESP32とDHT11の配線
- 7:67 Arduino コードの説明
- 11:49 Arduino IDEでESP32ボードとCOMポートを選択中
- 13:30 プロジェクトデモンストレーション
- 15:32 華氏を取得中
- ESP32を使用してLCDに温度を表示する 16:04
- 17:20 DHT11とLCDとESP32のコード
- 19:49 ESP32を使ったDHT11 LCDデモ
- 21:33 温度値に関するアクションを取る
画像
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
ESP32-28_dht_temperature-sensor-main
828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
言語: C++
829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD
言語: C++