DHT11とラズパイで温度・湿度を測る
この記事では、Raspberry Pi(ラズパイ)とDHT11センサーで温度と湿度を測る方法解説していく。 なお、ラズパイとの通信はmacOSからSSHで行った。
SSHの設定はこちらを参考に
開発環境
開発環境はこちら。
項目 | バージョン |
---|---|
ラズパイ | Raspberry Pi zero WH |
温度湿度センサー | DHT11 |
Python | 2.7.16/3.7.3 |
DHTシリーズデジタル温湿度センサ、フル鳴ったキャリブレーション、デジタル出力、湿度測定範囲:20%~90%RH(0~50℃温度補償)、温度測定範囲:0~+50℃、湿度測定精度:±5.0%RH,温度測定精度:±2.0℃
AmazonDHT11のピン端子役割
DHT11はデジタルセンサーとなっており、DATAピンでデータのやりとりをする。NCピンは使わないので、何も接続しない。
DHT11をもっと詳しく知りたい場合はこちらを参考に
DHT11とラズパイの配線
DHT11 | ラズパイ |
---|---|
VDD | 3.3V |
DATA | GPIO14⭐︎ |
NC | -- |
GND | GND |
⭐︎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.setmodeのBCMとBOARDの違い
プログラム中のGPIO.setmodeは、GPIO.BCMをセットすると、図のGPIOの番号でピンを指定でき、GPIO.BOARDをセットするとピンの配列順の番号で指定する事になる。
この記事で使った関連製品はこちら
DHTシリーズデジタル温湿度センサ、フル鳴ったキャリブレーション、デジタル出力、湿度測定範囲:20%~90%RH(0~50℃温度補償)、温度測定範囲:0~+50℃、湿度測定精度:±5.0%RH,温度測定精度:±2.0℃
AmazonRaspberry Piの参考書
本書は、全世界で多くのユーザーの支持を集めているマイコンボード「Raspberry Pi」を使いこなすためのレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本を紹介した上デ、実際の作品製作に必要になる、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイなどの使い方へと解説を進めていきます。
Amazon本書は、大人から子供まで、初心者の方でも、ラズパイZeroとラズパイZero WをIoTのデバイスとして使いこなせるようになることを目的とした入門書です。また、ラズパイZeroとラズパイZero WをUSBケーブル1本でパソコンに接続できる便利な「Zero over USB」について、日本で初めて詳しく解説しました。
Amazon最後まで読んでいただきありがとうございました。
「この記事が参考になったよ」という方は、ぜひ記事をシェアをしていただけるととても嬉しいです。
今後も有益な記事を書くモチベーションにつながりますので、どうかよろしくお願いいたします。↓↓↓↓↓↓↓