아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
부품 및 소모품
| 릴레이 모듈 (제네릭) |
1개 |
| 아두이노 우노 |
1개 |
| 점퍼 와이어 |
1세트 |
| DHT11 온습도 센서 (4핀) |
1개 |
| 10kΩ 저항 |
1개 |
앱 및 온라인 서비스
프로젝트 소개
⚠ 위험! 이 프로젝트는 고전압/대전류를 다룹니다. 부주의나 실수로 심각한 부상 또는 사망에 이를 수 있습니다. 모든 책임은 제작자에게 있으며, 안전에 각별히 유의하세요.
실내 습도가 낮을 때 자동으로 가습기를 켜주는 장치입니다. DHT11 센서로 습도를 측정하여 30% 미만이면 릴레이를 통해 가습기 전원을 연결하고, 40% 이상이 되면 끕니다. 10분 쿨다운 기간을 두어 잦은 온/오프를 방지합니다.
회로 구성
- 가습기 플러그의 '핫(살아있는)' 선을 찾아 약 30cm 지점에서 절단합니다. (플러그 좁은 쪽 핀이 핫 라인입니다.)
- 절단된 선의 피복을 1~1.5cm 벗겨 릴레이 모듈의 COM 단자와 NO(Normally Open) 단자에 각각 연결합니다.
- DHT11 데이터 핀을 아두이노 2번 핀에, 릴레이 제어 핀을 7번 핀에 연결합니다. (풀업용 10kΩ 저항 필요)
주의: 릴레이 보드나 노출된 도체에 손을 대지 마세요. 감전 위험이 있습니다.
코드 설명
아두이노 IDE에서 DHT 라이브러리를 설치한 후 제공된 코드를 업로드합니다. 주요 로직:
- 5초마다 습도 측정
- 습도 < 30% → 릴레이 ON (가습기 작동), 40% 도달까지 10분마다 재측정
- 습도 ≥ 30% → 릴레이 OFF, 10분 대기 후 재측정
코드
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("ready.");
pinMode(7, OUTPUT);
dht.begin();
digitalWrite(7, HIGH); // 릴레이 OFF (액티브 로우 가정)
}
void loop() {
delay(5000);
float h = dht.readHumidity();
Serial.println(h);
if (h < 30) {
while (h < 40) {
h = dht.readHumidity();
digitalWrite(7, LOW); // 릴레이 ON
delay(1000 * 60 * 10); // 10분 대기
}
} else if (h > 30) {
digitalWrite(7, HIGH); // 릴레이 OFF
delay(1000 * 60 * 10);
}
}
회로도
프로젝트 페이지의 회로도 이미지를 참고하세요. (아두이노, DHT11, 릴레이 모듈 간 연결)