DHT11とラズパイで温度・湿度を測る

この記事では、Raspberry Pi(ラズパイ)とDHT11センサーで温度と湿度を測る方法解説していく。 なお、ラズパイとの通信はmacOSからSSHで行った。

SSHの設定はこちらを参考に

開発環境

開発環境はこちら。

項目バージョン
ラズパイRaspberry Pi zero WH
温度湿度センサーDHT11
Python2.7.16/3.7.3
KKHMF DHT11 温度と湿度センサー デジタル出力
KKHMF DHT11 温度と湿度センサー デジタル出力

DHTシリーズデジタル温湿度センサ、フル鳴ったキャリブレーション、デジタル出力、湿度測定範囲:20%~90%RH(0~50℃温度補償)、温度測定範囲:0~+50℃、湿度測定精度:±5.0%RH,温度測定精度:±2.0℃

Amazon
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス

Amazon

DHT11のピン端子役割

DHT11のピン端子役割
DHT11のピン端子役割

DHT11はデジタルセンサーとなっており、DATAピンでデータのやりとりをする。NCピンは使わないので、何も接続しない。

DHT11をもっと詳しく知りたい場合はこちらを参考に

DHT11とラズパイの配線

DHT11とラズパイの配線図
DHT11とラズパイの配線図

DHT11ラズパイ
VDD3.3V
DATAGPIO14⭐︎
NC--
GNDGND

⭐︎DHT11のDATAピンは4.7kΩの抵抗でプルアップすること。

ラズパイで温度と湿度を測定しよう

それでは、ラズパイで温度と湿度を測定してみよう。DHT11をPythonで簡単に使えるようにするため、ライブラリーのインストールを行う。

DHT11ライブラリのインストール

gitを使ってライブラリをインストールするため、まずはgitを入れておこう。

$ sudo apt-get install git

そして次のようにしてDHT11のライブラリをインストールする。

$ git clone https://github.com/szazo/DHT11_Python.git

DHT11ライブラリの開発者ページはこちら

ライブラリのインストールが完了したら、現在のディレクトリにDHT11_Pythonディレクトリが作成されている。

$ cd DHT11_Pythonでディレクトリを移動すると、次のような階層になっているはず。

$ tree
.
|-- LICENSE.md
|-- README.md
|-- dht11
|   |-- __init__.py
|   `-- __pycache__
|       `-- __init__.cpython-37.pyc
|-- dht11-test.py
|-- example.py
`-- setup.py

2 directories, 7 files

湿度と温度を測定するプログラム

今回はexample.pyプログラムを動かしてみよう。example.pyの中身は次の通り。6秒おきに温度と湿度が標準出力されるプログラムとなっている。

import RPi.GPIO as GPIO
import dht11
import time
import datetime

# initialize GPIO
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BCM)

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

try:
    while True:
        result = instance.read()
        if result.is_valid():
            print("Last valid input: " + str(datetime.datetime.now()))

            print("Temperature: %-3.1f C" % result.temperature)
            print("Humidity: %-3.1f %%" % result.humidity)

        time.sleep(6)

except KeyboardInterrupt:
    print("Cleanup")
    GPIO.cleanup()

それではexample.pyを実行してみよう。このプログラムはpython3で動かすこともできる。プログラムを止めたい場合は、control + Cで止めよう。

$ python3 example.py 
Last valid input: 2020-12-27 03:45:31.272394
Temperature: 24.5 C
Humidity: 47.0 %

GPIO.setmodeBCMBOARDの違い

プログラム中のGPIO.setmodeは、GPIO.BCMをセットすると、図のGPIOの番号でピンを指定でき、GPIO.BOARDをセットするとピンの配列順の番号で指定する事になる。

ラズパイGPIO役割図
ラズパイGPIO役割図

この記事で使った関連製品はこちら

KKHMF DHT11 温度と湿度センサー デジタル出力
KKHMF DHT11 温度と湿度センサー デジタル出力

DHTシリーズデジタル温湿度センサ、フル鳴ったキャリブレーション、デジタル出力、湿度測定範囲:20%~90%RH(0~50℃温度補償)、温度測定範囲:0~+50℃、湿度測定精度:±5.0%RH,温度測定精度:±2.0℃

Amazon
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス

Amazon
正規代理店商品 Raspberry Pi 4 Model B (8GB) made in UK element14製 技適マーク入
正規代理店商品 Raspberry Pi 4 Model B (8GB) made in UK element14製 技適マーク入

Amazon

Raspberry Piの参考書

Raspberry Pi クックブック 第2版 (Make:PROJECTS)
Raspberry Pi クックブック 第2版 (Make:PROJECTS)

本書は、全世界で多くのユーザーの支持を集めているマイコンボード「Raspberry Pi」を使いこなすためのレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本を紹介した上デ、実際の作品製作に必要になる、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイなどの使い方へと解説を進めていきます。

Amazon
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero/Zero W対応
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero/Zero W対応

本書ではRaspberry Pi Zero / Zero Wの概要から必要な周辺機器の説明、OSの導入やセットアップなどといった準備、そしてLinuxに初めて触れる人に向けてLinuxの基礎やシェルの操作などを解説しています。また、準備が整ったら実際に電子部品をRaspberry Pi Zero / Zero Wで制御する方法も解説しました。

KindleAmazon
Raspberry Pi ZeroによるIoT入門- Zero W 対応
Raspberry Pi ZeroによるIoT入門- Zero W 対応

本書は、大人から子供まで、初心者の方でも、ラズパイZeroとラズパイZero WをIoTのデバイスとして使いこなせるようになることを目的とした入門書です。また、ラズパイZeroとラズパイZero WをUSBケーブル1本でパソコンに接続できる便利な「Zero over USB」について、日本で初めて詳しく解説しました。

Amazon

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

あなたにおすすめ