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

AWS IoT 기반 스마트 식물 모니터링 시스템: 원격 관리 및 알림 자동화

필요한 부품 및 소모품

부품 수량 비고
아두이노 윤 (Arduino Yun) 1 리눅스(OpenWrt) 탑재, WiFi 내장
Seeed Grove 스타터 키트 플러스 (인텔 에디슨용) 1 실드 + 온도/조도 센서 사용
Grove 토양 수분 센서 1
5mm 적색 LED 1 알림 표시용
저항 330Ω 1 LED 전류 제한용

필요 도구

사용 클라우드 서비스 및 플랫폼

프로젝트 개요

휴가 중에도 집 식물 상태를 원격 모니터링하고, 수분 부족 시 자동 이메일 알림을 받아 이웃/가족에게 물 주기 요청 가능한 시스템입니다. 두 가지 데이터 경로 제공:

  1. dweet.io 경로: 간단 테스트용, 무료, 실시간 대시보드 제공
  2. AWS IoT → DynamoDB 경로: 영구 저장, 규칙 기반 알림, 확장성 우수

3D 프린팅 인클로저로 아두이노 윤, 그로브 실드, 센서를 일체형으로 구성하여 화분에 꽂아 사용.

1단계: 회로 구성 (그로브 실드 기준)

2단계: 3D 프린팅 인클로저

STL 파일 3개 출력 (레이어 높이 0.3mm, 충전율 25% 이상, 약 2시간 소요). 토양 센서 프로브 부분이 화분 흙에 꽂히도록 설계.

3단계: 토양 수분 임계값 결정

전용 스케치(SoilMoistureValue) 업로드 → 건조/습윤 상태에서 아날로그 값 측정 → tooDryValue 설정 (예: 250). 이 값이 알림 트리거 기준이 됨.

4단계: dweet.io 데이터 전송 테스트

ArduinoYunDweetio.ino 업로드 → 고유 디바이스명(예: PlantMonitorSeoulKR)으로 dweet.io에 10초마다 전송. 웹에서 dweet.io/follow/디바이스명으로 확인 가능.

5~11단계: AWS CLI 설정 및 아두이노 윤 연동 (핵심)

  1. AWS 계정 생성 (프리 티어 권장)
  2. AWS CLI 설치 및 구성 (aws configure)
  3. IoT Thing 생성: aws iot create-thing --thing-name "PlantSystem"
  4. 인증서/키 생성: aws iot create-keys-and-certificate --set-as-active ... (3개 PEM 파일 생성)
  5. IoT 정책 생성 및 인증서에 연결 (전체 권한 iot:* 허용)
  6. 인증서를 Thing에 연결
  7. PC에서 MQTT.fx로 발행/구독 테스트 (루트 CA, 인증서, 개인키 설정)
  8. 아두이노 윤에 AWS IoT SDK 설치:
    • 깃허브에서 aws-iot-device-sdk-arduino-yun 다운로드 → 아두이노 라이브러리 폴더에 압축 해제
    • 인증서 3개 파일을 윤의 /mnt/sda1/arduino/www/certs/에 업로드 (codebase_upload.sh, environment_setup.sh 실행, 약 5~10분 소요)

12~14단계: DynamoDB 테이블 및 IoT 규칙 생성

  1. IAM 역할 iot-actions-role 생성 (신뢰 정책: iot.amazonaws.com)
  2. 정책 iot-actions-policy 연결 (DynamoDB, Lambda 권한)
  3. DynamoDB 테이블 plantSensor 생성: 파티션 키 key, 정렬 키 timestamp, RCU/WCU=1
  4. IoT 규칙 plantDataToDynamoDB 생성: SQL SELECT * FROM 'topic/plantdata' → DynamoDB 액션 (해시 키: 토픽 2번째 세그먼트, 레인지 키: 타임스탬프)
  5. MQTT.fx로 테스트 발행 → DynamoDB 콘솔에서 레코드 확인

15단계: 아두이노 윤에서 AWS IoT로 데이터 발행

ArduinoYunAWSIoTDynamodb.ino + aws_iot_config.h (엔드포인트, Thing 이름, 인증서 경로 설정) 업로드. 10초마다 JSON 페이로드 발행:

{"temp": 23.5, "lightval": 450, "moistval": 320}

시리얼 모니터로 발행 성공/실패 로그 확인. 영구 운용 시 postingInterval 증가로 비용 절감 권장.

16단계: SNS 이메일 알림 규칙 설정

  1. IAM 역할에 AmazonSNSFullAccess 정책 추가
  2. SNS 콘솔에서 토픽 sendMail 생성 → 이메일 구독 추가 (확인 메일 클릭 필수)
  3. IoT 콘솔에서 규칙 EmailSend 생성:
    • 속성: moistval (아두이노 JSON 키와 일치)
    • 토픽 필터: topic/plantdata
    • 조건: moistval < 250 (3단계에서 결정한 임계값)
    • 액션: SNS 푸시 알림 → 타겟 sendMail, 역할 iot-actions-role

토양 센서를 물에서 빼면 즉시 이메일 수신 확인 가능.

17단계: 최종 조립 및 설치

3D 프린트 부품 조립 (M4×40 나사/너트로 프로브 고정), 상단 커버 스냅핏, 프로브를 화분 흙에 꽂고 마이크로 USB로 전원 공급. 창가 방향 센서 향하게 배치.

소스 코드 (깃허브 또는 본문 포함)

참고 사항

제조공정

  1. C# using 문 마스터하기: 네임스페이스 임포트, 별칭, 정적 지시자
  2. 라즈베리 파이 3와 PubNub로 원격 기상 모니터링하기
  3. 라즈베리파이, PIR 센서, MQTT로 만드는 모션 제어 AWS IoT 버튼
  4. IoT 탱크 모니터링으로 석유 관리 안전·스마트·수익성 높이는 법
  5. AI 기반 첨단 IoT 시스템으로 산불 조기 탐지 및 나무 건강 모니터링
  6. IoT 기반 유류 및 디젤 탱크 원격 모니터링 시스템
  7. IoT 기반 플릿 중량 모니터링의 8가지 핵심 이점
  8. IoT 기반 자산 모니터링이 석유·가스 분야 안전성과 효율성을 이끄는 방법
  9. IoT 기반 우유 수위 모니터링으로 낙농 관리 혁신하기
  10. 스마트 IoT 하천 수위 모니터링 시스템, 수자원 관리·홍수 예방 강화