DHT11 온도 습도 센서 테스트
1. DHT11 온도 습도 센서
DHT11은 상대 습도와 온도를 측정해 주는 센서로 장시간 사용해도 변화율이 낮은 제품입니다. 온도는 2 °C, 습도는 ± 5% 정도의 오차범위를 갖습니다. 자세한 성능은 아래와 같습니다.
동작전압: +5 V
온도 범위 :0-50 °C ± 2 °C
습도 범위 :20-90% RH ± 5%
2. 연결방법
DHT11 Pin 1 (Vss) –> Arduino +5V
DHT11 Pin 2 (Signal) –> Arduino Pin 2
DHT11 Pin 2 (Signal) –> Arduino +5V via Resistor 4.7K
DHT11 Pin 3 –> N/C
DHT11 Pin 4 (GND) –> Arduino Ground
Pin 2 를 아두이노 디지털 핀과 전원 두 갈래로 연결하고 저항(5K)을 달아줍니다. Pin 3 은 사용하지 않습니다.
Pin2를 통해 전송되는 데이터는 아래와 같은 형식으로 전달됩니다. 굳이 이 형식을 모르더라도 라이브러리를 통해 간편하게 사용하실 수 있습니다.
Data format: [8bit integral RH data] + [8bit decimal RH data] + [8bit integral T data] + [8bit decimal T data] + [8bit check sum]
3. 코드 (스케치)
DHT11 라이브러리를 사용하지 않는 소스가 제대로 동작하질 않아서 DHT11 라이브러리를 사용했습니다. 라이브러리를 소스 아래 링크에서 다운로드 받아서 설치하세요. (아두이노 설치 폴더 / libraries 폴더에 복사)
#include <DHT11.h> int pin=2; // 연결한 아두이노 디지털 핀 번호 DHT11 dht11(pin); void setup() { Serial.begin(9600); } void loop() { int err; float temp, humi; if((err=dht11.read(humi, temp))==0) { Serial.print("temperature:"); Serial.print(temp); Serial.print(" humidity:"); Serial.print(humi); Serial.println(); } else { Serial.println(); Serial.print("Error No :"); Serial.print(err); Serial.println(); } delay(DHT11_RETRY_DELAY); //delay for reread }
배선만 정확하다면 에러없이 Serial Monitor 창에 온도와 습도가 표시될 것입니다. 사용된 DHT11 라이브러리는 아래 링크에서 받으세요.
[wpdm_file id=15]