【Seeeduino xiao】DHT11/22センサで気温・湿度を測定

Xiao-dht1122-top Seeeduino xiao

本記事の内容

Seeeduino xiao RP2040とDHT11/22センサを使用して、気温と湿度を測定する方法をまとめました。

前半がDHT11センサ編、後半がDHT22センサ編となっており、最後に両者の測定結果を並べて比較しています。

必要なもの

  • Seeeduino xiao RP2040
  • DHT11/22センサ
1 個 DHT11 デジタル温度と湿度センサー
Reland Sun
uxcell DHT22温湿度センサー DC 3V-5.5V 長距離信号伝送 デジタル 固定穴径2.9mm

DHT11センサ編

配線

DHT11センサのVCCとGNDは、それぞれSeeeduino xiaoの3V3とGNDに繋ぎ、OUTを適当なGPピンと繋げます。

DHT11Seeeduino xiao
VCC3V3
OUTP0
NONE
GNDGND

プログラムコード

まず最初に、先人の知恵を拝借して、Githubよりdht.pyをいただきます。ファイル名はdht.pyで問題ありません。

気温と湿度を測定するメインコードは以下の通りです。

from machine import Pin
from time import sleep
from dht import DHT11, InvalidChecksum
 
while True:
    sleep(1)
    pin = Pin(0, Pin.OUT, Pin.PULL_DOWN)
    sensor = DHT11(pin)
    print("Temperature: {}".format(sensor.temperature))
    print("Humidity: {}".format(sensor.humidity))

実行結果

問題なく測定することができました。若干ですが、気温が高く表示されている気がします。。。

DHT22センサ編

配線

配線に関しては、DHT11センサの配線と大差はありません。VCCとGNDをそれぞれSeeeduino xiaoの3V3とGNDに繋ぎ、OUTを適当なGPピンと繋げます。

DHT22Seeeduino xiao
VCC3V3
OUTP0
GNDGND

プログラムコード

こちらも、DHT22ライブラリをGithubから頂いてダウンロードします。いつも通り、dht22.pyをSeeeduino xiaoにアップします。

気温と湿度を測定するメインコードは以下の通りです。

from machine import Pin
from time import sleep
from dht22 import DHT22

dht22 = DHT22(Pin(0,Pin.IN,Pin.PULL_UP))

while True:
    sleep(1)
    T, H = dht22.read()
    print("Temperature: {}".format(T))
    print("Humidity: {}".format(H))

実行結果

こちらも問題なく気温と湿度が測定できました。

(まとめに代えて)DHT11とDHT22を比較してみると

せっかく手元に2種類のDHTセンサがあるので、同時に測定して気温と湿度の結果を比較してみました。

残念ながら、測定時の気温と湿度の正確な値は分からないので、どちらが正確なのかを判断することはできていません。

分かったことは、DHT11、DHT22いずれも、気温と湿度の測定に関しては十分に使えるということぐらいでしょうか。

コメント