2015.11.05
註: 點選即前往該專題介紹文章
這篇要介紹是 溫溼度感測器,型號為DHT22,如下圖:
這個感測器,可以將所量測的溫、濕度將資料數位化,由data角為輸出,其精準度、測量範圍從比較以下表格得知其區間相較DHT11,精準不少,但也比較貴。
溫溼度感測器-各型號比較 | ||||
型號 | 溫度範圍 | 濕度範圍 | 溫度誤差 | 濕度誤差 |
LM35 | -55°C to 150°C | Nope | 0.5°C(at 25°C) | Nope |
DS18B20 | -55°C to 125°C | Nope | ±0.5°C | Nope |
DHT11 | 0°C to 125°C | 20 to 90% RH | ±2°C | ±5 % RH |
DHT22 | -40°C to 80°C | 0 to 100% RH | ±0.2°C | ±2 % RH |
SHT11 | -40°C to 123.8°C | 0 to 100% RH | ±0.4°C | ±3 % RH |
來源:DHT11、DHT22、DS18B20、LM35 datasheet
其實就只是把data腳位接到Arduino 上面,做讀取的動作,datasheet的示意圖如下(DHT11、DHT22 接法一樣):
來源:DHT11 datasheet
當然你也可以按這個電路圖接:
來源:arduino.cc
腳位 | 意義 | 使用說明 |
VCC | Voltage | +5V |
Data | Data Output | 有腳位限制,請對照下表 |
NC | Null | 不用接 |
GND | Ground | 0V (GND) |
來源:DHT11、22 datasheet
中斷腳 | ||||
型號 | int.0 | int.1 | int.2 | int.4 |
Arduino UNO | 2 or 3 | nope | nope | nope |
Arduino Mega2560 | 3 or 21 | 20 | 19 | 18 |
Arduino Leonardo | 0 or 2 | 2 | nope | nope |
來源:www.arduino.cc
這個感測器也是套用 library,較為簡易使用,檔案的部分,Arduino.cc 官方網站有。
程式碼就不在多做介紹了,因為...很簡單
--------------------------------------------------------------------
/* 2015.11.05 by Li-Han Chang */ /****** DHT22 set ****/ #include "DHT.h" #define DHTPIN A2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup(){ Serial.begin(9600); dht.begin(); } void loop(){ float h = dht.readHumidity(); //DHT22 float t = dht.readTemperature(); //DHT22 Serial.print("Hum:"); Serial.print(h); Serial.print("Tem"); Serial.println(t); }
--------------------------------------------------------------------
看過很多版本,有些會接電組,有的卻不用,還有電阻大小都不一樣。我個人是接上「棕黑紅」,測量出來的數值較為接近。
在第二專題,溫室環境自動控制系統,因為這個系統,加裝了很多感測器,其電路稍些複雜,造成電流過小,影響到濕度的數值,建議規劃電路之前,要好好考量。
如此一來就可以清除「部分」欄位了。
----------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------