본문 바로가기
아두이노

아두이노 온습도센서 활용하기.

by SwMaker_Jun 2024. 8. 21.
728x90
반응형

1. DHT 11 온습도 센서




2. DHT11 센서의 특징

 DHT11 센서는 다음과 같은 주요 특징을 가지고 있습니다:

  • 측정 범위 :
    • 온도: 0°C ~ 50°C (정확도 ±2°C)
    • 습도: 20% ~ 90% RH (정확도 ±5% RH)
  • 출력 : 디지털 신호로 온도와 습도 값을 전달합니다.
  • 전압 : 3.3V ~ 5.5V의 전압으로 동작합니다.
  • 응답 시간 : 1초에서 2초 정도로, 실시간 데이터 측정보다는 느리지만, 일반적인 환경 모니터링 용도로 충분합니다.
  • 크기 : 작은 크기로 다양한 프로젝트에 쉽게 통합할 수 있습니다.

 

3. DHT11 센서의 사용법

     DHT11 센서는 보통 3개의 핀을 가지고 있습니다:

  1. VCC: 전원 공급 (3.3V ~ 5V)
  2. GND: 접지
  3. DATA: 온도와 습도 데이터가 출력되는 핀

       아두이노와 같은 마이크로컨트롤러에 연결하여 코드를 작성하면, DHT11 센서로부터 온도와 습도 데이터를 쉽게

        읽어올 수 있습니다.

 

4. DHT11 센서의 활용 예시

DHT11 센서는 다음과 같은 프로젝트에서 사용할 수 있습니다:

  • 온습도 모니터링 시스템 : 실내나 실외의 온도와 습도를 측정하여, 쾌적한 환경을 유지할 수 있도록 알림을 주거나 자동으로 조절하는 시스템을 만들 수 있습니다.
  • 스마트 가전: 스마트 에어컨이나 히터 등에 연결하여, 현재 온도와 습도를 기반으로 자동으로 작동하도록 설정할 수 있습니다.
  • 기상 관측: 소규모 기상 관측 장비에 사용하여, 기온과 습도 데이터를 수집하고 분석할 수 있습니다.

   즉,  DHT11 센서는 간단하고 저렴하게 온도와 습도를 측정할 수 있는 센서로, 다양한 프로젝트에서  활용하기에 적합함.

 

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

   

     - 온습도센서를 사용하기 위해서는 아두이노에 온습도 (DHT11) 센서 코드를 사용할 수 있도록

        DHT11 관련 라이브러리를 설치해야한다. 

     

     - 아두이노 IDE 스케치창에서 라이브러리 매니저 검색.

라이브러리 검색

 

 

      - 아래 두가지 라이브러리를 설치

 

DHT sensor library by Adafruit 라이브러리

 

adafruit unified sensor 검색후 by Adafruit 라이브러리 설치

 

6. 아두이노 온습도 센서 회로연결

 

 

 

7. 온습도 센서  시리얼모니터 출력 코드

#include "DHT.h"

#define DHTPIN 2       // DHT 센서가 연결된 핀 번호
#define DHTTYPE DHT11  // 사용 중인 DHT 센서의 종류(DHT11)

DHT dht(DHTPIN, DHTTYPE); // DHT 센서 객체 생성

void setup() {
  Serial.begin(9600);  // 시리얼 통신 시작
  dht.begin();         // DHT 센서 초기화
}

void loop() {
  float humidity = dht.readHumidity();       // 습도 값 읽기
  float temperature = dht.readTemperature(); // 온도 값 읽기
 
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!"); // 읽기 실패 시 에러 메시지 출력
    return;
  }

  // 온도와 습도 값을 시리얼 모니터에 출력
  Serial.print("Temperature: ");
  Serial.print((int)temperature);
  Serial.print(" *C, ");
  Serial.print("Humidity: ");
  Serial.print((int)humidity);
  Serial.println(" %");

  delay(2000); // 2초 대기 후 다시 측정
}

   

   코드 설명:

  • DHT dht(DHTPIN, DHTTYPE); : DHT 센서를 사용하기 위해 센서 객체를 생성합니다.
  • Serial.begin(9600); : 시리얼 통신을 9600 보드레이트로 시작합니다.
  • dht.begin(); : DHT 센서를 초기화합니다.
  • float humidity = dht.readHumidity(); 및 float temperature = dht.readTemperature(); : 각각 습도와 온도를 읽어옵니다.
  • Serial.println: 시리얼 모니터에 온도와 습도 값을 출력합니다.
  • delay(2000);: 2초 동안 대기 후 루프를 반복하여 새로운 데이터를 읽습니다.

    이 코드는 온도와 습도를 2초 간격으로 시리얼 모니터에 출력합니다.

  

 

728x90
반응형