초급⏱ 예상 시간: 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단계회로 연결하기
- LCD의 SDA를 A4에, SCL을 A5에 연결합니다.
- LCD의 VCC를 5V, GND를 GND에 연결합니다.
- DHT11의 데이터 핀을 D2에 연결하고 10kΩ 풀업 저항을 연결합니다.
- 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단계업로드 및 테스트
- Arduino IDE 라이브러리 매니저에서 'DHT sensor library'와 'LiquidCrystal I2C'를 설치합니다.
- 코드를 업로드합니다.
- LCD에 온도와 습도가 2초마다 갱신되며 표시됩니다!
💡 팁: 센서에 입김을 불면 습도 변화를 빠르게 확인할 수 있어요.