愛知県稲沢市在住の【中小企業診断士✖️IoTプロフェッショナルコーディネーター】 の 後藤洋哉 です。ものづくりの楽しさをお伝えしていきます!
Raspberry pi(ラズベリーパイ、ラズパイ)で温度を測りたいんだけど、どうやってやれば…
こんなお悩みを抱える人は多いと思います。
そこで、試行錯誤の末に【Raspberry piでDHT22を使って温度を計測する】ことができたので、それを自分自身の備忘録も兼ねてまとめます。
これで、あなたもラズベリーパイで温度計測ができるようになるはずです。
なお、温度計測用のモジュールは比較的壊れやすい(経験談)ので、自己責任での使用でお願いします。
準備するもの
- Rasbperry pi (ラズベリーパイ、ラズパイ)
- DHT22
- その他、ジャンプワイヤとかブレッドボードとか
DHT22は以下のものを購入しました。
私が買ったものとは別ですが、楽天ならこちらですね。
[rakuten id=”uxcelljapan:10011912″ kw=”【楽天市場】uxcell DHT22温湿度センサー DC 3V-5.5V 長距離信号伝送 デジタル 固定穴径2.9mm:uxcell japan”]
ラズベリーパイの基本的な使い方などは、以下を参照してください。
DHT22(温度・湿度計測モジュール)とは
DHT22は内部に温度センサと湿度センサを備えている、非常に使えるモジュールです。
例えば、
「部屋の温度が高くなったらファンを回す」
「湿度が低いときに、水をまく」
など、IoTシステムを作るときに威力を発揮しますね。
以下はDHT22の仕様です。
- ピン: VCC,GND,DAT;
- 動作電圧: DC 3~5.5V
- 温度測定範囲:-40 ℃ ~ 80 ℃
- 湿度測定範囲:0~100%RH
- 温度測定精度:±0.5℃
- 湿度測定精度:±2%RH
こんな小さなセンサーで、精度が「±0.5℃」とか「±2%」ってすごいですね!
DHT22の接続
DHT22 には、VCC,GND,DAT という3つの端子があります。
これをそれぞれ下記のようにRaspberry pi の各端子と接続してください。
DHT22 | Raspberry pi | 備考 |
VCC | 5V | 電源 |
GND | GND | グランド |
DAT | GPIO | 温度や湿度の値を入力 |
DAT端子から温度や湿度の情報が送られてくるということですね。
今回はGPIO04(pin = 4)にDAT端子を接続しました。
温度・湿度計測用のプログラムを作る
ネットで検索するとDHT11のライブラリを改造して温度・湿度を計測している人もいますが、今回は「AdafruitのDHTライブラリ」を使った方法をご紹介します。
なお、DHT11を改造したものとAdafruitのDHTライブラリを使った方法のどちらも試しましたが、同じ数値になりました。なのでどっちでもいいってことですね。
Pythonのパッケージをインストール
$ sudo apt-get update
$ sudo apt-get install build-essential python-dev
AdafruitのDHTライブラリをインストール
$ sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
$ cd Adafruit_Python_DHT
$ sudo python setup.py install
動作確認用のプログラムを作成
#!/usr/bin/python3
# coding: utf-8
import Adafruit_DHT as DHT
# センサータイプを選ぶ
SENSOR_TYPE = DHT.DHT22
# 今回はGPIO04を使う
DHT_GPIO = 4
# DHT22のデータを取得
h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO)
# データ形式を整えて出力
message_temp = "Temp= {0:0.1f} deg C".format(t)
message_humidity = "Humidity= {0:0.1f} %".format(h)
message = message_temp +". " + message_humidity
print (message)
実際に動かしてみる
では作ったプログラムをRaspberry pi で動かしてみましょう。今回は室内の温度と湿度を計測することにします。
どうでしょう。上記の通り、時計に付属している温湿度とは若干の誤差はあるものの、だいたい近い値になっていることが確認できると思います。
なお、このあとDHT22に氷を近づけてみたところ、温度はぐっと下がりました。
ちゃんと、動作していることを確認できましたね!
まとめ
今回はDHT22というモジュールを使って、Raspberry pi(ラズベリーパイ、ラズパイ)で温度と湿度を測ることにチャレンジしました。
このDHT22が使いこなせるようになると、色々なIoTシステムが作れそうですね。
ただ、最初にも書いた通りDHTは故障が多いような気がするため(今までに3つ壊しました)、プログラムか回路に問題あるのかなー。
ということで、改造などは自己責任ということでお願いします(^^;
コメント