Arduino/初級/7分で読める/
ArduinoでDHT11温湿度センサーを読む配線とコード
DHT11は温度と湿度を読み取れる入門向けセンサーです。基板付きモジュールか単体センサーかでプルアップ抵抗の扱いが変わるため、部品の形を確認してから配線します。
WIRING ORDER
配線順序プレビュー
Tsunagu IoT Learn / Arduino
- 1STEP 1DHT11 VCC から Arduino 5V へここからDHT11 VCC→ここへArduino 5V
確認: 基板付きモジュールではVCC表記の場合があります。
- 2STEP 2DHT11 DATA から Arduino D2 へここからDHT11 DATA→ここへArduino D2
確認: コードではDHT_PINを2にします。
- 3STEP 3DHT11 GND から Arduino GND へここからDHT11 GND→ここへArduino GND
確認: 電源と信号の基準を共通にします。
- 4STEP 4DHT11 VCC から プルアップ抵抗を通して DHT11 DATA へここからDHT11 VCCプルアップ抵抗→ここへDHT11 DATA
確認: 単体センサーでは10kΩ前後のプルアップ抵抗を入れます。基板付きモジュールでは実装済みの場合があります。
用意するもの
- Arduino Uno
- DHT11温湿度センサーまたはDHT11モジュール
- 10kΩ前後の抵抗(単体センサーで必要)
- ブレッドボード
- ジャンパーワイヤー
配線
| 接続元 | 接続先 | 確認点 |
|---|---|---|
| DHT11 VCC | Arduino 5V | 基板付きモジュールではVCC表記の場合があります。 |
| DHT11 DATA | Arduino D2 | コードではDHT_PINを2にします。 |
| DHT11 GND | Arduino GND | 電源と信号の基準を共通にします。 |
| DHT11 VCC | DHT11 DATA | 単体センサーでは10kΩ前後のプルアップ抵抗を入れます。基板付きモジュールでは実装済みの場合があります。 |
配線元、配線先、コードのピン番号を同じ画面で確認できます。
手順
- 1DHT11が基板付きモジュールか単体センサーかを確認します。
- 2VCC、DATA、GNDをArduinoへ接続します。
- 3単体センサーの場合はVCCとDATAの間にプルアップ抵抗を入れます。
- 4Arduino IDEでDHT sensor libraryを準備します。
- 5スケッチを書き込み、シリアルモニターを9600bpsで開きます。
DHT11をD2で読むArduinoスケッチ
cpp#include <DHT.h>
const int DHT_PIN = 2;
const int DHT_TYPE = DHT11;
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("読み取りに失敗しました");
delay(2000);
return;
}
Serial.print("温度: ");
Serial.print(temperature);
Serial.print(" C / 湿度: ");
Serial.print(humidity);
Serial.println(" %");
delay(2000);
}動かないときの確認
- DATA線がD2につながっているか
- VCCとGNDを逆にしていないか
- 単体センサーでプルアップ抵抗を入れているか
- DHT11なのにDHT22設定にしていないか
よくあるミス
- センサーの正面と背面を見間違えてピン順を逆にする
- 読み取り間隔を短くしすぎる
- DHTライブラリを入れずにコンパイルする
次に試すこと
温湿度が読めたら、一定温度を超えたらLEDを点灯するなど、センサー値を使った制御へ進むと実用に近づきます。
デモで配線を確認する