라즈베리파이 기반 원격 식물 모니터링 시스템 개발
Copyright ⓒ 2021 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
본 연구는 라즈베리 파이를 이용하여, 식물에 영향받는 요소인 온도, 습도, 이산화탄소 등을 측정해, 실시간으로 식물의 환경 상태를 전송하고 원격으로 확인할 수 있는 모니터링 시스템을 제안한다. MQTT를 통해 실시간으로 스마트폰 상에서 식물의 환경 상태를 확인할 수 있도록 한 구현 사례를 소개한다. 기존의 폐쇄적인 아두이노 시스템보다 더 개방성이 있고 원격 접속을 더욱더 쉽게 할 수 있는 라즈베리 파이를 활용한다. 라즈베리 파이에 연결된 다양한 Sensor 들을 통해 식물이 놓인 환경 상태를 측정한다. 환경데이터를 수집하여 웹 데이터베이스에 저장하고 실시간으로 MQTT를 통해 스마트폰으로 확인할 수 있는 시스템이다. 본 연구는 비싼 Smart Farm 구축비용을 낮추고 농업인들의 부담을 덜어내는 효과를 보일 것으로 기대된다.
Abstract
This study proposes a monitoring system that can remotely check and transmit environmental conditions of plants in real time by measuring temperature, humidity, carbon dioxide, etc. which are factors affected by plants using a Raspberry Pi. Introducing an implementation example that enables you to check the environmental status of plants on a smartphone in real time through MQTT. It utilizes the Raspberry Pi, which is more open than the existing closed Arduino system and makes remote access even easier. The environment in which plants are placed is measured through various sensors connected to the Raspberry Pi. It is a system that collects environmental data, stores it in a web database, and checks it with a smartphone through MQTT in real time. This study is expected to reduce the cost of constructing an expensive Smart Farm and relieve the burden of farmers.
Keywords:
IoT(Internet of Things), Monitoring, MQTT, Plant Growth Chamber, Raspberry Pi키워드:
사물 인터넷, 모니터링, MQTT, 식물재배기, 라즈베리 파이Ⅰ. 서 론
현재 대한민국의 농업은 농촌 농업인구의 감소와 고령화로 인해, 큰 어려움을 겪고 있다[1]. 그것을 개선하기 위해 농업과 IT 기술을 융합하며 만들어진 농생명 ICT 기술을 활용해 스마트팜을 설치해오고 있다[2]. 그러나 현재 농업인들은 스마트팜보단 기존의 농업기술을 사용해 농업 하는 것을 선호하는 편인데, 설치를 선호하지 않는 가장 큰 이유로는 비싼 설치비이다.
앞서 말한 스마트팜의 높은 설치비를 낮추기 위해 많은 선행연구는 비용적인 면을 개선하였다.
조면균의 논문[3]에서는 일반 사용자가 원격으로 제어할 수 있고 원격으로 데이터를 확인할 수도 있는 좋은 시스템이지만 한계점 또한 있다. 설치한 스마트팜이 만약에 사용자가 새로운 데이터를 만들고 이것을 점검하고 싶다면, 개발자는 굳이 스마트팜이 설치된 곳까지 가서 고쳐야 한다는 문제가 존재한다.
이기영의 논문[4]에서 제시한 시스템은 조도, 토양습도, 온도, 수위를 Sensor로 측정하며, 각 측정된 값을 따라 LED, Pump, 열전소자를 작동시키는 방식이다. 실험을 통해 얻어온 값으로 일정한 값 이하가 되면 밝기를 유지하고, 물을 주며, 온도가 벗어났을 때는 열전소자를 작동시켜 온도를 유지한다. 그러나 환경이 매우 급하게 변했을 때는 사전에 구했던 특정 값이 유명무실해질 수 있으며, 앞서 설명한 논문과 같은 문제인 설정한 값을 임의로 바꾸기 위해서 굳이 설치된 환경에 물리적으로 접근해야 한다는 단점이 있다.
연인원의 논문[5]에서 제시한 시스템은 온습도, pH, EC Sensor 들로 각 값을 측정하며, 식물 광합성용 LED, 온도 조절용 냉각 팬을 임의로 제어하는 방식이다. 그러나 영양액 재배에 초점이 맞추어져 있어 수집한 데이터를 확인만 가능할 뿐, 제어 시스템에 어떠한 영향도 끼치지 않으며 데이터를 근거로 사람이 보고 임의로 조작해야 하는 단점이 있다. 또한, 전기전도도를 구하기 위해서 온도 값이 들어가야만 현재의 값을 더욱 정확히 구할 수 있는 데, 그러한 점을 제시하지 않았다.
김영은의 논문[6]에서 제시한 시스템은 온습도를 측정하여, 항온항습 기능을 구현하기 위해 솔레노이드 밸브와 팬을 임의로 지정한 온도와 습도에 맞춰 작동하는 방식이다. 또한, 본 연구에서 사용되는 라즈베리 파이를 사용하였고, ADC 또한 사용되었다. 그러나 기존 데이터를 저장하는 곳이 아예 제시되지 않았다. 또한, 굳이 SNS(Social Network Service)인 Twitter를 통해 원격제어를 한다는 점이 사용자 면에서나 개발자 면에서나 서로 불편한 제어 구조라고 생각된다.
본 연구에서 사용할 라즈베리 파이는 폐쇄적인 Arduino와 달리 PC로 원격접속해서 다양한 조작을 할 수 있고, 개발자가 더 편한 환경을 만들어 낼 수 있다. 시스템에 문제가 생겼을 때도 집에서 편하게 수정할 수 있어, 정말 간편하고 좋을 것이다. 사용자만 편하고 개발자가 불편한 개발 구조는 개발자의 최적화 프로그래밍이 힘들어지는 단점으로 작용할 것이다. 이러한 연구를 통해 사용자뿐만 아니라 개발자들의 개발 편의성을 확보해, 경제적인 문제들을 다소 해결할 수 있다고 예상된다. 그렇기에 본 논문에서 라즈베리 파이를 이용하여 원격 조종 및 원격 모니터링을 해 현재 상태를 알려 줄 수 있는 시스템을 설계 및 구현하고자 한다. 논문의 구성은 2장에서 관련 연구들을 소개할 것이고, 3장에서는 라즈베리 파이 기반의 모니터링 서비스를 설계 및 제안하고 4장에서는 구현을, 마지막 5장에서는 제안한 시스템을 테스트하고 그에 대한 결론을 서술하겠다.
Ⅱ. 관련 연구
본 연구는 첫째로 IoT 기술이 필요하다. 둘째는 식물재배에 필요한 양분, 수분, 온도 등의 요인들을 인식하여 처리하는 센싱 기술이 필요하다. 셋째로 현장에서 수집한 데이터 값을 웹에서 보기 위해서 웹 서버 구축과 PHP, DB 등을 구축해야 한다. 마지막으로 스마트폰에서 실시간으로 데이터를 받고 보기 위해서 MQTT를 이용해야 한다.
2-1 라즈베리 파이
라즈베리 파이는 2012년 1월에 출시하였으며, 영국의 라즈베리 파이 제단이 학교와 개발도상국에서 기초 컴퓨터 과학 교육을 증진하게 시키기 위해 만든 신용카드 크기의 저가형 싱글 보드 컴퓨터이다[7]. Sensor나 카메라 등을 연결하기 쉬운 하드웨어 구조로 되어 있으며, Sensor들로부터 값을 읽고 제어할 수 있는 다양한 라이브러리가 지원되기 때문에 개발자는 Embedded 제품이나 IoT 장치를 쉽게 개발할 수 있게 해준다[8].
2-2 MQTT
MQTT(Message Queuing Telemetry Transport)는 ISO 표준 경량, publish-subscribe 기반의 네트워크 프로토콜이다. IBM의 앤디 스탠퍼드 클락과 시러스 링크의 알렌 니퍼가 1999년에 이 프로토콜의 최초 버전을 만들었다[9]. MQTT Protocol은 그림 2처럼 MQTT broker를 중심으로 메시지의 생성 및 송신을 담당하는 Publisher와 메시지를 수신만 하는 Subscriber로 구성되며, Publisher에서 생성된 모든 메시지는 broker에 의해 취합되고 broker는 특정 메시지의 수신을 희망하는 모든 subscriber 들에 해당 메시지를 전송해주는 구조를 갖는 다[10]. MQTT는 저 전력으로 메시지를 보낼 수 있어서, IoT 분야에서 자주 쓰이는 추세다.
2-3 기존 Arduino 기반의 원격 식물 모니터링 시스템
현재 라즈베리 파이보다 널리 보급된 기기 중에 Arduino(Arduino)가 있다. 2012년에 출시된 라즈베리 파이와 달리 Arduino는 2005년 이탈리아 북부 이브 레아(Ivrea)라는 마을의 전문 대학원 상호작용 디자인 학교(IDII)에서 하드웨어에 익숙지 않은 학생들이 자신들의 디자인 작품들을 손쉽게 제어하기 위해 고안되어 처음 소개되었다. 마이크로컨트롤러를 쉽게 제어할 수 있다는 장점과 비교적 다른 보드들보다 비교적 저렴하다는 점이 있다. 또한, Windows를 비롯한 Mac OS, Linux 등 다양한 OS들을 지원하고 있고, 보드의 회로도가 공개되어 누구나 직접 보드를 만들고 수정할 수 있다[11]. 이런 장점으로 인해 Arduino 기반의 원격 식물 모니터링 시스템들이 등장하였다.
기존 Arduino 기반의 모니터링 시스템은 온/습도 Sensor, 조도 Sensor, 수분 Sensor를 연결하여, 현재 식물재배 환경의 상태를 측정하고, 통신 모듈과 카메라, 동작 제어 모듈을 연결함으로써, 사용자가 식물의 상태를 모니터링을 할 수 있으며, 임의로 제어해 생육관리의 기능을 제공한다[12]. 그러나 제안된 시스템은 나중에 시스템의 수정이 필요할 때 원격으로 수정할 수 없고, Wi-Fi Arduino 전용 실드가 필요하며, 또한 원격으로 접속하기 위해선 설치된 장소의 수집되는 데이터만 확인할 수 있는 웹 DB만 접속할 수 있다는 한계점이 존재한다. 그러므로 본 연구에서는 이러한 점들을 보완하였다. Arduino보다 더 복잡한 처리를 할 수 있는 라즈베리 파이를 사용하여, Wi-Fi 환경 내에서 좀 더 다양한 업무를 볼 수 있게 한다. 또한, 시스템 수정이 불가피할 때 현장을 찾아가지 않아도 원격 수정이 가능하다는 장점이 있다. 또 다른 시스템은 앞서 설명한 시스템과 크게 다르지 않지만 좀 더 많은 각종 Sensor를 추가하였다. 또한, 사용자가 개발자에게 위탁 재배를 맡겨 개발자의 편의와 사용자의 편의를 챙겼다[3]. 그러나 이 시스템에는 근본적인 문제가 있다. 사용자가 취미로 반려식물을 키우려 했는데 멀리에 있을뿐더러 모니터 너머로만 볼 수 있고 키움의 기쁨을 대리로 느낀다는 것은 애써 키우는 의미가 사라진 것이다. 굳이 이러한 방법을 사용하지 않고도 본 연구를 통해 사용자와 개발자의 편의를 챙길 수 있을 것이다.
Ⅲ. 본 론
3-1 전체 시스템 구성
본 연구에서 구현한 전체 시스템은 다음과 같다.
라즈베리 파이의 Sensor 값 송수신, DB를 담당하는 웹 서버 그리고 보드와 웹에 접속할 수 있는 PC로 구성되어 있다. 라즈베리 파이는 현재의 내부 환경을 각종 Sensor로 측정하고 웹서버에 데이터를 보내며, 웹 서버에서는 실시간으로 받아온 데이터를 저장하고, 또한 라즈베리 파이를 MQTT로 연결해 스마트폰 환경에서도 데이터를 확인하는 기능을 제공한다.
3-2 하드웨어 설계
내부 온실 환경 모니터링 및 관리하기 위한 장치로 Arduino 대신 라즈베리 파이 3 B+를 사용하였고, OS는 라즈비안 리눅스를 설치하였다. 그리고 라즈베리 파이 전용 카메라 파이 캠을 설치하였고, 식물 생장용 LED, ADC(Analog-to-Digital Converter), 토양수분 Sensor, 유량 Sensor, 온도 Sensor, 습도 Sensor, CO2 Sensor, pH Sensor, EC Sensor를 설치하였다. 식물 생장용 LED는 식물을 키우는 데 가장 필수적인 빛을 제공하기 위해 광원으로 사용하였고, 외부전원 장치로 가동, 타이머로 제어할 수 있게 하였다. ADC는 라즈베리 파이에 아날로그 입력 핀이 없으므로 아날로그값을 받기 위해 필수적으로 필요하며, 아날로그값을 디지털로 변환해주는 컨버터인 MCP 3008을 사용하였다. 그림 5가 앞서 말한 MCP 3008이다. 또한, 접촉식 수위 Sensor가 아닌 비접촉식 수위 Sensor를 사용하여, 좀 더 긴 수명을 보장받을 수 있게 하였다. 특정 Sensor는 라즈베리 파이에서 호환되지 않으므로, 라즈베리 파이에 Arduino를 연결하여 호환되지 않는 상황을 해결하였다. Arduino에는 전기전도도를 측정할 수 있는 EC Sensor를 설치하였다. 그림 4는 앞에서 설명한 Sensor들과 보드들을 연결한 것을 도식화한 그림이다.
3-3 DB 설계
본 연구에서 설계한 데이터베이스는 간단한 방식으로 구성되어 있다. 오로지 식물재배의 환경을 측정하는 시스템이기 때문에 테이블 1개로 구성하였으며, 온도, 습도, 공기 중 이산화탄소, 유량, 수위, EC(전기전도도), pH(산도), 토양습도, 측정시간으로 구성하였다. <표 1.>
3-4 통신 모듈 설계
라즈베리 파이를 MQTT broker로 만들기 위해 Mosquitto[13] 라고 불리는 오픈 소스 메시지 broker를 라즈베리 파이에 설치하여 사용하였다. 여기서 송신 클라이언트가 라즈베리 파이이고, 수신 클라이언트는 스마트폰 앱이 된다. MQTT 송신 클라이언트 소프트웨어는 본 논문에서 구현하였다. 수신 클라이언트 소프트웨어는 시중에 있던 MQTT Client 앱을 사용하였다. 토픽은 “Sensor/all”로 설정하였다. 안드로이드 앱에선 연결할 해당 broker의 IP를 입력한 후, 해당 토픽을 구독한 다음 Sensor 값을 기다린다. 라즈베리 파이에선 각각 읽어온 Sensor 값을 시간을 두고 broker에게 보낸다.
Ⅳ. 구 현
본 연구를 통해 라즈베리 파이 기반 모니터링 시스템을 구현하였다. Sensor는 디지털이 있고, 아날로그가 있다. Digital Sensor는 라즈베리 파이에 직접 연결하여 시험할 수 있지만, Analog Sensor는 라즈베리 파이에 직접연결이 불가능하다. 이 때문에 ADC 컨버터인 MCP3008을 설치하였다. 또한, MCP3008과의 통신을 위해 SPI(Serial Peripheral Interface) 통신을 사용하였다. MCP3008에 각각 Analog Sensor인 CO2 Sensor와 pH Sensor 그리고 토양습도 Sensor를 연결하였다. 라즈베리 파이로 구현할 수 없는 Sensor, 즉 EC Sensor는 현재 라이브러리가 존재하는 Arduino UNO 보드에 연결하였고, Arduino는 USB 포트로 라즈베리 파이와 연결한 뒤, Serial 통신을 사용해 Arduino에서 보내온 Sensor 값을 받게 하였다.
또한, EC Sensor는 온도에 따라 전기전도도가 바뀌기 때문에 온도 Sensor 값을 읽어와 계산해서 다시 라즈베리 파이에 보내줄 필요가 있었다. 그래서 라즈베리 파이에 연결된 DHT22 온습도 Sensor를 활용하여 Serial 통신으로 Arduino에 측정된 온도 값을 보내고 Arduino는 받은 값을 전기전도도 계산식에 대입, 도출한 값을 다시 라즈베리 파이에 보내는 식으로 구현하였다. CSI(Camera-Serial-Interface) Camera Port에는 라즈베리 파이 카메라 모듈 V2를 연결하여 일정 시간마다 사진을 찍어 생장 변화를 볼 수 있도록 하였다.
그림 6은 실제 구현한 모습이다.
그림 7은 구현한 시스템을 실행하였을 때 스마트폰으로 MQTT Client 앱을 이용해 원격 데이터값을 받는 것을 보여준 것이다. Publisher인 온도, 습도, 지정수위 감지 여부, CO2, 유량, 현재 시각을 측정하여 문자열로 보내주고, Client인 스마트폰 화면에서 해당 라즈베리 파이의 IP를 지정하고, 라즈베리 파이에서 지정한 Topic인 “Sensor/all”을 구독(Subscribe)해 앱에 띄우도록 한 것이다.
Ⅴ. 결 론
본 연구에서는 라즈베리 파이 기반 원격 환경 모니터링 시스템을 구현하였다. 기존의 Arduino 모니터링 시스템은 폐쇄적이었으며, 인터넷과 연결하려면 Wi-Fi 전용 실드를 장착해야 했다. 그러나 이러한 면에선 Arduino보다 더 좋은 라즈베리 파이를 사용하여, 기존보다 더 개방적인 환경을 만들어내었다. 또한, 언제 어디서나 원격 접속을 통해 손쉽게 시스템을 수정할 수 있고, 데이터를 열람할 수 있다. 이러한 점을 미루어 보아 이 연구가 IoT(Internet of Things)와 농업기술에 융합으로서의 의미가 있다는 점을 확인할 수 있었다.
추후 연구할 과제로는 본 연구에서 구현한 실험모델을 기반으로 좀 더 보강을 거쳐서 새로이 구현할 예정이다. 본 연구에서는 MQTT를 이용해 스마트폰 상의 특정 애플리케이션에서 볼 수 있도록 하였지만, 추후의 연구에서는 MQTT를 이용해 WEB DB에 저장하고, 또한 실시간으로 데이터를 받고 시각적인 자료로 출력할 수 있는 데이터 시각화 프로그램에 사용할 예정이다. 또한, 제어 모듈을 설계해 완전제어형 Smart Farm을 구축하는 것이 최종 목표이다.
References
- Statistics Korea Press release, “Agriculture, Forestry and Fishery Survey Result in 2019,” pp. 1-6, May 2020.
- G. J. Kim, and J. D. Huh. "Smart Farm Technology Trends and Prospects," Electronic and telecommunications trends, Vol. 30, No. 5, pp. 1-10, May 2015
- M. G. Cho. "A Study on the Commissioning System for Remote Plant Cultivation for Hobbies Using LED Plant Factories," Journal of Convergence for Information Technology, Vol. 7, No. 1, pp. 49-54, January 2017 [https://doi.org/10.22156/CS4SMB.2017.7.1.049]
- G. Y. Lee, H. H. Kim, Y. H. Jeong, H. H. No, and Y. W. Park. “Plant Cultivation System Using the IoT,” The Journal of The Korea Institute of Electronic Communication Sciences, Vol. 12, No. 4, pp. 657-666, April 2017
- I. W. Yeon, W. C. Lee. “Study Growth Environmental Monitoring and Controlling Platform for Hydroponic,” The Journal of the Korean Institute of Communications and Information Sciences, Vol. 41, No. 9, pp. 1132-1140, September 2016 [https://doi.org/10.7840/kics.2016.41.9.1132]
- Y. E. Kim, S. M. Park, K. M. Oh, D. G. Park. “Isothermal-Isohumidity Control System Using Raspberry Pi,” Korean Institute of Information Technology Proceedings of KIIT Conference, Vol. 2015, No. 6, pp. 406-409, June 2015
- Wikipedia. Raspberry Pi [Internet]. Available: https://en.wikipedia.org/wiki/Raspberry_Pi
- K. T. Hwang, H. J. Park, J. S. Kim, T. Y. Lee, I. H. Jung. "Implementation of Smart Guarding Using Raspberry Pi and MQTT," The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 18, No. 1, pp. 151-157, January 2018
- Wikipedia. MQTT [Internet]. Available: https://en.wikipedia.org/wiki/MQTT
- S. C. Oh, Y. G. Kim. “A Study on MQTT based on Priority Topic for IIoT,” The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 19, No. 5, pp. 63-71, May 2019
- Wikipedia. Arduino [Internet]. Available: https://en.wikipedia.org/wiki/Arduino
- M. H. Kang, Y. W. Jang, J. W. Chang. "Development of planting management remote system using web and smartphone," The Journal of the Korean Institute of Information Scientists and Engineers, Vol. 2015, No. 12, pp. 1421-1423, December 2015
- Eclipse Mosquitto. Eclipse Mosquitto An open source MQTT broker [Internet]. Available: https://mosquitto.org/
저자소개
2020년 : 전주대학교 문화융합대학 스마트미디어학과 학사 졸업
현 재 : 전주대학교 일반대학원 스마트 Agro_ICT 융합학과 재학 중
2020년~현 재: 전주대학교 일반대학원 스마트 Agro_ICT 융합학과 석사과정
※관심분야: 사물인터넷(IoT), 임베디드 시스템, 스마트팜 등
1997년 : 전북대학교 대학원 (이학석사)
2003년 : 전북대학교 대학원 (이학박사)
2006년~현 재: 전주대학교 인공지능학과 교수
2019년~현 재: 전주대학교 일반대학원 스마트 Agro_ICT 융합학과 교수
※관심분야: 스마트팜, 영상처리, 사물인터넷(IoT), 디지털콘텐츠, 모바일 프로그래밍 등