記事一覧へ戻る
Raspberry Pi/初級/8分で読める/

Raspberry PiでDHT22温湿度センサーを読む配線とPythonコード

LEDの次に試しやすい入力系モジュールとして、DHT22で温度と湿度を読み取ります。センサーモジュールの種類によって抵抗の有無が変わるため、基板付きモジュールか単体センサーかを確認してから配線します。

WIRING ORDER

配線順序のスクリーンショット

レッスン用プレビュー
Tsunagu IoT Learn / Raspberry Pi
DEVICE
Raspberry Pi
breadboard
MODULE
DHT22
配線する順番
  1. 1

    DHT22 VCCRaspberry Pi 3.3V(物理ピン1など)

    信号線も3.3V基準で扱うのが安全です。

  2. 2

    DHT22 DATARaspberry Pi GPIO4(物理ピン7)

    コードではboard.D4を使います。

  3. 3

    DHT22 GNDRaspberry Pi GND(物理ピン6など)

    電源と信号の基準を共通にします。

  4. 4

    DHT22 VCCDHT22 DATA

    単体センサーでは10kΩ前後のプルアップ抵抗を入れます。基板付きモジュールでは実装済みの場合があります。

用意するもの

  • Raspberry Pi 4 / 5 などGPIOを使える本体
  • DHT22温湿度センサーまたはDHT22モジュール
  • 10kΩ前後の抵抗(単体センサーで必要)
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
DHT22 VCCRaspberry Pi 3.3V(物理ピン1など)信号線も3.3V基準で扱うのが安全です。
DHT22 DATARaspberry Pi GPIO4(物理ピン7)コードではboard.D4を使います。
DHT22 GNDRaspberry Pi GND(物理ピン6など)電源と信号の基準を共通にします。
DHT22 VCCDHT22 DATA単体センサーでは10kΩ前後のプルアップ抵抗を入れます。基板付きモジュールでは実装済みの場合があります。

手順

  1. 1センサーが基板付きモジュールか単体部品かを確認します。
  2. 2Raspberry Piの電源を切った状態で3.3V、DATA、GNDを配線します。
  3. 3単体センサーの場合はVCCとDATAの間にプルアップ抵抗を入れます。
  4. 4ライブラリを準備し、2秒以上の間隔で読み取ります。

GPIO4でDHT22を読むPythonコード

python
import 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やファンを動かす回路へ広げると、センサー入力と制御出力をつなげて学べます。

デモで配線を確認する