湿度センサー(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("℃");
}
// 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("℃");
}
0 件のコメント:
コメントを投稿