아두이노

아두이노로 온습도 측정 시스템 만들기 – DHT11 센서 완전 정복

게임교수 2025. 4. 18. 08:04
반응형

아두이노로 온습도 측정 시스템 만들기 – DHT11 센서 완전 정복

날씨가 변덕스러운 요즘, 실내 환경을 스스로 관리하고 싶다는 생각, 해보셨나요? DHT11 센서를 활용하면 아두이노로 손쉽게 온도와 습도를 측정하고, 이를 다양한 방식으로 출력하거나 전송할 수 있습니다. 이 글에서는 DHT11을 중심으로 아두이노와 연결하여 온습도 데이터를 측정, 출력, 응용하는 방법까지 단계별로 안내합니다.


1. DHT11 센서란?

DHT11은 저가형 온습도 센서로, 온도(050도)와 습도(2090%)를 측정할 수 있으며, 디지털 신호로 값을 전달합니다. 3핀 또는 4핀 모델이 있으며, 5V 전원과 GND, 그리고 데이터 핀으로 구성되어 있습니다.


2. 준비물 리스트

  • 아두이노 UNO 또는 Nano
  • DHT11 온습도 센서
  • 점퍼선
  • 브레드보드
  • (선택) 16x2 LCD, 블루투스(HC-06), OLED

3. 회로 연결

DHT11 핀 연결 대상

VCC 5V
DATA D2 (예시)
GND GND

4. 코드 작성 및 설명

#include <DHT.h>

#define DHTPIN 2     // DHT 데이터 핀 연결
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  Serial.println("DHT11 센서 시작...");
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("센서 읽기 실패");
    return;
  }

  Serial.print("온도: ");
  Serial.print(t);
  Serial.print(" *C\t습도: ");
  Serial.print(h);
  Serial.println(" %");

  delay(2000);
}

이 코드는 시리얼 모니터를 통해 2초마다 온도와 습도를 출력하는 기본 예제입니다.



5. 출력 방식 확장

a. LCD로 출력하기

I2C 방식의 LCD를 사용하면 연결 핀 수를 줄일 수 있어 간단합니다. LiquidCrystal_I2C 라이브러리를 사용하며, 기본 회로에 LCD를 추가로 연결합니다.

b. OLED 출력

보다 세련된 디스플레이를 원한다면 0.96" OLED 디스플레이(SPI 또는 I2C)를 사용할 수 있습니다. Adafruit_SSD1306 라이브러리가 필요합니다.

c. 스마트폰으로 전송 (HC-06 블루투스)

SoftwareSerial을 이용해 HC-06 모듈로 데이터를 전송하면 스마트폰 앱에서 실시간으로 확인할 수 있습니다. 이 경우 블루투스 통신 속도는 9600bps로 맞추어야 합니다.


6. 활용 아이디어

  • 환기 시스템 자동화 (온도/습도 기준 팬 제어)
  • 실내 공기질 모니터링 시스템
  • 어린이방/반려동물 공간 온습도 관리
  • 스마트홈 IoT 기초 프로젝트

7. 주의사항 및 팁

  • DHT11은 반응 속도가 느리고 정밀도가 낮기 때문에, 더 정밀한 용도에는 DHT22를 고려하세요.
  • 센서 데이터가 NaN일 경우 전원이나 연결상태를 점검하세요.
  • 실내외 환경 차이에 따라 센서 반응이 달라질 수 있으니, 실사용 위치에서 일정 시간 켜두고 안정화 후 사용하는 것이 좋습니다.


8. 마무리

DHT11을 활용한 온습도 측정 시스템은 입문자에게 매우 적합한 프로젝트입니다. 단순히 온도를 측정하는 것을 넘어서, 다양한 디스플레이나 무선 통신 모듈과의 연계를 통해 충분히 확장 가능한 기초 인프라가 됩니다.

이제 여러분도 직접 실내 환경을 제어할 수 있는 기초 시스템을 구성해보세요. 다음 글에서는 DHT11 데이터를 웹으로 전송하거나, 로깅하는 방법도 다뤄볼 예정입니다.

함께 성장하는 아두이노 블로그, 다음 편에서 또 만나요!

반응형