히스테리시스 기반 아두이노 온도 제어 시스템
프로젝트 개요
아두이노 101(또는 우노 호환 보드)과 DHT22 온습도 센서를 사용하여, 히스테리시스(Hysteresis) 제어 알고리즘을 적용한 간단한 온도 제어 시스템을 구현합니다. 설정 온도(25°C)에 도달하면 냉방 장치(녹색 LED)를 켜고, 하한 온도(23°C)까지 떨어지면 냉방을 끄고 대기(적색 LED)하는 동작을 반복합니다. 이는 에어컨, 히터, 인큐베이터 등 온도 제어가 필요한 장치의 기본 제어 로직을 이해하고 실습하기에 적합한 예제입니다.
필수 부품
| 부품 | 수량 | 비고 |
| Arduino 101 (또는 Arduino Uno) | 1 | 메인 컨트롤러 |
| DHT22 온습도 센서 | 1 | 온도/습도 측정, 10kΩ 풀업 저항 필요 |
| DFRobot LCD 버튼 실드 (16x2) | 1 | 데이터 표시 및 버튼 입력용 (일반 LCD + I2C 모듈 대체 가능) |
| LED (녹색, 적색) | 각 1 | 냉방 ON/OFF 상태 표시, 330Ω 저항 직렬 연결 |
| 저항 10kΩ | 1 | DHT22 데이터 라인 풀업 |
| 저항 330Ω | 2 | LED 전류 제한 |
| 브레드보드 및 점퍼 와이어 | 1식 | 회로 구성 |
히스테리시스 제어란?
히스테리시스는 상한 임계값(Set Point + Δ)과 하한 임계값(Set Point - Δ)을 두어, 출력이 자주 켜지고 꺼지는 현상(채터링, Chattering)을 방지하는 제어 방식입니다. 본 프로젝트에서는:
- 목표 온도: 25°C
- 히스테리시스 폭: 2°C (상한 25°C, 하한 23°C)
- 동작: 온도 ≥ 25°C → 냉방 ON (녹색 LED) / 온도 ≤ 23°C → 냉방 OFF (적색 LED)
이 방식은 센서 노이즈나 미세한 온도 변동으로 인한 릴레이/컴프레서의 빈번한 동작을 막아 장비 수명을 연장하고 안정적인 제어를 가능하게 합니다.
회로 연결
- DHT22: VCC → 5V, GND → GND, DATA → 디지털 핀 12 (10kΩ 풀업 저항을 DATA-VCC 사이에 연결)
- 녹색 LED (냉방 ON): 디지털 핀 3 → 330Ω → LED → GND
- 적색 LED (냉방 OFF): 디지털 핀 2 → 330Ω → LED → GND
- LCD 실드: 아두이노 위에 직접 장착 (핀 8,9,4,5,6,7 사용)
소프트웨어 구현 포인트
// 히스테리시스 제어 핵심 로직 (loop() 내부)
if (t >= 25 && a == LOW) { // 상한 도달 & 냉방 OFF 상태
digitalWrite(ledPin, HIGH); // 냉방 ON (녹색 LED)
digitalWrite(ledPin2, LOW); // 적색 LED OFF
a = HIGH; b = LOW; // 상태 플래그 갱신
}
else if (t <= 23 && b == LOW) { // 하한 도달 & 냉방 ON 상태
digitalWrite(ledPin2, HIGH); // 적색 LED ON (대기 표시)
digitalWrite(ledPin, LOW); // 냉방 OFF
a = LOW; b = HIGH; // 상태 플래그 갱신
}
millis() 기반 비블로킹 타이밍으로 2초마다 센서 읽기 수행
- 플래그 변수
a, b로 현재 제어 상태(냉방 중/대기 중) 추적
- LCD에 온도(°C), 습도(%), 현재 상태 실시간 표시
확장 아이디어
- 릴레이 모듈 추가: LED 대신 릴레이를 연결해 실제 에어컨/히터/팬 제어
- 설정값 조절: LCD 실드의 버튼을 이용해 상한/하한 온도 런타임 변경
- 데이터 로깅: SD 카드 모듈이나 시리얼 통신으로 온도 이력 저장
- PID 제어로 업그레이드: 히스테리시스보다 정밀한 제어가 필요할 때 PID 알고리즘 적용
- 무선 모니터링: ESP8266/ESP32 추가로 Blynk, MQTT, 웹 대시보드 연동
주의사항
- DHT22는 최소 2초 간격으로 읽어야 정확합니다. 코드의
interval = 2000을 준수하십시오.
- 실제 부하(에어컨 등) 제어 시 릴레이 드라이버 회로(트랜지스터, 옵토커플러) 필수
- 전원 노이즈가 큰 환경에서는 센서 배선을 짧게 하고 디커플링 커패시터 추가 권장
이 프로젝트는 히스테리시스 제어의 기본 원리를 아두이노로 구현해 보는 훌륭한 교육용 예제입니다. 제공된 코드와 회로도를 바탕으로 직접 조립·테스트해 보시고, 실제 응용 시스템으로 확장해 보시기 바랍니다. 전체 소스 코드와 회로도 이미지는 프로젝트 페이지의 Code 및 Schematics 섹션에서 다운로드 가능합니다.