아두이노 온습도센서 DHT11 모듈 사용 예제

메이커 2018-08-19 (일) 22:26 1년전 3058  

DHT 11 모듈은 디지털 온습도센서로써 본래 4개의 다리와 별도의 배선을 통해 사용가능한 DHT11을 3개의 핀으로

사용할 수 있도록 모듈화된 제품으로 간단하게 VCC(+)와 GND(-), OUT핀 배선으로 온습도를 센싱할 수 있습니다.

7595aa66b97a8262ba54081667a4c0aa_1534685


■ 진행 전 알면 좋은 내용

■ 준비물 (Items)
  • DHT11 온습도 센서 모듈

  • 아두이노 우노 보드

  • 우노 케이블 (USB - B)

  • 400핀 브레드 보드

  • M-M 케이블


■ 사양 (Specification)
  • 주변 온습도 측정가능

  • 온도 사양 : 분해능  1℃ / 정확도 ±2℃ / 측정 범위 0~50℃

  • 습도 사양: 분해능 1%RH / 정확도 ±5%RH(0~50℃) / 측정범위 20~90% RH (25℃)


■ 연결 회로도 (Fritzing) 

7595aa66b97a8262ba54081667a4c0aa_1534685


■ 샘플코드 (Sample Code) 

//라이브러리와 소스 파일은 첨부하였습니다.
#include <dht11.h>                                   // dht11.h 라이브러리를 불러옵니다.
dht11 DHT11;                                           // DHT11이라는 객체를 만들고 dht11의 내용을 넣어줍니다.
#define DHT11PIN 2                                 // DHT11PIN을 2로 설정합니다.
void setup()
{
  Serial.begin(9600);                                       //  시리얼 통신을 사용하기 위해 보드레이트를 9600으로 설정합니다.
  Serial.println("DHT11 TEST PROGRAM ");       // 'DHT11 TEST PROGRAM'를 시리얼 통신으로 송신하고 줄을 바꿉니다.
  Serial.print("LIBRARY VERSION: ");               // 'LIBRARY VERSION: '를 시리얼 통신으로 송신합니다.
  Serial.println(DHT11LIB_VERSION);               // DHT11LIB_VERSION 변수값을 시리얼 통신으로 송신하고 줄을 바꿉니다.
  Serial.println();                                          // 줄을 바꿉니다.
}
double Fahrenheit(double celsius)                // Fahrenheit라는 함수를 만듭니다. 함수의 입력값은 celsius에 저장됩니다.
{
  return 1.8 * celsius + 32;                           // 입력된 celsius값을 1.8를 곱하고 32를 더하여 출력합니다.
}
void loop()
{
  Serial.println("\n");                                  // 줄바꿈을 츨력하고 줄을 바꿉니다 (2줄을 바꿈)
  int chk = DHT11.read(DHT11PIN);                // DHT11PIN에서 받은 값을 chk에 저장합니다.
  Serial.print("Humidity (%): ");                     // 'Humidity (%): '를 시리얼 통신으로 출력합니다.
  Serial.println((float)DHT11.humidity, 2);       // DHT11.humidity 값을 소수점 2자리수까지 출력하고 줄을 바꿉니다.
  Serial.print("Temperature (oC): ");             // 'Temperature (oC): '를 시리얼 통신으로 출력합니다.
  Serial.println((float)DHT11.temperature, 2);  // DHT11.temperature 값을 소수점 2자리수까지 출력하고 줄을 바꿉니다.
  Serial.print("Temperature (oF): ");             // 'Temperature (oF): '를 시리얼 통신으로 출력합니다.
  Serial.println(Fahrenheit(DHT11.temperature), 2); // DHT11.temperature을 소수점 2자리수까지 출력하고 줄을 바꿉니다.
  delay(2000);                                          // 2초동안 지연시킵니다.
}

 출력 사진 (Picture)


7595aa66b97a8262ba54081667a4c0aa_1534685


▶아래 플러스 친구 버튼을 통해 다양한 정보와 교제 자료 및 이벤트등의 소식을 받아보실 수 있습니다.




모바일 버전으로 보기