Arduino 溫濕度計DHT 11
DHT-11 是一個結合濕度計和測溫元件量測週遭空氣環境,並與一個高性能8位元單晶片相連接,將所量測到的溫、濕度資料拆解成為數位訊號,再由 data pin腳將資料送出。使用上很簡單,但是抓取資料時必須要特別注意時間的掌控,而且每筆資料的抓取時間間隔要1~2秒鐘,不能太快。與 DHT-22 比較,DHT-11 較不精密與準確且溫濕度量測範圍不大,雖然如此,但對於學習與熟悉溫、濕度感測卻是綽綽有餘,傳輸的距離又可長達20m以上,而且比 DHT-22 較小且便宜許多,是十分方便的簡易測試元件。
其規格如下:
1、濕度測量範圍:20~90%RH;
2、濕度測量精度:±5%RH;
3、溫度測量範圍:0~50℃
4、溫度測量精度:±2℃
5、電源供應範圍: 3~5V
6、頻率不可超過:0.5Hz (每2秒一次)
4、溫度測量精度:±2℃
5、電源供應範圍: 3~5V
6、頻率不可超過:0.5Hz (每2秒一次)
接線的方法十分簡單,"+"接5V,"-"接GND,data pin接上要輸入的Pin腳。有人說因為數位訊號要接高data電位,所以把data pin外接4.7歐姆電阻至Vcc。不過我曾嘗試不接那4.7k 歐姆,試出來的效果看起來沒有太大的差別。
//溫濕度計DHT 11。
#include <dht.h>
#define dht_dpin 2 //定義訊號要從Pin A0 進來
//I2C + I2C LCD Library
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
/*==========================================
SDA – 接 Arduino 的 Analog Pin 4 (Arduino Mega 為 Pin 20)
SCL – 接 Arduino 的 Analog Pin 5 (Arduino Mega 為 Pin 21)
GND – 接 GND
VCC – 接 +5V
==========================================*/
dht DHT;
void setup(){
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
// 輸出初始化文字
lcd.setCursor(0, 0); // 設定游標位置在第1行行首
lcd.print("Humidity and");
lcd.setCursor(0, 1); // 設定游標位置在第2行行首
lcd.print("temperature");
Serial.begin(9600);
delay(300); //Let system settle
Serial.println("Humidity and temperature\n\n");
delay(700); //Wait rest of 1000ms recommended delay before
//accessing sensor
}
void loop(){
DHT.read11(dht_dpin); //去library裡面找DHT.read11
lcd.setCursor(0, 0); // 設定游標位置在第1行行首
lcd.print("Humidity =");
lcd.print(DHT.humidity);
lcd.print("%");
lcd.setCursor(0, 1); // 設定游標位置在第2行行首
lcd.print("Temp = ");
lcd.print(DHT.temperature);
lcd.print("C ");
Serial.print("Humidity = ");
Serial.print(DHT.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT.temperature);
Serial.println("C ");
delay(1000); //每1000ms更新一次
}
參考來源 :
http://ming-shian.blogspot.tw/2014/05/arduino19dht11.html
沒有留言:
張貼留言