본문 바로가기

Arduino/[2] Arduino Module

[Arduino Module] #16. 디지털 온도 습도 센서

728x90
반응형

DHT11 온습도 센서

온 · 습도 센서는 정전식 습도 센서와 서미스터(thermistor)를 사용하여 대기온도와 습도를 측정하고 디지털 센서 신호로 출력 하는 센서다. 정전식 습도 센서는 습도에 따라 저항 값이 변하며, 서미스터는 온도에 따라 저항 값이 변하는 소자다.

출처: https://blog.naver.com/eduino/221187957461

 

아래 표는 온습도센서(DHT-11)로 측정 가능한 온도와 습도 범위 및 오차이다.

 

· 동작 전압 (Power): 3~5 V
· 온도 측정 범위 (Temperature range): 0 ~ 50 ℃ (±2 ℃)
· 습도 측정 범위 (Humidity range): 20 ~ 80 % (±5 %) 
· 최대소비전력 (Max. current): 2.5 mA
· 데이터 주기 (sampling rate):1 Hz

습도를 측정하는 방법

습도를 측정할 때, 두 전극 사이의 저항 변화를 측정함으로써 공기 중의 습도 변화를 확인할 수 있다.

습도 흡착판의 양쪽 표면에는 전극이 부착된 얇은 판을 통해 공기중의 수분을 흡수하여 그 표면에 부착된 수분 양에 의해 전극의 전도도(conductivity)에 따라 변화를 감지하는 방식으로 습도를 출력한다. 온도를 감지하는 부분이 반도체 세라믹으로 이루어져 온도에 따라서 물질의 저항 값이 변하는 소재의 특성을 이용, 값의 변화를 감지해 온도를 출력한다.

온습도 센서 라이브러리 설치

온· 습도센서(DHT)를 사용하기 위해서는 라이브러리 추가가 필요하다. 필요한 라이브러리는 총 2가지이며, 'DHT_sensor-library'와 'Adafruit_Sensor 라이브러리가 필요하다.

DHT_sensor-library , Adafruit_Sensor
라이브러리 추가하기

 

DHT 라이브러리

구 버전 아두이노에서는 라이브러리를 수동으로 깔아야했으나 신버전 아두이노 IDE에서는 자체적으로 다운로드가 가능한 것으로 보인다.

 

라이브러리 간의 충돌을 막기위해 아래 파일을 다운하고, 파일명을 DHT로 변경한다.

DHT_Library.zip
0.01MB

회로도

출처: https://it-g-house.tistory.com/entry/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8Arduino-%ED%99%88IoT-%EC%9E%85%EB%AC%B8-%EC%98%A8%EC%8A%B5%EB%8F%84-%EC%84%BC%EC%84%9CDHT11-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

VCC(+) 핀은 아두이노의 3.3V 또는 5V 핀에 연결하고 GND는 GND핀에 연결한다. 그리고 센서가 측정한 데이터를 아두이노가 받아야 하기 때문에 Data output 핀과 아두이노의 디지털(DIGITAL) 핀과 연결한다.

GND GND
DATA 2 PIN(DIGITAL)
VCC 5V

코드

#include<dht.h>
dht DHT;
#define DHT11_PIN 2
float hum; //Stores humidity value
float temp; //Stores temperature value

void setup() {
    Serial.begin(9600);
}

void loop() {
    DHT.read11(DHT11_PIN);
    hum = DHT.humidity;
    temp = DHT.temperature;

    Serial.print("Humidity: ");Serial.print(hum);
    Serial.print("%, Temp: ");Serial.print(temp);Serial.println(" Celsius");
    delay(100); 
}
728x90
반응형
댓글