ArduinoからデジタルセンサーモジュールのDHT11を使って温度と湿度を計測してみようと思います。DHTxx用のライブラリやチュートリアルはたくさん見つかるので勉強に役立ちます。DHT11よりDHT22の方が精度が高く、DHT22とAM2302は同じモジュールのようです。どれも同じライブラリを使えるようなので、安い方のDHT11を購入しました。
ブレッドボード配線
購入したDHT11は3ピンの完成品です。データはArduinoのデジタル側、PD2に配線します。
+
(DHT11) -> +5V (Arduino)
S
(DHT11) -> PD2 (Arduino)
-
(DHT11) -> GROUND (Arduino)
adafruit/DHT-sensor-library
いつも参考にしているAdafruitのチュートリアルとライブラリを使います。
リポジトリからgit clone
してライブラリをインストールします。
$ cd ~/Documents/Arduino/libraries $ git clone https://github.com/adafruit/DHT-sensor-library.git DHTxx
|
DHTtester.inoを参考にしてサンプルプログラムを用意します。
~/Documents/Arduino/DHTxx/DHTxx.ino#include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() { Serial.begin(9600); Serial.println("DHT11 test!"); dht.begin(); }
void loop() { delay(3000);
float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Serial.print("Humidity: "); Serial.print(h); Serial.println(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C "); }
|
コンパイルしてArduinoに書き込みます。シリアルモニタを実行すると温度と湿度が表示されます。
DHT11 test! Humidity: 43.00 % Temperature: 25.00 *C Humidity: 43.00 % Temperature: 25.00 *C
|