아두이노 메가 기반 고급 홈 모니터링 시스템: IoT 센서 연동
부품 및 소모품
| 아두이노 메가 2560 |
|
1 |
| 아두이노 이더넷 보드 |
|
1 |
| 4x20 LCD (I2C 인터페이스) |
|
1 |
| DHT22 온습도 센서 |
|
1 |
| DS3231 RTC 모듈 |
|
1 |
| HC-SR04 초음파 거리 센서 |
섬프 수위 측정용 |
1 |
| OSH Park 커스텀 PCB |
인터페이스 보드 및 아눈시에이터 보드 |
1 |
프로젝트 소개
딸의 집에 Ecobee 스마트 온도조절기를 설치하며 홈 모니터링을 시작했습니다. Ecobee 단종 후 섬프 수위, 홍수 감지, 정전 알림 등 더 많은 항목을 모니터링할 대안이 필요했습니다. 다양한 오픈 소스 프로젝트에서 코드와 설계를 참고했으며, PushingBox를 활용한 원격 알림이 핵심입니다.
시스템 구성
- 아두이노 메가 2560 + 이더넷 실드로 로컬 웹 서버 구축
- Eagle CAD로 설계한 커스텀 PCB(OSH Park 제작)로 7개 드라이 컨택트, 온습도 센서, RTC, 초음파 센서 인터페이스
- 4x20 LCD로 실시간 상태 표시
- 8개 LED로 알람 상태 표시: 앰버(알람 발생), 그린(알람 해제됨), 오프(리셋됨)
- 리셋 버튼으로 그린 LED 클리어, 메시지 활성화 버튼으로 PushingBox 알림 온/오프
웹 인터페이스
로컬 네트워크에서만 접속 가능(보안상 포트 포워딩 안 함). jqPlot 라이브러리로 실시간 차트 및 게이지 표시. 섬프 레벨, 온도, 습도, 각 알람 입력 상태를 시각화. 알람 임계값: 섬프 센서에서 10인치 미만 시 알람 발생.
알람 로직
- 앰버 LED: 알람 활성 상태(조건 만족 시 점등)
- 그린 LED: 알람이 발생했다가 해제된 상태(리셋 버튼으로 소등 가능)
- 앰버 LED는 조건이 해소될 때까지 유지
소스 코드
아두이노 스케치 (C/C++)
주요 라이브러리: SPI, Ethernet, SD, Wire, LiquidCrystal_I2C, DHT, NewPing, RTClib, RTC_DS3231. JSONP 방식으로 웹 페이지에 센서 데이터 제공. PushingBox HTTP GET 요청으로 알림 전송(최대 5분 간격). 알람 입력 10개(섬프, 홍수, 정전, Aux 1~5) 모니터링.
웹 페이지 (JavaScript/HTML)
jqPlot 차트, 게이지 라이브러리, jQuery 사용. 3초마다 아두이노에서 JSONP 데이터 폴링. 실시간 차트 업데이트(최대 100 포인트), 게이지 값 갱신, 알람 상태 텍스트 표시. 로컬 JS/CSS 파일 필요.
회로도
인터페이스 보드 및 아눈시에이터 보드 회로도 (Eagle 파일: LED BAR 2.sch)