[아두이노] DHT11 / DHT22 온습도 센서 사용해보기


안녕하세요 대짜이찐입니다.

이번에는 온습도센서 DHT11 / DHT22에 대해서 포스팅 해보겠습니다.
첫번째로, DHT11은 아두이노에서 온습도 관련 프로젝트를 할 때
가장 많이 사용하는 온습도 센서모듈로,
온도값과 습도값 둘 다 얻을 수 있는 센서 모듈입니다.
DHT11 센서모듈을 조금 더 편하게 사용하기 위해서는 라이브러리가 필요합니다.
아래 두개의 라이브러리 모두 설치되어 있어야 합니다.
아두이노 IDE - 툴 - 라이브러리 관리에서 DHT sensor library by Adafruit를 다운로드해 주세요.

아두이노 IDE - 툴 - 라이브러리 관리에서 Adafruit Unified Sensor by Adafruit를 다운로드해 주세요.
혹은 소스코드 주석에 있는 github에서 다운받으시면 됩니다.







아두이노
DHT11
비고
5V
Vcc
Power
GND
GND
Ground
D5
OUT
Data

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
34
35
36
37
38
39
/*
온습도 센서 예제
온도와 습도를 출력
라이브러리 DHT sensor library by Adafruit 와
Adafruit Unified Sensor by Adafruit를 아래 링크에서 설치 해야함
https://github.com/adafruit/DHT-sensor-library
https://github.com/adafruit/Adafruit_Sensor
http://www.devicemart.co.kr/
*/
#include "DHT.h" // DHT 라이브러리 호출
#define DHTPIN 5     // 온습도 센서가 4번에 연결
#define DHTTYPE DHT11   // DHT11 온습도 센서 사용
DHT dht(DHTPIN, DHTTYPE); // DHT 설정 (4,DHT11)
void setup()
{
Serial.begin(9600); // 통신속도 9600으로 통신 시작
Serial.println("DHT11 test!"); // 문자 출력
}
void loop()
{
delay(2000);
int h = dht.readHumidity(); // 습도값을 h에 저장
int t = dht.readTemperature(); // 온도값을 t에 저장
Serial.print("Humidity: "); // 문자열 출력
Serial.print(h); // 습도값 출력
Serial.print("% ");
Serial.print("Temperature: ");
Serial.print(t); // 온도값 출력
Serial.println("C");
}



DHT22의 경우 DHT11 보다 더 정밀한 센서 모듈입니다.
아래는 두 제품의 비교표로 DHT보다 성능이 뛰어난걸 확인 가능합니다.


DHT11
DHT22
작동전압
3.3~5VDC
3.3~5VDC
온도 측정범위
0~50℃
-40~80℃
온도 측정오차
2℃
0.5℃
습도 측정범위
20~80%
0~100%
습도 측정오차
5%
2%
측정 간격
1초
2초

DHT22 또한 라이브러리가 필요한데요. 
라이브러리는 DHT11과 같은 라이브러리를 사용하기 때문에 
위에 라이브러리를 다운받으셨다면 문제 없습니다.


DHT22 중 따로 breakout 보드없이 센서만 4개의 핀으로 되어있는 
제품을 가지고 계신다면 왼쪽부터 3번째 핀은 NC핀이므로 사용하지 않아도 됩니다.


아두이노
DHT22
비고
5V
Vcc
Power
GND
GND
Ground
D4
OUT
Data

소스코드는 기존 DHT11과 같은 라이브러리를 쓰기 때문에 비슷합니다.
오브젝트에서 DHT11대신 DHT22를 넣어주시면 됩니다.

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
34
35
36
37
38
39
/*
온습도 센서 예제
온도와 습도를 출력
라이브러리 DHT sensor library by Adafruit 와
Adafruit Unified Sensor by Adafruit를 아래 링크에서 설치 해야함
https://github.com/adafruit/DHT-sensor-library
https://github.com/adafruit/Adafruit_Sensor
http://www.devicemart.co.kr/
*/
#include "DHT.h" // DHT 라이브러리 호출
#define DHTPIN 4     // 온습도 센서가 4번에 연결
#define DHTTYPE DHT22   // DHT22 온습도 센서 사용
DHT dht(DHTPIN, DHTTYPE); // DHT 설정 (4,DHT22)
void setup()
{
Serial.begin(9600); // 통신속도 9600으로 통신 시작
Serial.println("DHT11 test!"); // 문자 출력
}
void loop() {
 delay(2000);
int h = dht.readHumidity(); // 습도값을 h에 저장
int t = dht.readTemperature(); // 온도값을 t에 저장
Serial.print("Humidity: "); // 문자열 출력
Serial.print(h); // 습도값 출력
Serial.print("% ");
Serial.print("Temperature: ");
Serial.print(t); // 온도값 출력
Serial.println("C");
}

아래는 DHT11 / DHT22를 포함한 온습도센서 판매링크 입니다.

http://www.devicemart.co.kr/goods/catalog?code=0004000400040003

감사합니다.





댓글 쓰기

0 댓글