산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

워터파이(WaterPi): 화분 원격 급수·모니터링 지능형 시스템

필요한 부품 및 소모품

부품 수량
라즈베리 파이 1 모델 B 1
아두이노 우노 1
DHT11 온습도 센서 (4핀) 1
YL-69 토양 수분 센서 1
수위 센서 1
캐릭터 LCD 16x2 1
워터 펌프 모터 1
5V 릴레이 1
AA 배터리 홀더 4구 1

앱 및 온라인 서비스

프로젝트 소개

소개

집에서 식물을 키우고 싶지만 바쁜 일상 탓에 관리가 어려운 사람들을 위한 시스템입니다. 식물 키우기는 매일 물 주기 등 정기적인 관리가 필요한데, 깜빡하거나 출장이 잦으면 식물을 포기하게 됩니다. WaterPi은 이런 정기 작업을 자동화하고, 원격 제어도 가능하게 해줍니다.

시스템은 온도, 습도, 토양 수분을 모니터링하고, 원격으로 급수하며, 모든 데이터를 AWS IoT → DynamoDB로 저장합니다. 수집된 데이터는 다양한 차트로 시각화해 식물이 잘 자라는 조건을 이해하는 데 도움을 줍니다.

라즈베리 파이에서 Node.js 애플리케이션(Johnny-Five 라이브러리 사용)으로 센서와 펌프를 제어하고, AWS IoT SDK로 클라우드와 통신합니다.

1단계: DynamoDB 테이블 생성

2단계: AWS IoT 설정

  1. Thing 생성: 이름 raspi-water-pump
  2. 정책 생성: 이름 pump-policy, Action iot:*, Resource *, Allow
  3. 인증서 생성 (1-Click): 퍼블릭 키, 프라이빗 키, 인증서 다운로드
  4. 인증서 활성화 → 정책 연결(pump-policy) → Thing 연결(raspi-water-pump)
  5. 규칙 생성:
    • 이름: saveToDynamoDB
    • 속성: *
    • 토픽 필터: sensor/data
    • 액션: 'DynamoDB 테이블에 메시지 삽입'
    • 테이블: waterpi_sensor_data
    • 해시 키: ${topic()}, 레인지 키: ${timestamp()}
    • 역할: 새 역할 생성 후 허용

3단계: 아두이노 준비 (아날로그 센서 중계용)

토양 수분 센서와 수위 센서는 아날로그 출력이라 라즈베리 파이 GPIO에 직접 연결할 수 없습니다. 아두이노가 아날로그 값을 읽어 디지털(펌웨어 표준 Firmata)로 파이에 전송하는 중계 역할을 합니다.

  1. 아두이노 IDE에서 File > Examples > Firmata > StandardFirmata 열기 → 업로드.
  2. 배선:
    • 토양 수분 센서: VCC→핀 7, GND→GND, AO→A1
    • 수위 센서: +→핀 4, -→GND, S→A0
  3. 아두이노를 USB로 라즈베리 파이에 연결. 센서들을 화분과 물탱크에 설치.

4단계: 라즈베리 파이 배선

5단계: 라즈베리 파이에서 Node.js 앱 실행

git clone git@github.com:demirhanaydin/waterpi-node.git
cd waterpi-node
npm install

AWS IoT에서 다운로드한 퍼블릭 키, 프라이빗 키, 인증서, 루트 CA 인증서(rootCA.pem)를 certs 폴더에 넣습니다.

device.js를 열어 파일 경로와 IOT_DEVICE_URL (예: https://xxxxxxx.iot.us-east-1.amazonaws.com)을 수정합니다.

sudo node index.js

정상이면 LCD에 센서 값이 20초마다 갱신되어 표시되고, DynamoDB 테이블에도 데이터가 쌓입니다.

6단계: 웹 애플리케이션 실행 (원격 제어·시각화)

Sinatra(루비) 기반 웹앱으로 DynamoDB 데이터를 Highcharts로 시각화하고, 펌프 원격 제어(시작/정지 버튼 → AWS IoT 퍼블리시 → 라즈베리 파이 수신 → 펌프 제어) 기능을 제공합니다.

git clone git@github.com:demirhanaydin/waterpi-web.git
cd waterpi-web
bundle install

certs 폴더에 인증서 파일들을 넣고 boot.rb에 AWS 액세스 키/시크릿 등 자격 증명 입력.

ruby app.rb

브라우저에서 https://localhost:4567/ 접속 → 센서 데이터 차트 확인. 'Start' 버튼으로 원격 급수 가능.

코드

라즈베리 파이 Node.js 소스

github.com/demirhanaydin/waterpi-node – 복제 후 certs 폴더에 인증서 배치, device.js에 IoT 엔드포인트 설정.

WaterPi 웹 클라이언트

github.com/demirhanaydin/waterpi-web – boot.rb에 자격 증명 설정 후 실행.

회로도

제조공정

  1. ADLINK, 원격 시설 모니터링 및 예측 유지보수를 위한 고급 MCM 솔루션 출시
  2. 라즈베리 파이 제어 아쿠아포닉스 시스템: 빌드 가이드 & 코드
  3. 홈 에너지 센터: 라즈베리 파이와 Moteino로 태양광 PV, 열 패널, 실내 온도 모니터링
  4. 라즈베리 파이 3와 PubNub로 원격 기상 모니터링하기
  5. 라즈베리 파이 & DS18B20으로 다중 센서 온도 & 조도 모니터링 시스템 구축
  6. 라즈베리 파이 센서 및 액추에이터 제어 마스터하기: 가속도계, 서보 모터, 데이터 스트리밍
  7. 라즈베리파이 홈 보안 시스템: PIR 모션 감지 + 카메라 이메일 알림
  8. GE, SmartSignal 인수 완료로 원격 모니터링·예측 진단 역량 강화
  9. 시스코, IT·OT 환경을 위한 클라우드 관리형 IoT 모니터링 출시
  10. IoT 기반 유류 및 디젤 탱크 원격 모니터링 시스템