ESP32 チュートリアル 28/55 - DHT11 温度センサーと LCD | SunFounder の ESP32 IoT 学習キット

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_buzzer

DHT11センサーを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-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
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++
コピーしました!

必要かもしれないもの

リソースと参考文献

ファイル📁

フリッツィングファイル

ユーザーマニュアル