비접촉 수도꼭지 & 문 연동 제어: 코로나19 대비 안전한 스마트 위생 솔루션
프로젝트 개요
코로나19 팬데믹 상황에서 손 씻기 후 오염된 수도꼭지나 문손잡이를 만지지 않도록, 초음파 센서로 손을 감지해 자동으로 물이 나오는 비접촉 수도꼭지와 손 씻기 완료 후 IR 센서로 손을 감지하면 서보 모터로 문을 열어주는 출입 제어 시스템을 아두이노 우노(Arduino UNO) 하나로 통합 구현한 저비용(약 $11) 프로토타입입니다. 상점, 사무실, 가정 현관 등에 적용 가능하며, 알코올 손소독제 디스펜서로도 변형 가능합니다.
시스템 동작 시나리오
- 손 씻기: 사용자가 수도꼭지 아래 손을 가져옴 (초음파 센서 거리 < 15cm) → 릴레이 ON → 잠수 펌프(또는 솔레노이드 밸브) 작동 → 물 공급 (20초 권장 문구 표시)
- 손 씻기 완료 판단: 물 멈춤 후 사용자가 IR 센서 앞(2cm 이내)에 손 내밀면 → 서보 모터 90° 회전 → 문 열림 (10초 유지 후 자동 닫힘)
- 손 씻지 않고 진입 시도: IR 센서 감지 시 손 씻기 상태 플래그(
state==0)면 → LCD에 "손을 씻으세요" 경고 표시, 문 열리지 않음
필수 부품
| 부품 | 수량 | 비고 |
| Arduino UNO | 1 | 메인 컨트롤러 |
| HC-SR04 초음파 거리 센서 | 1 | 손 감지 (Trig=D5, Echo=D4) |
| IR 추적 센서 (반사형) | 1 | 손 감지 (D3, LOW 활성) |
| SG90 마이크로 서보 모터 | 1 | 문 열림 제어 (D9) |
| 1채널 릴레이 모듈 (액티브 LOW) | 1 | 펌프/밸브 제어 (D6) |
| 잠수 펌프 (또는 솔레노이드 수전 밸브) | 1 | 외부 전원(5V/12V) 필요, 릴레이로 스위칭 |
| 16x2 I2C LCD (RGB 백라이트) | 1 | 상태 메시지 표시 (주소 0x27) |
| 브레드보드 (전원 레일만 사용), 점퍼 와이어 | 1식 | 배선용 |
| 물통, 튜브(수도꼭지 역할), 문 모형(서보 혼 연결) | 1식 | 프로토타입 구조물 |
회로 연결 요약
- 초음파: Trig→D5, Echo→D4, VCC/GND→5V/GND
- IR 센서: OUT→D3, VCC/GND→5V/GND
- 서보: 신호→D9, VCC/GND→5V/GND (서보 전류 별도 공급 권장)
- 릴레이: IN→D6, VCC/GND→5V/GND, COM/NO에 펌프 전원 라인 직렬 연결
- LCD I2C: SDA→A4, SCL→A5, VCC/GND→5V/GND
소프트웨어 핵심 로직
// 초음파 거리 측정
digitalWrite(trig, LOW); delayMicroseconds(5);
digitalWrite(trig, HIGH); delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration/2) * 0.0343; // cm 단위 (343m/s)
// 손 씻기 감지 (15cm 이내)
if (distance > 1 && distance < 15) {
digitalWrite(Relay, HIGH); // 펌프 ON
state = 1; // 손 씻기 완료 플래그
lcd: "Hands detected", "Wash hands - 20s"
delay(1000); // 릴레이 채터링 방지
lcd: "You are safe now"
} else {
digitalWrite(Relay, LOW); // 펌프 OFF
}
// 문 열림 제어 (IR 센서 LOW = 감지)
if (state == 1 && value == LOW) { // 손 씻은 후 진입
servo.write(90); // 문 열기
lcd: "You may go in", "10 seconds left"
delay(10000);
servo.write(0); // 문 닫기
state = 0; // 플래그 리셋
lcd: "Wash your hands before you enter"
} else if (state == 0 && value == LOW) { // 손 안 씻고 진입 시도
lcd: "Wash your hands to grant access"
}
제작 및 설치 팁
- 펌프 대신 솔레노이드 밸브 권장: 수압 배관 직결 시 더 위생적, 내구성 우수. 릴레이는 솔리드 스테이트 릴레이(SSR) 사용 시 소음/수명 개선.
- 전원 분리: 펌프/밸브 구동 전원은 아두이노 5V 레귤레이터 용량 초과하므로 반드시 별도 어댑터/배터리 사용, 릴레이로만 제어.
- 방수 처리: 센서, 아두이노, 릴레이는 방수 박스 내장. 초음파/IR 센서만 전면 노출.
- 자동문 연동: 기존 자동문(슬라이딩 도어) 컨트롤러의 '열림' 입력 단자에 릴레이 접점 병렬 연결하면 별도 서보 없이 연동 가능.
- 손소독제 디스펜서 변형: 펌프를 점도 낮은 액체용 펌프로 교체, 용기 밀폐 필수(알코올 증발 방지).
코드 개선 포인트 (실사용 시 필수)
- 비블로킹 타이밍:
delay() 대신 millis() 기반 상태 머신으로 재작성 → 센서 폴링, 디스플레이 업데이트 동시 수행
- 디바운싱/필터링: 초음파/IR 센서 노이즈 대비 이동 평균, 히스테리시스 임계값 적용
- 전원 장애 복구: 워치독 타이머, EEPROM에 상태 저장으로 재부팅 후 복구
- 다중 사용자 처리: 동시에 여러 명 접근 시 큐잉 로직, 문 열림 시간 연장
- 데이터 로깅: 사용 횟수, 시간 기록 → 위생 관리 통계 활용
확장 아이디어
- IoT 연동: ESP8266/ESP32 추가로 사용 현황 클라우드 전송, 원격 모니터링, 알림
- 비접촉 체온계 통합: MLX90614 적외선 온도 센서로 발열 선별 동시 수행
- 음성 안내: DFPlayer Mini + 스피커로 다국어 안내 멘트 출력
- 태양광 충전: 야외 설치 시 패널+배터리+충전 컨트롤러로 무전원 운용
안전 및 위생 주의사항
- 이 프로토타입은 개념 검증용이며, 의료/식품 시설 등 고위생 요구 환경에는 인증된 상용 제품 사용 권장.
- 물/전기 혼용 시 감전 위험 방지를 위한 접지, 누전 차단기, 방수 커넥터 필수.
- 서보 모터로 실제 문 열기 시 기계적 안전(끼임 방지, 비상 해제) 장치 별도 필요.
- 센서 렌즈 오염 시 오동작하므로 정기 청소 스케줄 수립.
팬데믹 시기에 메이커들이 빠르게 프로토타이핑하여 현장 적용 가능한 솔루션을 제시한 좋은 사례입니다. 아두이노 기초 센서 제어, 상태 머신, 액추에이터 구동을 종합적으로 학습할 수 있으며, 실용적인 위생 안전 시스템으로 발전시킬 잠재력이 큽니다. 전체 코드와 회로도 이미지는 프로젝트 페이지의 Code 및 Schematics 섹션에서 확인하세요.