ラズパイで温度と湿度を測る方法

 

DHT11と言うラズパイの部品を使って温度と湿度を測ってみました。

 

秋月電子で300円で購入できます。

 

使う部品は以下の通り。

  • ラズパイ 3 Model B+
  • ブレッドボード、ジャンパー
  • DHT11
  • 10kΩの抵抗

 

[toc]

DHT11とは

 

以下の青い部品ですね。とても小さいです。

 

ピンの役割ですが以下のようになっています。

1:3.3V-5V、2 : データ、3 : なし、4 : GND

 

ラズパイと配線

 

DHT11の1番をラズパイの電源、DHT11の2番を抵抗を通してラズパイのポート4、DHTの4番とラズパイのGNDを接続します。

初めて、5Vの電源を使っていきます。抵抗は10KΩです。なぜか、電源と抵抗ではなく、データと抵抗を繋ぎます。

 

コード

 

Adafruit_DHTと言うモジュールを使います。以下のコマンドで、ダウンロード、インストールしました。

 git clone https://github.com/adafruit/Adafruit_Python_DHT.git
 cd Adafruit_Python_DHT/
 sudo python3 setup.py install

 

pipコマンドでインストールできたか確認できます。

pi@raspberrypi:~/share $ pip3 list
Package           Version
----------------- -------
Adafruit-DHT      1.4.0  
astroid           1.4.9  
asttokens         1.1.13 
 :

 

以下は3回温度と湿度を測るコードです。

from time import sleep
from datetime import datetime
import Adafruit_DHT as DHT

PIN = 4

for i in range(3):

    while True:

        humi, temp = DHT.read_retry(DHT.DHT11, PIN)

        if (humi > 90) or (temp > 50):
            print("error:",humi,temp)
            sleep(0.1)
            continue
        break

    print("+", datetime.now().strftime("%H:%M:%S"))
    print("湿度:", humi, "%")
    print("温度:", temp, "度")
    sleep(3)

 

pi@raspberrypi:~/share $ python3 temparature.py 
+ 21:41:38
湿度: 29.0 %
温度: 20.0 度
+ 21:41:41
湿度: 29.0 %
温度: 20.0 度
+ 21:41:45
湿度: 29.0 %
温度: 20.0 度

 

3回ともうまく計測できた例です。

何回かやると湿度が100%超えて結構エラーが出ていました。安定性はあまりない感じです。

 

おわり。

参考

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog