【RaspBerryPi】DTH-11 温湿度を測定 (PYTHON版)

Raspberry Piでセンサーを接続し、部屋の温度・湿度を測ります。

今回は「DHT11」という温湿度センサーを使用します。

DTH-11について

DHT11は、価格も安価で入手し易い温湿度センサーです。

1番ピン +5V  2番ピン GPIO14 3番ピン GND

開発環境

ラズパイ      Raspberrypi 3B

温度湿度センサー  DTH-11

開発言語      Python

回路を組む

使用するのはDHT11のセンサー単体のものです。

DHT11のピン構成は、 1番:5V、2番:GPIO、

3番:GND という構成になっています。

1番ピン、4番ピンにRaspberry Piの5V、GNDを接続し、

2番ピンにGPIOの14ピン端子を割り当てて情報を取得する、ということになります。

温度・湿度を取得するプログラムでピンの番号が重要になりますので、

ピンの位置は間違えないように注意してください。

DHT11のピン構成は、 1番:5V、2番:GPIO、 3番:GND という構成になっています。

準備

dth11.py というファイルをcyberduckでラズパイのHomeに転送するか、

下記のようにGitからインストールします。

Gitのライブラリー

$ git clone https://github.com/szazo/DHT11_Python
$ cd DHT11_Python
$ python3 -m pip install .

サンプルプログラム

import RPi.GPIO as GPIO
import dht11       # ・・・ ①
import time
import datetime

# initialize GPIO
GPIO.setwarnings(False)       # ・・・ ②
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 14
instance = dht11.DHT11(pin=14)      # ・・・ ③

while True:
    result = instance.read()    # ・・・ ④
    if result.is_valid():    # ・・・ ⑤
        print("Last valid input: " + str(datetime.datetime.now()))
        print("Temperature: %d C" % result.temperature)    # ・・・ ⑥
        print("Humidity: %d %%" % result.humidity)

    time.sleep(6)    # ・・・ ⑦

① import文でライブラリ「dht11.py」を読み込みます。

② GPIOの初期化をしています。各コマンドには次のような意味になります。

GPIO.setwarnings(False) : ワーニングを非表示にします。

※1 GPIO.setmode(GPIO.BCM) : GPIOの数字で指定します。

GPIO.cleanup() : GPIOの設定を初期化します。

※1.ピンが既に使用中の場合等にワーニングが表示されます。

今回のサンプルではワーニングは表示されないため、設定は必須ではありません。

③ データ読み込みのピン番号を設定します。②の初期化でGPIOの番号で

設定するようにしているため、引数のpinには今回接続している14を設定します。

④ センサーから温度・湿度情報を取得します。

⑤ センサーから温度・湿度情報が取得できたか判定します。

取得できた場合に結果をコンソールに出力します。

⑥ 温度・湿度情報をコンソールに出力します。 temperature : 温度(摂氏)の値です。

humidity : 湿度の値です。 ⑦ 1秒処理を停止します。

サンプルファイルの実行

コマンドプロンプトより 

dht11_example.pyを実行します。コマンドは次の通りです。

pi@raspberrypi:DHT11_Python  python example.py

成功すると下記のような結果を得られます。

Last valid input: 2018-03-10 05:08:35.590508

Temperature: 24 C <= 温度

Humidity: 47 % <= 湿度`

上記は1回の結果ですが、サンプルスクリプトは停止させるまで6秒毎に

温度・湿度を取得して出力しています。

安価な機材、簡単なスクリプトで温度・湿度を測定することができます。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

前の記事

自動翻訳の実験