예전에 온습도 센서(온도와 습도를 동시에 측정할 수 있는 센서)인 DHT11 의 사용에 대해서 알아본적이 있습니다. DHT11 도 싸고 좋은 센서지만 보다 측정범위가 넓고 오차가 적은 정밀한 측정이 가능한 온습도 센서가 있습니다. 바로 DHT22 (AM2302) 입니다. 하지만 DHT22 는 11보다 좀 비쌉니다. 국내에서 가격은 DHT11 이 2000~3000원 정도를 하지만 DHT22 는 6000~10000원 정도 합니다. DHT22 하나 가격으로 DHT11 3개 가격으로 DHT22 센서 하나를 살 수 있는것이죠. 하지만 DHT22 가 11 보다 모든면에서 우수한 것 같지만 하나의 단점이 있습니다. DHT11은 1초마다 온습도 값을 측정해서 보내주지만 DHT22 는 2초 마다 보내줍니다. 자세한 차이는 아래 보여드리는 비교표를 참고하면 됩니다. 표를 보고 자신의 용도에 맞는 온습도 센서를 선택하면 되겠습니다.
|
DHT11 |
DHT22 |
온도 측정범위 |
0 ~ 50℃ |
-40 ~ 80℃ |
온도 측정오차 |
2℃ |
0.5℃ |
습도 측정범위 |
20 ~ 80% |
0 ~ 100% |
습도 측정오차 |
5% |
2% |
측정 간격 | 1초 | 2초 |
▲ DHT11 과 DHT22 (AM2302) 의 비교표
■ DHT11 과 DHT22 의 데이터시트
DHT22 센서의 핀배열은 위와 같습니다. 3.3V 또는 5V 의 전압이 사용이 가능하며 두번째 핀(SDA)으로 신호를 전송합니다. 3번핀은 사용하지 않습니다. 흔히 DHT22 라고 부르지만 정식명칭은 AM2302 입니다. AOSONG 은 제조사의 이름 입니다.
뒷면입니다. 제조사의 품번인 듯한 AS1402 라는 코드가 쓰여져 있습니다.
아두이노 우노와의 연결은 다음과 같이 했습니다.
■ fritzing 파일
위와 같이 3.3V 또는 5V 전원에 연결하면 됩니다. 저는 5V에 연결했습니다. 신호를 받을 SDA 핀은 디지털 2번에 연결했습니다. 그리고 VCC 와 SIgnal (SDA) 단자 사이에 10KΩ 풀업 저항을 달아 주었습니다.
소스
소스는 DHT 센서 라이브러리를 사용했으며 아두이노의 시리얼 모니터로 온습도의 변화를 관찰해 보았습니다. 아래의 라이브러리는 DHT 11, 21, 22 모두 사용할 수 있습니다.
■ DHT 라이브러리
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include "DHT.h" #define DHTPIN 2 // SDA 핀의 설정 #define DHTTYPE DHT22 // DHT22 (AM2302) 센서종류 설정 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHT22 TEST !!!"); dht.begin(); } void loop() { // 센서의 온도와 습도를 읽어온다. float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(t) || isnan(h)) { //값 읽기 실패시 시리얼 모니터 출력 Serial.println("Failed to read from DHT"); } else { //온도, 습도 표시 시리얼 모니터 출력 Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } delay(2000); } | cs |
온도의 변화를 시리얼 모니터로 관찰해 보았습니다. 손가락을 센서에 갖다대니 26.9℃ 에서 시작한 온도가 29℃ 까지 올라가고 손가락의 습기때문에 습도도 높아지는 것을 볼 수 있습니다.
이상으로 정밀 온습도 센서인 DHT22에 대해서 알아보았습니다.
'아두이노' 카테고리의 다른 글
[아두이노] 정밀한 RTC (Real Time Clock) 모듈 DS3231의 사용 (9) | 2016.05.09 |
---|---|
[아두이노] 아두이노 프로 미니 보드와 USB TO TTL 모듈을 이용한 프로그램 업로드 (2) | 2016.05.02 |
[아두이노] 장애물 감지 자율주행 자동차 (43) | 2016.04.20 |
[아두이노] 블루투스로 컨트롤하는 무선조종 자동차 (36) | 2016.04.16 |
[아두이노] 진동감지센서(SW-420) 의 사용 (2) | 2016.04.12 |