温湿度センサー(DHT系)の使い方 [Arduino]
温湿度センサーを使用して「温度、湿度、体感温度」を取得します。
実行結果
同じ部屋にある温度、湿度計
※どちらが正しいのか不明です。
今回のスケッチではDHT系の専用ライブラリを使用していますので「DHT11/DHT22/DHT21/AM2301」の機種でご利用可能です。AM2302/AM2322などは未確認ですがライブラリを修正すればいけると思います。
使用ライブラリ
adafruitのオープンソースのDHT-sensor-library(ダウンロード)です。
その他にAdafruit_Sensor.h(名前を付けて保存)も必要です。このAdafruit_Sensor.hはDHTセンサーライブラリをインストールしたフォルダ内においてください。
ZIP形式のライブラリをArduino IDEにインストールするにはIDEメニューの[スケッチ][ライブラリをインクルード][ZIP形式のライブラリをインストール]でZIPファイルを選択すればOKです。
インストール先は
C:\Users\ユーザー名\Documents\Arduino\libraries
です。
使用部品・材料
総額で約570円です。(Arduino本体の値段を除く)
部品/材料 | 値段 | 備考 |
---|---|---|
ブレッドボード | ¥270 | 秋月電子の通販コード(P-00315) |
温湿度センサ モジュール DHT11 | ¥300 | 秋月電子の通販コード(M-07003) |
カーボン抵抗器 | 数円 | 10kΩ(1個)を使用。 |
配線図
10kΩでプルアップしていますが、本来は5.1kΩで良いようです。
スケッチ(プログラム)
シリアルモニターに温度、湿度、体感温度を表示します。
#include <DHT.h> // DHTクラスの生成 // ※Arduinoのデジタル8ピンでDHT11センサーを接続する DHT dht(8, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // 湿度 float humidity = dht.readHumidity(); // 温度 float temperature = dht.readTemperature(); if (isnan(humidity) || isnan(temperature)) { Serial.println("センサーから読み取りに失敗しました。"); return; } // 体感温度 float heatIndex = dht.computeHeatIndex(temperature, humidity, false); Serial.print("温度:"); Serial.print(temperature); Serial.print("℃ 湿度:"); Serial.print(humidity); Serial.print("% 体感温度:"); Serial.print(heatIndex); Serial.println("℃"); }
以上となります。
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。