아두이노 구동 그로우박스 컨트롤러 - 오픈소스 펌웨어 및 하드웨어 가이드
부품 및 소모품
| 부품 | 수량 |
| 아두이노 메가 2560 | 1 |
| 아두이노 이더넷 쉴드 2 | 1 |
| DHT22 온습도 센서 | 2 |
| Adafruit 방수 DS18B20 디지털 온도 센서 | 2 |
| 아두이노 4 릴레이 쉴드 | 1 |
| Seeed Grove - RTC | 1 |
필수 도구 및 장비
앱 및 온라인 서비스
프로젝트 개요
아두이노 그로우박스 컨트롤러가 GitHub에 공개되었습니다. 수년간 제 그로우박스용으로 개발한 펌웨어를 GPL3 라이선스로 마침내 공유합니다.
제 웹사이트에서는 그로우박스 제작 과정, 시간이 지나며 개선한 사항, 식물 성장 사진 등을 이미 공유했습니다.
아두이노 메가 2560 Rev.3 덕분에 이 오픈소스 펌웨어는 설정용 소형 웹 서버, EmonCMS 인스턴스로 데이터 전송, SD 카드 데이터 로깅 기능을 제공합니다. CSV 로그 파일은 그로우박스 컨트롤러 웹 페이지에서 다운로드할 수 있습니다.
아두이노 그로우박스 컨트롤러는 박스 내부와 외부의 온습도 측정에 DHT22 센서를, 화분 샘플과 지면 온도 모니터링에 DS18B20 센서를 사용합니다.
이더넷 쉴드로 원격 설정, 데이터 시각화, 로그 다운로드가 가능해 20x4 LCD 디스플레이는 필수는 아니지만 스마트폰이나 태블릿을 켜고 싶지 않을 때 유용합니다.
EmonCMS 통합으로 어디서든 이력 관리와 트렌드 모니터링이 가능합니다. 이미 에너지 모니터링에 EmonCMS를 사용 중이라면 여기에도 통합할 수 있습니다.
작년에는 고추만 재배했지만 2018년에는 토마토, 호박, 고추(매운 것 제외), 가지, 수박, 멜론을 재배해 밭에 심었습니다. 제가 사는 곳은 여름이 짧아 씨앗부터 밭에서 시작할 수 없어 조기 재배가 필요했습니다. 6월에 토마토를 먹는 건 정말 멋진 일이죠!
구현된 기능
환경 파라미터 제어
그로우박스 온도 제어
난방 임계값 설정 가능:
- 최소 온도: 이 임계값 미만일 때 히터 활성화
- 최대 온도: 이 임계값 초과 시 히터 비활성화
습도 임계값
가습기 임계값 설정 가능:
- 최소 습도: %RH 이하 시 가습기 활성화
- 최대 습도: %RH 초과 시 가습기 비활성화
지면/모래 온도
- 최소 지면 온도: 지면 온도가 이 임계값 미만이고 내부 온도도 최소 임계값 미만일 때 난방 활성화
- 최대 지면 온도: 내부 온도가 난방을 요구해도 지면 온도가 이 임계값 초과 시 난방 비활성화. 화분과 뿌리 손상 방지용
조명 제어
- 시작 시간(시/분): 조명 켜는 시간
- 종료 시간(시/분): 조명 끄는 시간
예: 오전 6시 30분 켜기, 오후 10시 30분 끄기 설정 시:
- 시작 시간: 6, 시작 분: 30
- 종료 시간: 22, 종료 분: 30
네트워크 설정
로컬 네트워크 파라미터:
- IP 주소: 원하는 고정 IP
- 서브넷 마스크
- 게이트웨이 IP 주소
- DHCP: 체크 시 위 설정 무시
팬 제어
일부 램프는 그로우박스 내부에서 열을 많이 내므로 '낮'과 '밤'에 다른 프로그램 설정 가능:
- 팬 - 조명 켜짐 시: 지속 시간(분), 활성화 간격(시간)
- 팬 - 조명 꺼짐 시: 지속 시간(분), 활성화 간격(시간)
실시간 시계 (RTC)
정확한 로그와 정전 시 프로그램 재시작을 위해 현지 시간 설정
데이터 수집 및 로깅 주기
컨트롤러는 빠르게 반응할 수 있지만(빠른 수집 주기) 모든 데이터가 필요하진 않으므로 로깅 주기는 느리게 설정했습니다. 두 파라미터를 분리한 이유입니다. 로깅 주기가 빠르면 CSV 파일이 커지고, EmonCMS 전송 데이터가 늘어나며 다운로드 시간이 느려집니다.
- 샘플링 레이트: 초 단위. 컨트롤러 빠른 반응 가능
- 전송 및 로그 레이트: 분 단위. CSV 업데이트 및 EmonCMS 데이터 전송 간격
아두이노 그로우박스 컨트롤러용 PCB
아두이노 메가용 '쉴드' 설계를 시작했습니다. 이더넷 쉴드, 릴레이, 센서를 쉽게 연결할 수 있도록 Eagle로 설계했으며 소스는 GitHub에 공개되어 있습니다.
향후 계획
3년째 고추(및 다른 채소) 재배 중이지만 향후 통합할 기능들이 아직 남아 있습니다:
- 고체 상태 릴레이(SSR)로 발열체 제어하여 PID 난방 구현 - 에너지 효율과 온도 제어 향상
- MQTT 지원 - 홈 오토메이션 시스템이나 ThingsBoard.io 같은 IoT 플랫폼과 통합
- NTP로 실시간 시계 동기화 - 오차 방지
- 예열: 조명 끄기 전에 난방 시작하여 온도 안정성 향상
- 샘플 화분 프로브를 이용한 관수 제어
이 프로젝트를 즐겨주시길 바랍니다! 여러분의 재배 경험도 공유해 주세요!
소스 코드
아두이노 그로우박스 컨트롤러
그로우박스 컨트롤러용 아두이노 펌웨어: GitHub 저장소
회로도
아두이노 그로우박스 쉴드
Eagle 회로도 및 PCB (아직 제작 전): GitHub 저장소