팀명: Team #3
프로젝트 명: PiotGreen
과목: 고급 IoT 프로젝트, 2024년 2학기
교수님: 박상오 교수님
팀원:
- 선지훈
- 채현서
- 정용희
- 김주영
PiotGreen은 Raspberry Pi를 활용하여 IoT 기술을 농업에 적용한 스마트 농업 시스템입니다. 다양한 센서와 Raspberry Pi를 통해 농작물의 생장 환경을 실시간으로 모니터링하고 자동으로 필요한 조치를 취할 수 있도록 설계되었습니다. 주요 기능으로는 야생동물 침입 감지, 토양 수분 관리, 광량 제어가 있으며, 이를 통해 자원의 효율적 활용 및 수확량 증대를 목표로 하고 있습니다.
"PiotGreen"은 다음의 세 가지 요소를 결합한 합성어입니다:
- Pi: 프로젝트의 중심 기술인 Raspberry Pi를 의미하며, 센서 연동 및 데이터 처리를 담당합니다.
- IoT: Internet of Things의 약자로, 스마트 농업 시스템의 연결성과 데이터 수집 기능을 나타냅니다.
- Green: 농업과 환경을 상징하는 녹색을 의미하며, 프로젝트의 목표인 지속 가능하고 효율적인 농업을 반영합니다.
- 선지훈: 각 Raspberry Pi에서 수집된 신호를 LCD에 표시하고 제어 화면을 개발
- 채현서: 카메라를 이용한 야생동물 침입 감지 시스템 개발
- 정용희: 토양 수분 모니터링 및 자동 관수 시스템 개발
- 김주영: 조도 센서와 LED를 활용한 광량 제어 시스템 개발
PiotGreen 프로젝트는 농업의 생산성과 효율성을 높이기 위해 IoT 기술을 접목한 스마트 농업 시스템입니다. Raspberry Pi와 다양한 센서를 통해 작물 재배 환경을 실시간으로 모니터링하고 자동 관리가 가능하도록 설계되었습니다. 사용자는 실시간으로 데이터를 확인하고 야생동물 침입 감지, 토양 수분 관리, 광량 조절 등의 기능을 통해 편리하게 농업 관리를 할 수 있습니다.
기후 변화와 노동력 감소로 농업의 디지털 전환이 요구되고 있습니다. 특히 소규모 농장에서는 고가의 스마트 농업 장비 도입이 어렵기 때문에, 경제적이면서도 기능적인 IoT 농업 솔루션의 필요성이 증가하고 있습니다. Raspberry Pi와 저비용 센서를 활용하여 누구나 접근할 수 있는 IoT 농업 시스템을 개발하여 농업 관리의 부담을 줄이고 생산성을 높이고자 합니다.
PiotGreen 프로젝트의 주요 목표는 다음과 같습니다:
- 실시간 모니터링: 온도, 습도, 광량 등의 요소를 실시간으로 확인하여 신속하게 대응 가능
- 자동화 관리: 토양 수분 상태에 따라 자동으로 관수하고 광량을 조절하여 최적의 생장 환경 유지
- 경제적 솔루션: 저비용 센서와 Raspberry Pi를 사용하여 소규모 농가에서도 쉽게 도입 가능
- 지속 가능한 농업: 자원 효율성을 높이고 데이터 기반의 지속 가능한 농업 지원
PiotGreen은 기능별로 모듈화된 구조를 채택하여, 독립적으로 개발된 기능을 메인 Raspberry Pi에서 통합 관리하는 방식입니다. 야생동물 침입 감지, 토양 수분 모니터링, 광량 제어 등의 기능을 담당하는 Raspberry Pi가 각각 배정되어 있으며, 메인 Raspberry Pi가 이 데이터를 수집하여 LCD 화면과 웹페이지에 실시간으로 표시하는 사용자 인터페이스를 제공합니다.
- 하드웨어: Raspberry Pi, 카메라 모듈, 토양 수분 센서, 조도 센서, LCD 디스플레이, LED
- 프로그래밍 언어: Java/Spring(웹), Python(센서 제어), C(소켓 통신)
- 데이터 통신: 소켓 통신 (C로 구현)
- 데이터 저장: MySQL
- 개발 툴: Visual Studio, Vim, PyCharm, IntelliJ IDEA
- 라이브러리:
- RPi.GPIO (Raspberry Pi 핀 제어)
- 웹 관리 페이지: Java, Spring Framework
- 야생동물 침입 감지: 카메라 모듈과 OpenCV로 모션을 감지하고 침입 시 알림
- 토양 수분 모니터링 및 자동 관수: 토양 수분 상태 모니터링 및 자동 관수
- 광량 제어: 조도 센서로 광량 측정 및 부족 시 LED 조명 활성화
- 통합 제어 화면: LCD 화면에 각 기능 데이터를 통합하여 실시간 표시
각 디렉터리는 팀원들이 담당하는 시스템 기능에 따라 분리되어 있으며, piotgreen 디렉터리는 Spring Boot 기반의 웹 애플리케이션을 구성합니다. 주요 기능들은 다음과 같습니다:
- intrusion_detection: 야생동물 침입 감지 시스템 코드
- irrigation_system: 토양 수분 모니터링 및 자동 관수 시스템 코드
- lighting_control: 광량 제어 시스템 코드
- piotgreen: Spring Boot를 활용한 웹 애플리케이션으로, 각 기능의 통합 관리 및 사용자 인터페이스 제공
이 구조를 통해 PiotGreen 프로젝트는 확장성과 유지 보수성을 고려하여 개발되었습니다.
- 실시간 데이터 조회: 현재 광원량, 흙 습도, 침입 감지 여부 등을 확인 가능.
- 관리하기 기능:
- 광량 데이터 조회 및 LED 자동 제어:
- LED On/Off 수동 제어.
- 관수 데이터 조회 및 자동 제어:
- 관수 수동 제어.
- 영상 데이터 조회.
- 위험 감지 기능 On/Off.
- 제어 명령 예약하기:
- 광량 제어 명령어 예약:
- 예약 내역 확인.
- 관수 제어 명령어 예약:
- 예약 내역 확인.
- 침입 감지 관련 명령어 예약:
- 예약 내역 확인.
- 기록 조회하기:
- 감지한 광량 기록 차트.
- 감지한 광량 기록.
- 감지한 습도량 기록 차트.
- 감지한 습도량 기록.
- 감지한 위험 기록.
- 날씨 조회하기
- 지역별 날씨 조회 창.
- 날씨 정보에 따른 차트.
- 날씨 정보의 시간별 상세 데이터.
- 카메라를 이용한 야생동물 침입 감지 시스템.
- 토양 수분 모니터링 및 자동 관수 시스템.
- 조도 센서와 LED를 활용한 광량 제어 시스템.
PiotGreen 프로젝트는 스마트 농업 관리의 가능성을 성공적으로 입증하였습니다. 본 프로젝트는 저비용으로 효과적인 농업 자동화 시스템을 구현함으로써 생산성과 효율성을 크게 향상시킬 수 있음을 확인하였습니다. 특히, 라즈베리파이와 IoT 기술을 활용하여 실시간 환경 데이터를 모니터링하고, 자동화된 조명 및 관수 시스템을 통해 작물의 최적 성장 환경을 유지할 수 있도록 설계되었습니다.
이 과정에서 하드웨어와 소프트웨어 간의 유기적인 연동을 성공적으로 구현하였으며, 이는 향후 다양한 농업 환경에 적용할 수 있는 유연한 시스템 개발의 가능성을 열어주었습니다. 농작물의 생장 환경을 실시간으로 모니터링하고, 자동으로 필요한 조치를 취할 수 있도록 설계했고, 본래의 목표를 모두 이루었습니다.
| 주차 | 주간 목표 | 역할 및 상세 계획 |
|---|---|---|
| 11주차 | Raspberry Pi 간 통신을 위한 소켓 개발 | 선지훈: TCP 클라이언트 및 서버 제작 후 스프링 웹 소켓 연동. 소켓 통신 후 받은 내용 바탕으로 웹 상에서 출력. 채현서: 시제품 외관 모델링 및 출력. 정용희: TCP 소켓 이용해서 메인 서버와 연결 및 테스트. 김주영: 소켓 연결 및 센서 테스트(조도센서, LED). |
| 12주차 | 소켓 통신을 통한 데이터 전달 및 Sub Raspberry Pi의 하드웨어 동작 구현 | 선지훈: 소켓 통신 후 받은 내용을 LCD로 출력. 기존 개발한 소켓을 이용하여 웹 인터페이스 제작 (흙 수분 정보와 일조량 정보 실시간 확인 기능). 채현서: 카메라 연결 후 실시간 영상 전송(웹). 정용희: 수분 센서를 이용해서 토양 수분 측정 테스트 및 서보모터를 이용한 워터펌프 연결 테스트. 김주영: 데이터베이스 설계 및 수동/자동 모드 구현 (수동: 메인 서버에서 받은 지시 사항, 자동: 조도 센서를 통해 광량 자동 조절). |
| 13주차 | 메인 Raspberry Pi 를 통해 Sub Raspberry Pi 제어 기능 개발 (통합 시스템) | 선지훈: 각 라즈베리 파이 제어 기능 개발. 실시간 영상 조회 기능 개발. 채현서: 영상에서 객체 인식 (OpenCV 객체 인식 기초 학습). 정용희: 메인 서버에 주기적으로 수분량 업로드, 서버에서 요청 시 현재 수분량 응답 및 명령 수행. 김주영: 농장을 구간별로 나누어 조도 센서 설치 및 특정 구간 LED 조명 제어. |
| 14주차 | 유저 편의성 증대 및 Sub Raspberry Pi 기능 심화 개발 (1) | 선지훈: 지난 기록 데이터 조회 (과거 흙 수분 정보와 일조량 정보) 기능 개발. 유저 편의를 위해 웹에서 실제 날씨 데이터 제공. 채현서: 영상에서 동물 객체 인식 심화. 정용희: 날씨 데이터셋에 따른 관수량 조절. 김주영: 웹 인터페이스 프론트 구성 (날씨 구성 관련 컴포넌트). |
| 15주차 | 유저 편의성 증대 및 Sub Raspberry Pi 기능 심화 개발 (2) | 선지훈: IoT 제어 기능에 예약 기능 추가 (#월 #일부터 #월 #일까지 일조량 조절 기능). 채현서: 동물 침입 시 알림(소켓 통신) 및 물리적 대응 방법 개발. 정용희: 메인 서버와 통신하여 받은 날씨 정보를 바탕으로 관수량 조절 (자동 관수 시스템 개발). 김주영: 웹 인터페이스 프론트 구성 (달력 기능 관련 컴포넌트). |





























