온습도 센서(DHT-11)
정전식 습도 센서와 서미스터(온도)를 사용하여 대기온도와 습도를 측정하고 디지털 센서 신호로 출력하는 센서
습도를 측정할 때, 두 전극 사이의 저항변화를 측정함으로 공기중의 습도변화 측정.
습도흡착판 양쪽 표면에는 전극이 부착된 얇은 판이 있는데, 이 판이 공기중의 수분을 흡수하여 그 표면에 부착된
수분 양에 의해 전극의 전도도에 변화가 일어나게 되면 이를 감지하는 방식.
온도를 감지하는 부분은 반도체 세라믹으로 이루어져 온도에 따라서 물질의 저항 값이 변하는 소재(서미스터)의 특성을 이용
아두이노에서 온습도 센서를 사용하기 위해선 관련 라이브러리가 필요합니다.
스케치에서 상단탭에 스케치-라이브러리 포함하기-라이브러리 관리하기를 선택합니다
검색창에 DHT-11을 검색합니다. DHT sensor library 선택후 install all을 클릭합니다.
만약 install 'DHT sensor library' only를 선택하면 Adafruit Unified Sensor 라이브러리를 따로 설치해줍니다.
- DHT(pin,type) : DHT 객체를 생성합니다.
- DHT.begin() : DHT 사용 선언
- float DHT.readTemperature(boolean true=화씨F false=섭씨C ) : 화씨, 섭씨 중 선택된 온도 단위 값을 반환
- float DHT.converCtoF(float) : 섭씨를 화씨로 반환
- float DHT.converFtoC(float) : 화씨를 섭씨로 반환
- float computeHeatIndex(float temperature, float percentHumidity, boolean isFahrenheit = true F, false C ) : 열파지수 반환
- float readHumidity(boolean force = false) : 습도를 %단위로 반환
열파지수(Heat Index)
기온과 습도에 따라 사람이 실제로 느끼는 더위를 나타내는 지수
- 54 이상 : 매우 높음, 지속적으로 노출되면 열사병 위험 매우 높음
- 41 ~ 54 미만 : 높음, 지속적으로 노출된 환경에서 신체활동시 열사병 위험 높음
- 32 ~ 41 미만 : 보통, 지속적으로 노출된 환경에서 신체활동시 열사병 가능성 있음
- 32 미만 : 낮음, 지속적으로 노출된 환경에서 신체활동시 피곤할 수 있음
실습 : 썹씨,화씨,습도,열파지수를 Serail에 출력해보세요
VCC | 5V |
GND | GND |
아날로그 핀 | DATA |
더보기
#include <DHT.h>
#define DATAPIN A1 //DHT11 Datapin Number
DHT myDHT11(DATAPIN, DHT11); //DHT 중에서 우리 모듈인 DHT11
void setup(){
Serial.begin(9600);
Serial.println("DHT11 Start..");
myDHT11.begin();
}
void loop(){
float fTempC;
float fTempF;
float fHumid;
float fHeatIndex;
fTempC = myDHT11.readTemperature(false); //섭씨
fTempF = myDHT11.readTemperature(true); //화씨
fHumid = myDHT11.readHumidity(false);
fHeatIndex = myDHT11.computeHeatIndex(fTempC,fHumid,false);
Serial.print("Temp C : ");
Serial.println(fTempC);
Serial.print("Temp F : ");
Serial.println(fTempF);
Serial.print("Humid % : ");
Serial.println(fHumid);
Serial.print("Headt Index : ");
Serial.println(fHeatIndex);
Serial.println("================================");
delay(2000);
}