簡単!Raspberry pi(ラズパイ)で温度・湿度(DHT22)を測る方法

IoT

愛知県稲沢市在住の【中小企業診断士✖️IoTプロフェッショナルコーディネーター】 の 後藤洋哉 です。ものづくりの楽しさをお伝えしていきます!

Raspberry pi(ラズベリーパイ、ラズパイ)で温度を測りたいんだけど、どうやってやれば…

こんなお悩みを抱える人は多いと思います。

そこで、試行錯誤の末に【Raspberry piでDHT22を使って温度を計測する】ことができたので、それを自分自身の備忘録も兼ねてまとめます。

これで、あなたもラズベリーパイで温度計測ができるようになるはずです。

なお、温度計測用のモジュールは比較的壊れやすい(経験談)ので、自己責任での使用でお願いします。

スポンサーリンク

準備するもの

  • Rasbperry pi (ラズベリーパイ、ラズパイ)
  • DHT22
  • その他、ジャンプワイヤとかブレッドボードとか

DHT22は以下のものを購入しました。

私が買ったものとは別ですが、楽天ならこちらですね。

ラズベリーパイの基本的な使い方などは、以下を参照してください。

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 の各端子と接続してください。

DHT22Raspberry pi備考
VCC5V電源
GNDGNDグランド
DATGPIO温度や湿度の値を入力

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つ壊しました)、プログラムか回路に問題あるのかなー。
ということで、改造などは自己責任ということでお願いします(^^;

コメント

タイトルとURLをコピーしました