Raspberry Pi/初級/8分で読める/
Raspberry PiでDHT22温湿度センサーを読む配線とPythonコード
LEDの次に試しやすい入力系モジュールとして、DHT22で温度と湿度を読み取ります。センサーモジュールの種類によって抵抗の有無が変わるため、基板付きモジュールか単体センサーかを確認してから配線します。
WIRING ORDER
配線順序のスクリーンショット
Tsunagu IoT Learn / Raspberry Pi
DEVICE
Raspberry Pi
breadboard
MODULE
DHT22
配線する順番
- 1
DHT22 VCC → Raspberry Pi 3.3V(物理ピン1など)
信号線も3.3V基準で扱うのが安全です。
- 2
DHT22 DATA → Raspberry Pi GPIO4(物理ピン7)
コードではboard.D4を使います。
- 3
DHT22 GND → Raspberry Pi GND(物理ピン6など)
電源と信号の基準を共通にします。
- 4
DHT22 VCC → DHT22 DATA
単体センサーでは10kΩ前後のプルアップ抵抗を入れます。基板付きモジュールでは実装済みの場合があります。
用意するもの
- Raspberry Pi 4 / 5 などGPIOを使える本体
- DHT22温湿度センサーまたはDHT22モジュール
- 10kΩ前後の抵抗(単体センサーで必要)
- ブレッドボード
- ジャンパーワイヤー
配線
| 接続元 | 接続先 | 確認点 |
|---|---|---|
| DHT22 VCC | Raspberry Pi 3.3V(物理ピン1など) | 信号線も3.3V基準で扱うのが安全です。 |
| DHT22 DATA | Raspberry Pi GPIO4(物理ピン7) | コードではboard.D4を使います。 |
| DHT22 GND | Raspberry Pi GND(物理ピン6など) | 電源と信号の基準を共通にします。 |
| DHT22 VCC | DHT22 DATA | 単体センサーでは10kΩ前後のプルアップ抵抗を入れます。基板付きモジュールでは実装済みの場合があります。 |
手順
- 1センサーが基板付きモジュールか単体部品かを確認します。
- 2Raspberry Piの電源を切った状態で3.3V、DATA、GNDを配線します。
- 3単体センサーの場合はVCCとDATAの間にプルアップ抵抗を入れます。
- 4ライブラリを準備し、2秒以上の間隔で読み取ります。
GPIO4でDHT22を読むPythonコード
pythonimport time
import board
import adafruit_dht
dht = adafruit_dht.DHT22(board.D4)
try:
while True:
temperature = dht.temperature
humidity = dht.humidity
print(f"温度: {temperature:.1f} C / 湿度: {humidity:.1f}%")
time.sleep(2)
finally:
dht.exit()動かないときの確認
- DATA線がGPIO4につながっているか
- 3.3VとGNDを逆にしていないか
- 単体センサーでプルアップ抵抗を入れているか
- 短い間隔で連続読み取りしていないか
よくあるミス
- 5V前提の配線図をそのまま使って信号線も5Vにしてしまう
- DHT11用のコードや設定をDHT22に流用する
- 読み取りエラーを配線ミスと決めつけ、待ち時間不足を見落とす
次に試すこと
温湿度が読めたら、一定温度を超えたときにLEDやファンを動かす回路へ広げると、センサー入力と制御出力をつなげて学べます。
デモで配線を確認する