DHT11とは?

DHT11は、温度と湿度を同時に測れるセンサーです。
安価で手に入りやすく、ArduinoやESP32といったマイコンに簡単に接続できるため、電子工作の入門に最適です。

Amazonで販売されているモジュール例

ESP32との接続方法

ESP32とDHT11の配線例は次の通りです。

  • DHT11 VCC → ESP32 3.3V(赤)
  • DHT11 GND → ESP32 GND(黒)
  • DHT11 DATA → ESP32 GPIO4(黄)
  • データ線には 10kΩのプルアップ抵抗を3.3Vに接続すると安定します。

必要なライブラリ

Arduino IDE(またはPlatformIO)で以下をインストールしてください。

Arduino IDE の「ライブラリマネージャ」から検索・インストール可能です。

サンプルコード(初心者向け)

以下のコードをESP32に書き込むと、シリアルモニタに温度と湿度が2秒ごとに表示されます。
コメントを多めに入れてあるので、処理の流れが理解しやすいと思います。

#include <Arduino.h>
#include "DHT.h"

// センサーの種類を指定(DHT11を使う場合はこう書く)
#define DHTTYPE DHT11

// センサーの信号線をESP32のGPIO4に接続する例
#define DHTPIN 4

// ライブラリに「どのセンサーがどのピンか」を教える
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  // シリアルモニタと通信を開始(115200bps)
  Serial.begin(115200);
  delay(200);

  Serial.println("ESP32 + DHT11: スタート!");
  Serial.println("配線: VCC=3.3V, GND=GND, DATA=GPIO4 (10kΩプルアップ推奨)");

  // センサーを使えるように初期化
  dht.begin();
}

void loop() {
  // DHT11は応答が遅いため、2秒以上待ってから読み取る
  delay(2000);

  // 湿度を読む
  float humidity = dht.readHumidity();
  // 温度を読む(摂氏)
  float temperature = dht.readTemperature();

  // 読み取りに失敗した場合(NaNが返る)
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("センサー読み取りに失敗しました。配線や電源を確認してください。");
    return;
  }

  // 測定結果を表示
  Serial.print("温度: ");
  Serial.print(temperature);
  Serial.print(" ℃  /  湿度: ");
  Serial.print(humidity);
  Serial.println(" %");

}

動作確認

  1. Arduino IDE でシリアルモニタを開き、通信速度を 115200bps に設定します。
  2. 配線が正しければ、2秒ごとに「温度」「湿度」が表示されるはずです。
  3. 値が表示されない場合は、配線ミスやプルアップ抵抗の有無を確認してください。

まとめ

DHT11は、「とりあえず温湿度を測ってみたい!」 という入門用途にピッタリのセンサーです。
精度や測定範囲に制限はあるものの、ESP32と組み合わせれば簡単に動作確認ができます。

次のステップとしては、DHT22(AM2302)やBME280といった、より高精度なセンサーに挑戦してみるのも良いでしょう。

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です