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

WaterPi:관엽식물 원격 급수 및 모니터링 시스템

구성품 및 소모품

라즈베리 파이 1 모델 B
× 1
Arduino UNO
× 1
DHT11 온도 및 습도 센서(4핀)
× 1
YL-69 토양 수분 센서
× 1
수위 센서
× 1
표준 LCD 16x2
× 1
워터 펌프 모터
× 1
5V 릴레이
× 1
4xAA 배터리 홀더
× 1

앱 및 온라인 서비스

Amazon Web Services AWS IoT
Amazon 웹 서비스 AWS DynamoDB
쟈니-파이브

이 프로젝트 정보

소개

이 시스템은 집에서 식물을 사랑하고 돌보고 싶지만 일상 업무에 매우 바쁜 사람들에게 적합한 솔루션입니다. 식물을 키우려면 매일 물을 주는 것과 같은 규칙적인 일이 있기 때문에 성공하려면 시간과 노력이 필요합니다. 사람들은 때때로 식물을 돌보는 것을 잊습니다. 또한 일부 사람들은 여행을 많이 하고 집에서 보내는 시간이 적습니다. 이러한 맥락에서, 그들은 일반적으로 관엽식물을 돌보기 위해 도움을 요청합니다. 그렇지 않으면 단순히 식물을 갖는 것을 포기합니다. WaterPican은 식물을 위한 규칙적인 일을 하는 사람들을 돕습니다. 또한 원격으로 제어할 수 있기 때문에 식물 소유자는 필요할 때 쉽게 관수 과정을 방해할 수 있습니다.


시스템은 장소의 온도와 습도, 땅의 토양 수분을 모니터링하고 원격으로 식물에 물을 준 다음 AWS IoT를 통해 모든 데이터를 DynamoDB에 저장합니다. 수집된 데이터는 식물이 잘 자라는 조건을 더 잘 이해할 수 있도록 다양한 차트와 그림으로 시각화됩니다.


Raspberry Pi는 모든 센서와 워터 펌프를 제어하는 ​​nodejs 애플리케이션을 실행합니다. 그 목적을 위해 나는 Johnny-Five 라이브러리를 사용하는 것을 선호했습니다. AWS와 통신하기 위해 javascript용 AWS IoT SDK를 사용했습니다.


1단계:DynamoDB 설정

DynamoDB는 센서에서 수집한 데이터를 저장하는 데 사용됩니다. DynamoDB 페이지로 이동하여 다음 속성으로 새 테이블을 만듭니다.

<울>
  • 테이블 이름:waterpi_sensor_data
  • 파티션 키:
  • 정렬 키 추가를 클릭하고 타임스탬프를 추가합니다.
  • 중요한 것은 키와 타임스탬프 유형이 문자열이어야 한다는 것입니다.

    2단계:AWS IoT 설정

    AWS IoT 콘솔 페이지로 이동하여 다음을 수행합니다.

    raspi-water-pump라는 이름으로 사물 만들기

    새 정책을 만듭니다. 정책 이름 pump-policy, 작업 iot:*, 리소스 * , 허용, 을 선택합니다. 그런 다음 문 추가 및 만들기를 클릭합니다.

    원클릭 인증서 만들기로 인증서 만들기 . 그런 다음 공개 키, 개인 키 및 인증서를 다운로드합니다.

    그런 다음 생성한 인증서를 선택하고 다음을 수행해야 합니다.

    <울>
  • 작업 클릭> 활성화 버튼 인증서
  • 작업> 정책 첨부를 클릭합니다. , 생성한 정책 이름을 입력하고 첨부를 클릭합니다.
  • 작업> 항목 첨부를 클릭합니다. , raspi-water-pump를 입력하고 첨부를 클릭합니다.
  • 다음을 사용하여 규칙을 만듭니다.

    <울>
  • 이름 DynamoDB에 저장
  • 속성 *
  • 주제 필터 센서/데이터
  • 데이터베이스 테이블에 메시지 삽입 작업 선택
  • 테이블 이름 waterpi_sensor_data
  • 해시 키 값 ${topic()}
  • 범위 키 값 ${timestamp()}
  • 역할 이름> 새 역할 만들기를 클릭합니다. 허용을 클릭합니다. 시작 페이지에서 버튼을 클릭한 다음 역할 이름 드롭다운에서 선택
  • 3단계:Arduino 준비

    수위 및 토양 수분 센서 출력은 아날로그 출력입니다. 따라서 Raspberry Pi에 직접 연결하는 대신 Arduino를 사용하여 해당 아날로그 값을 가져온 다음 Arduino를 통해 Pi에 디지털 값으로 보내는 것을 선호합니다. Arduino 코드는 pi로 업데이트되므로 이 단계에서 해야 할 일은 Arduino를 컴퓨터에 연결하고 표준 firmata를 업로드하는 것뿐입니다.

    Arduino IDE가 없는 경우 여기의 단계에 따라 설치하세요.

    <울>
  • 열기 아두이노 IDE
  • <울>
  • 파일> 예제> Firmata> StandardFirmata 열기 예
  • <울>
  • 업로드 Arduino에 스케치



  • 토양 수분을 Arduino 스키마에 배선하는 것은 다음과 같아야 합니다.

    <울>
  • VCC(전원) -> PIN 7
  • GND(접지) -> GND
  • AO(아날로그 출력) -> A1
  • 수위 센서를 Arduino 스키마에 연결하는 방법은 다음과 같아야 합니다.

    <울>
  • (+) -> PIN 4
  • (-) -> GND
  • S -> A0
  • 그런 다음 USB 케이블을 통해 arduino를 raspberry pi와 연결해야 합니다. 또한 토양 수분 센서를 화분에, 수위 센서를 물 탱크에 넣는 것을 잊지 마십시오.

    4단계:Raspberry Pi 준비

    라즈베리 파이가 있는 릴레이를 통해 LCD 화면, dht11, 워터 펌프를 연결합니다.

    DHT11을 Pi에 배선

    <울>
  • S -> GPIO4(핀 7)
  • (+) -> 3V3(핀 1)
  • (-) -> GND(핀 25)
  • LCD 화면 배선

    <울>
  • VCC -> 5V(핀 2)
  • GND -> GND(핀 6)
  • SDA -> GPIO2(핀 3)
  • SCL -> GPIO3(핀 5)
  • 워터 펌프용 배선 릴레이

    <울>
  • S -> GPIO18(핀 12)
  • (+) -> 5V(핀 4)
  • (-) -> GND(핀 20)

  • 릴레이 및 배터리 팩이 있는 워터 펌프 배선

    <울>
  • 워터 펌프에는 두 개의 케이블이 있습니다. 하나는 릴레이에 연결하고 다른 하나는 배터리 팩 케이블로 배선해야 합니다.
  • 다른 배터리 팩 케이블을 릴레이에 연결해야 합니다. 연결 방법을 알아보려면 위의 다이어그램을 확인하세요.
  • 5단계:Pi에서 Nodejs 앱 실행

    이 부분에서는 pi에서 nodejs 애플리케이션을 실행하여 센서 데이터를 수집하고 워터 펌프를 제어합니다. 라즈베리파이는 인터넷에 연결되어 있어야 합니다. 이더넷이나 Wi-Fi를 통해 할 수 있습니다.

    더 진행하기 전에 노드가 파이에 설치되어 있어야 합니다. 이전에 nodejs를 설치하지 않았다면 여기의 튜토리얼을 따라 설치하세요.

    라즈베리 파이를 연결하고 다음을 실행하십시오:

    git clone [email protected]:demirhanaydin/waterpi-node.gitcd waterpi-nodenpm 설치 

    aws iot 페이지에서 다운로드한 공개 키, 비공개 키 및 인증서 파일을 인증서 아래에 넣어야 합니다. 폴더. 또한 루트 인증서에서 루트 CA 인증서 파일을 다운로드해야 합니다. 해당 파일을 rootCA.pem으로 저장하고 certs 아래에 둡니다. 폴더.

    그런 다음 device.js를 엽니다. 좋아하는 텍스트 편집기로 파일을 만들고 파일 경로로 이 줄을 업데이트하세요. IOT_DEVICE_URL을 받아야 합니다. 항목을 클릭하여 AWS IoT 플랫폼에서 https://XXXXXXXXX.iot.us-east-1.amazonaws.com과 같아야 합니다.

    그런 다음 실행

    sudo 노드 index.js 

    모든 것이 정확하면 LCD 화면에 인쇄된 센서 값을 볼 수 있어야 합니다.

    또한 DynamoDB 테이블에 값이 표시되어야 합니다. 애플리케이션은 20초마다 센서 데이터를 IoT 플랫폼으로 전송합니다.

    6단계:웹 애플리케이션 실행

    기본 sinatra 응용 프로그램은 dynamodb 테이블에 있는 데이터를 highcharts를 사용하여 시각화합니다. 또한 원격으로 워터 펌프를 제어할 수 있습니다. 사용자가 시작/중지 버튼을 클릭할 때마다 AWS IoT 플랫폼에 이벤트를 게시합니다. Raspberry Pi는 이 이벤트를 받아 펌프를 시작할지 중지할지 여부를 처리합니다.

    튜토리얼을 계속하려면 Ruby가 컴퓨터에 설치되어 있어야 합니다. 그렇지 않은 경우 이 페이지를 확인하여 설치하십시오.

    터미널을 열고 다음 명령을 실행하십시오.

    git clone [email protected]:demirhanaydin/waterpi-web.gitcd waterpi-webbundle 설치 

    공개 키, 비공개 키, 인증서 및 rootCA 파일을 인증서 아래에 넣어야 합니다. 폴더. 그런 다음 boot.rb를 엽니다. 이 줄을 적절한 값으로 업데이트하세요. AWS Management Console의 보안 자격 증명 페이지에서 aws 액세스 키와 암호를 가져와야 합니다.

    완료되면 다음과 같이 프로젝트를 실행해야 합니다.

    루비 앱.rb 

    브라우저를 열고 http://localhost:4567/ 을 입력합니다. 차트에서 dynamodb에서 수집된 센서 데이터를 볼 수 있어야 합니다.

    시작을 클릭하면 펌프가 식물에 물을 주기 시작합니다.

    다음은 프로젝트를 개발할 때 찍은 사진입니다.

    축하합니다!

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    라즈베리 파이 Nodejs 소스 코드
    소스 코드를 raspberry pi로 복제하고 certs 폴더 아래에 aws iot 인증서 파일을 추가합니다. 또한 aws iot 물건 URLhttps://github.com/demirhanaydin/waterpi-node로 device.js를 업데이트해야 합니다.
    WaterPi 웹 클라이언트
    자격 증명으로 boot.rb를 업데이트하는 것을 잊지 마십시오https://github.com/demirhanaydin/waterpi-web

    회로도

    pi-wout-camera.fzz arduino.fzz

    제조공정

    1. ADLINK의 MCM 솔루션은 원격 모니터링 및 관리를 지원합니다.
    2. 라즈베리 파이 제어 아쿠아포닉스
    3. Moteino와 Raspberry Pi로 실내 온도 모니터링
    4. Raspberry Pi를 사용한 원격 날씨 모니터링
    5. Raspberry Pi 온도 및 광 센서
    6. Raspberry Pi 센서 및 액추에이터 제어
    7. 카메라 및 PIR 센서가 있는 Raspberry Pi 홈 보안 시스템
    8. GE, 원격 모니터링 및 진단 회사인 SmartSignal 인수
    9. Cisco, IT 및 OT를 위한 IoT 원격 모니터링 솔루션 도입
    10. IoT 기반 원격 오일 및 디젤 탱크 모니터링 시스템