초급⏱ 예상 시간: 35분📝 4단계

LCD 온습도 모니터

DHT11 온습도 센서로 측정한 값을 LCD에 실시간으로 표시하는 온습도계를 만듭니다.

🧩 필요한 모듈

Arduino Uno
브레드보드
점퍼 와이어
LCD 디스플레이 (I2C 16x2)
저항 (220Ω / 10kΩ)
온도 센서 (DHT11)

📖 단계별 설명서

📝

1단계준비물 확인

다음 부품들을 준비해주세요:

  • Arduino Uno 1개
  • 브레드보드 1개
  • 점퍼 와이어 6개
  • DHT11 온습도 센서 1개
  • I2C LCD 디스플레이 (16x2) 1개
  • 10kΩ 저항 1개

💡 팁: I2C LCD는 배선이 4개뿐이라 일반 LCD보다 훨씬 간편합니다.

📝

2단계회로 연결하기

  1. LCD의 SDA를 A4에, SCL을 A5에 연결합니다.
  2. LCD의 VCC를 5V, GND를 GND에 연결합니다.
  3. DHT11의 데이터 핀을 D2에 연결하고 10kΩ 풀업 저항을 연결합니다.
  4. DHT11의 VCC를 5V, GND를 GND에 연결합니다.

📐 회로도

회로도 이미지

/images/projects/lcd-thermometer-circuit.png

📝

3단계코드 작성하기

DHT 라이브러리와 LiquidCrystal_I2C 라이브러리를 설치한 뒤 아래 코드를 입력합니다.

code.ino
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();
  lcd.backlight();
  dht.begin();
  lcd.setCursor(0, 0);
  lcd.print("ModuKit Thermo");
  delay(2000);
  lcd.clear();
}

void loop() {
  float temp = dht.readTemperature();
  float hum = dht.readHumidity();

  if (isnan(temp) || isnan(hum)) {
    lcd.setCursor(0, 0);
    lcd.print("Sensor Error!   ");
    return;
  }

  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temp, 1);
  lcd.print((char)223);
  lcd.print("C   ");

  lcd.setCursor(0, 1);
  lcd.print("Hum:  ");
  lcd.print(hum, 1);
  lcd.print("%    ");

  delay(2000);
}
+25 줄 더 보기

💡 팁: LCD 주소가 0x27이 아닐 수 있습니다. I2C 스캐너 코드로 확인해보세요.

📝

4단계업로드 및 테스트

  1. Arduino IDE 라이브러리 매니저에서 'DHT sensor library'와 'LiquidCrystal I2C'를 설치합니다.
  2. 코드를 업로드합니다.
  3. LCD에 온도와 습도가 2초마다 갱신되며 표시됩니다!

💡 팁: 센서에 입김을 불면 습도 변화를 빠르게 확인할 수 있어요.

🎉

축하합니다!

"LCD 온습도 모니터" 프로젝트를 완성했습니다!