I. Introduction
지구 온난화로 인해 세계 각국은 식량 수급에 많은 어려움을 겪고 있다. 우리나라의 경우에는 기온 상승으로 열대 과일이 자라거나 원래 재배되던 작물들이 재배가 되지 않는 등 다양한 문제가 발생되고 있다. 이는 각 나라마다 대두되고 있는 문제이며, 고유의 식문화가 변형될 가능성도 야기되고 있다. 더불어 의학기술의 발달로 인간의 수명이 점차 늘어나고 있다. 수명이 늘어난 만큼 인구의 증가가 10년 단위로 약 10억 명이 증가하는 양상을 보인다. 인구가 증가하는 만큼 식량 공급이 충분히 이루어져야 하는데, 그러지 못할 상황에 직면하였다[1].
스마트팜은 ICT(Information and Communication Technology)기술을 비닐하우스, 축사, 과수원 등에 접목하여 자동으로 작물과 가축의 생육환경을 적정하게 유지관리 할 수 있는 농장을 의미한다[2]. 공간과 시간에 제약없이 원격으로 작물을 관리하고 생육 환경의 제어가 가능 하다. 따라서 기존 농경 방식보다 효율적이고 노동의 강도를 줄일 수 있다. 스마트팜은 작물 생장 환경을 최적의 상태로 알맞게 조절하기 때문에 각 나라에 생산되는 작물의 멸종을 막을 수 있고 충분한 식량을 공급할 수 있게 한다. 선행된 연구 결과에 따르면 스마트팜 도입 전에 비해 생산량이 증가하였다[3]. 그리고 스마트팜은 나라, 지역에 상관없기 때문에 어느 곳에서나 설치가 가능하다. 즉 유통과정을 줄일 수 있어 온실가스와 불필요한 비용들이 줄어든다. 따라서 소비자에게 신선하고 저렴한 가격에식량을 제공할 수 있다.
스마트팜을 효과적으로 운영하기 위해서 그동안 관개시스템을 자동 관개시스템으로 발전시켜왔다[4]. 농장을 운영하기 위해서는 수분 조달이 중요한 요소이므로 사람이 직접 일일이 수분을 조달하는 노동력을 줄이고 작물을 효과적으로 성장시키기 위한 노력을 기울였다. 그리고 스마트팜의 내부 환경을 관찰하고 데이터를 수집하기 위해 각종 센서들을 사용한다. 센서에서 얻은 데이터들을 모니터링하여 농작물의 질병을 식별하고 자원의 낭비를 방지한다. 자동 관개시스템을 위해 수분 레벨을 기준으로 워터 모터를 자동으로 on/off 방식으로 제어한다[5]. 컨트롤 박스를 센서와 연결하여 농작물에 대한 데이터를 얻을수 있는 제어 시스템이 포함되어 있고 이 정보를 웹 기반 애플리케이션으로 수신한다. 그리고 애플리케이션을 통해 현장 제어를 한다. 환경과 기후의 영향에 대한 정보를 발견하기 위해 대규모 데이터를 저장하고 연관 규칙에 의한 데이터 마이닝을 적용한 사례도 있다[6]. 기존 아두이노를 활용한 스마트팜 연구에서는 모바일 애플리케이션 (Application, APP)을 통한 관리 및 제어를 위해 통신하는 방법으로 블루투스 모듈을 주로 활용하였다[7]. 또한 스마트팜의 효과적인 자동화를 위하여 AI 기술은 적용하기에 따라 이러한 장점을 극대화해준다. 칠레에서는 로봇과 AI 기술을 활용한 스마트팜에 도입하여 식물 상태를 판단해 수확 가능한 상태가 되면 로봇이 이를 수확해주는 자동화 시스템을 구축하기도 하였다[8]. 따라서 스마트팜의 발전을 위해서는 공간의 제약없이 제어가 가능한 무선통신 시스템을 기반으로 자동 시스템을 위한 APP 개발과 센서로 부터 얻은 데이터의 분석, 그리고 이를 이용한 AI 기술의 활용 등이 필수이다.
본 연구는 다중 스마트팜의 내부 환경에 대한 정보와 APP을 통한 제어를 통해 최적의 생장 환경과 제어의 편의를 제공하는 시스템을 제안한다. 딥러닝 기술을 기반으로 작물의 생장단계를 판단해주는 기능을 통해 진단하고, 데이터와 결과를 피드백하거나 축적하여 사용자의 식물재배 환경 구성을 보조한다. 케이지를 분리형으로 제작하여 다중 제어가 가능하도록 하였고 사용자가 원하는 다양한 방식으로 독립적인 운영이 가능하다. 서로 다른 작물을 키우거나 내부 환경을 서로 다르게 설정하여 같은 작물을 키우는 방법 등이 가능하다. 또한 서로 다른 환경에서 작물을 키우면서 최적의 작물 성장 조건을 찾아 낼 수 있다. 최적의 작물 성장 조건은 케이지 내부에 설치된 각종 센서로부터 수집된 토양 상태, 일조량, 수분상태 등의 데이터를 활용하여 분석할 수 있다.
II. Multi-control of Arduino Sensor
다중 원격 제어를 스마트폰 APP을 통하여 가능하도록 하고 다양한 센서를 데이터를 수집한 후 딥러닝 학습을 통해 작물의 성장을 분석하는 전반적인 스마트팜 시스템의구성을 그림 1에 나타내었다. 데이터베이스는 스마트팜내의 센서 정보를 수집 및 보관하고 스마트폰 APP은 데이터베이스의 정보를 활용하여 분석하고 사용자에게 편의의 정보를 제공한다. 그리고 제어 신호를 원격으로 스마트팜에 전달하여 적절한 제어 기능을 수행하고 딥러닝 생장의 판단 결과를 이에 적용할 수 있다. 이를 위한 다양한 아두이노 센서의 다중 제어를 다음과 같이 구현하였다.
Fig. 1. Configuration diagram of multiple remote control smart farm system
1. Split cage for multi-control
우선 스마트팜 내에서 여러 종류의 식물을 재배할 수 있도록 분리할 수 있고 통합하여 사용할 수 있도록 그림 2와 같이 다중 제어와 아두이노를 이용한 분할 센서 케이지를 제작했다. 분할된 2개의 케이지는 사용자가 원하는 다중 환경 구성하고 각각 제어할 수 있다. 환경을 사용자가 원하는 대로 혹은 각 작물에 맞는 환경을 조성하여 다중 제어가 가능하다.
Fig. 2. Sensor cage for multi-control and control device using Arduino
2. Arduino and Sensor
스마트팜 내 아두이노의 시스템 구성은 그림 3과 같다. 아두이노를 메인 컨트롤러로 사용하였으며 아두이노 보드는 nodeMCU 보드를 사용하였다. 보드에 내장된 ESP8266을 사용하여 Wi-Fi에 연결하여 로컬 네트워크 또는 인터넷에 연결할 수 있다[9]. 아두이노의 제어 순서를 플로우 차트로 나타내면 그림 4와 같다. 아두이노에 전원을 인가하게 되면 센서 값 측정을 통해 스마트팜의 현재 환경을 알 수 있고, Wi-Fi를 통해 데이터베이스와 통신하여 측정한 현재 환경 값을 데이터베이스에 저장하고 데이터베이스에 저장된 목표 환경을 받아온다. 그 후에 받아온 목표 값과 측정한 값이 다르다면 목표 값과 같게 만들어 준다. 다시 말해, 먼저 현재 케이지의 정보를 얻기 위해서 온습도 센서, 토양 수분 센서, 조도 센서를 통해서 아날로그 값으로 정보를 받아와 데이터베이스 서버로 정보를 보냄과 동시에 APP에서 설정한 목표제어 환경 정보를 받아와 현재 값과 비교한 후 LED, COOLING FAN, WATER PUMP를 작동하는 방식으로 알고리즘을 구성했다. 센서 값과 목표 값이 같거나 환경 제어가 끝났다면 아두이노는 슬립 모드에 들어가게 된다. 그 후 1분뒤 깨어나 다시 센서 값 측정으로 돌아가 위 과정을 반복하게 된다. 여기서 딥 슬립 모드를 사용하는 이유는 nodeMCU보드가 전력 소비량이 많기 때문에 슬립 모드를 사용하여 전력 소비량을 줄이고 작동 수명을 늘리기 위함이다[10].
Fig. 3. Arduino system configuration
Fig. 4. Flowchart for Arduino
스마트팜을 제어하기 위해 사용한 센서 리스트와 단위는 표 1과 같다. 센서들은 값을 측정하기 위한 센서들과 환경을 조성하기 위한 센서들로 나뉜다. 온습도 센서는 온도와 습도를 아날로그 값으로 받아오는 센서로 단위는 ℃(온도), RH(습도)로 나타낸다. 토양 수분 센서는 토양의 수분량을 측정해 아날로그 값으로 받아오는 센서로 단위는 VWC로 나타낸다. CDS 조도 센서는 스마트팜 안에 조도를 측정해 아날로그 값으로 받아오는 센서로 단위로 Lx로 나타낸다. 워터 펌프 모터와 식물 생장 LED, 쿨링 팬은 목표 환경을 조성하기 위한 작동장치들이다. 값을 측정하는 센서들은 온도, 조도, 습도, 토양 수분을 측정하는데 측정한 값을 아날로그 데이터로 받아오기 때문에 각각의 센서들을 아두이노의 아날로그 핀에 연결한다. 하지만 nodeMCU는 아날로그 핀이 A0 하나만 존재하기 때문에 이를 해결하기 위해서 릴레이나 트랜지스터를 사용해야 한다. 이 시스템에서는 릴레이 모듈을 각각의 센서에 연결하고 특정 값을 받아올 때 필요한 센서에 연결해주는 식으로 사용하였다. 환경을 조성하기 위한 센서들은 LED 와 워터 펌프, 쿨링팬이 있으며 워터펌프는 5V를 사용하기 때문에 아두이노 보드를 이용해 전원을 공급하지만 식물 생장 LED와 쿨링팬은 12V용 릴레이 모듈과 건전지 홀더와 연결해 필요한 상황에 작동할 수 있는 시스템을 구성하였다.
Table 1. List of sensors used and units
III. Database
아두이노를 통해 측정한 온도, 습도, 조도, 토양 수분을 저장할 수 있는 저장소인 데이터베이스를 구축하였다. 데이터베이스가 아두이노, 애플리케이션과 서로 데이터를 주고 받는 방식은 그림 5와 같다. 데이터베이스는 데이터를 저장하는 저장소 역할이기 때문에 아두이노, 애플리케이션과 직접적인 통신을 할 수 있도록 PHP를 사용하였다[11]. 아두이노에서 PHP를 활용해 데이터베이스로 전송하는 흐름은 그림 6 (a)와 같고 애플리케이션과 데이터베이스간의 흐름은 그림 6 (b)와 같다. 그림 6 (a)는 아두이노가 데이터베이스 서버와 통신하는 흐름을 설명한 흐름도이다. 아두이노 보드에 내장되어 있는 Wi-Fi 모듈을 이용해 Wi-Fi에 접속하게 되면 데이터베이스와 아두이노 사이에 통로 역할을 하는 PHP에 접속을 할 수 있게된다. PHP에서는 아두이노에서 보내온 정보에 맞는 데이터베이스 서버에 테이블을 찾은 후 데이터 형식에 맞게 적재한다. 그림 6 (b)는 애플리케이션이 데이터베이스 서버와 통신하는 흐름을 설명한 흐름도이다. 애플리케이션의 기능 중 데이터베이스 서버와 통신하기 위한 기능은 데이터를 조회하는 기능과 목표 제어 환경을 설정하는 기능두 가지가 있다. 이 두 가지 기능을 이용하기 위해서 애플리케이션과 데이터베이스 서버를 연결해주는 통로인 PHP 에 접속하고 데이터베이스 서버에 테이블을 조회해 JSON 형태로 불러와 애플리케이션 화면에 표현해 주거나 목표를 설정하기 위해 목표 데이터베이스 서버에 테이블에 목표 값을 업데이트 해주는 흐름을 나타낸 흐름도이다.
Fig. 5. Configuration of data communication system
Fig. 6. Database access via PHP : (a) Arduino (b) APP
관계형 데이터베이스로서 아두이노에서 받아온 데이터를 저장하고 애플리케이션에서 표현하기 위한 데이터베이스 테이블을 그림 7과 같이 구성하였다. 아두이노에서 데이터를 보낼 때 당시 시간을 측정하여 date에 넣어주고 온도, 습도, 조도, 토양 수분을 temp, humidity, illuminance, moisture 속성에 각각 넣어준다. 애플리케이션에서 목표 값을 설정해 데이터베이스 테이블에 저장하고 아두이노에서 데이터베이스에 저장된 목표 값을 받아서 환경을 제어하기 위해 목표 값을 저장하는 데이터베이스 테이블을 구성하였다. 그림과 같이 설정한 목표 값에 따라 쿨링팬이 작동하면서 케이지 내부의 온도를 낮춰주는 것을 확인할 수 있다. 설정된 시간에 맞춰 이 값들을 애플리케이션으로 받아와 사용자가 확인할 수 있고 실시간 캠을 통해 스마트팜 내부를 확인 및 제어할 수 있다.
Fig. 7. Database table settings and stored data received from Arduino, and expressing it in the application.
IV. Application
APP 개발을 위해 안드로이드 스튜디오 코틀린 기반으로 OKhttp, Retrofit, OpenAPI 기술을 사용하였다. 각 기술들에 대한 설명을 다음과 같이 나열하였다.
1. Okhttp
REST API, HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리이다. Retrofit의 라이브러리의 베이스가 되기 때문에 사용했다.
2. Retrofit2
서버와 클라이언트 간 HTTP 통신을 위한 인터페이스이다. Okhttp를 베이스로 만들어진 라이브러리이기 때문에 Retrofit code에 Okhttp 클라이언트로 선언했다.
3. OpenAPI
연계 메커니즘인 OpenAPI를 활용하여 날씨를 받아올 수 있는 환경을 구성하고, 처음 APP이 실행되고 날씨 정보를 받아 오기위해 Okhttp와 Retrofit2를 사용했다.
받아온 정보를 main page에서 value값을 선택한 후 앞서 DataBase에서 설명했던 PHP를 활용해 만들었던 통로에 접근하여 데이터베이스에 접속해 원하는 value값의 데이터를 빼오고 표시되도록 만들었다. Control page 에 목표 제어 환경에 관련된 데이터를 입력하고 버튼을 누르면 데이터베이스에 해당 목표를 저장하도록 하였다. 위와 같이 데이터베이스와 통신하기 위해서 앞서 설명한 PHP를 활용해 통로를 만들어 주었고 그 통로에 접근하기 위해 Okhttp와 Retrofit2를 사용했다. 스마트폰 제어와 GUI를 위하여 그림 8과 같이 APP을 디자인하고 개발하였다. cage1과 cage2를 따로 화면을 만들어 각 해당하는 케이지의 센서 데이터 정보와 캠, 제어를 할 수 있도록 구성하였다. 또한 다양한 결과 정보를 확인할 수 있다.
Fig. 8. Developed app design
V. AI Diagnostic Technology
1. AI Diagnosis
AI를 통해 식물의 생장 상태를 진단하기 위해서는 학습 데이터와 신경망이 필요하다. 임의의 레이블을 바탕으로 학습 데이터로 훈련을 완료한 신경망에 새로운 식물이미지를 입력한다. 입력된 이미지의 특성을 추출해 해당 식물이 어느 레이블에 속하는지 분류하여 식물 생장 단계를 진단한다. 식물 생장 단계를 진단할 신경망으로 Convolutional Neural Network (CNN)을 사용하며, 신경망을 학습시킬 방법으로 전이학습을 적용한다.
2. Convolutional Neural Network
스마트팜에서 재배하는 식물의 생장 단계를 진단하기 위해서는 CNN 기술을 사용한다. CNN은 깊은 계층을 가진 인공 신경망, 즉 딥러닝 기술로 이미지를 분류하는데 가장 많이 활용된다[12]-[13]. CNN은 이미지의 특징을 추출하는 여러 개의 Convolutional Layer와 Pooling layer, 이미지를 분류해주는 Fully-Connected (FC) Layer로 크게 3 종류의 계층으로 구성된다. CNN에 입력되는 이미지는 픽셀 단위로 구성되며, Convolutional Layer에서 필터와 합성곱을 통해 입력 이미지의 특성을 추출한다. input image는 필터링을 거치면서 가장자리에 위치한 정보가 소실되며 크기가 점차 감소하는데, 이를 방지하고자 Padding 기법을 사용한다[14]. CNN을 위한 이미지 처리 과정을 그림 9에 나타내었다. 추출된 특성은 pooling layer에서 크기가 축소되는데, 이 때 일반적으로 최대 풀링 방법을 사용한다. 풀링을 거친 특성은 다음 convolutional layer와 pooling layer로 전달되며, FC Layer에 도착한 후 결과 값으로 분류되어 출력된다.
Fig. 9. CNN image processing method
Fig. 10. Photos divided into GS (Grow Step) Layers
3. Transfer Learning
사전에 훈련된 신경망을 활용해 다른 분야에 적용하는 방법을 전이 학습이라 한다. 전이 학습 방법을 이용하면 매번 새로운 학습망을 만들 필요가 없어 시간을 단축할 수 있고, 정확도도 더 높다. 본 논문에서는 식물 생장 단계를 GS (Grow Step) 1~5단계로 임의로 분류하고, 식물에 공급되는 물 부족으로 인해 문제가 발생하는 단계인 lack of water까지 총 6개의 레이블을 준비하였다. 직접 식물을 재배하며 촬영한 사진을 이미지 데이터로 사용해 전이 학습을 진행하였고, CNN이 결과값을 6개의 레이블로만 분류하도록 FC Layer를 수정해 6 FC Layer를 사용하였다. 그림 11과 표 2에는 직접 작물을 키우면서 진단한 결과를 나타내었다. 평균 97.03%의 정확도를 보여준다. 높은 정확도로 사용자에게 작물의 상태를 판별해주는데 도움을 줄 수 있음을 확인하였다. 차후 해충 피해를 입은 식물 사진이나 병에 걸린 사진 등 병충해 관련 추가 학습 데이터입수 시 더욱 다양하게 식물 상태를 진단할 수 있다.
Fig. 11. AI Diagnostic Results
Table 2. CNN Diagnostic Result
VI. Conclusion
본 논문에서 원격 다중 제어와 생장 진단이 가능한 스마트팜 기술에 대해 기술하였다. 아두이노 센서 제어를 위해 nodeMCU, UNO 보드 2개를 사용하였다. 사용한 센서는 온습도센서, 토양수분센서, CDS조도센서, 워터펌프모터, 식물생장LED, COOLING FAN을 사용하였다. 데이터베이스에 있는 데이터들의 값을 읽어오도록 하여 사용자가 제어할 수 있는 환경을 만들었고 다중제어가 가능하도록 분리형 케이지를 만들었다.
아두이노에서 센서들의 값을 설정한 시간에 맞춰 데이터베이스에서 각 센서들의 데이터 값이 데이터베이스 테이블에 쌓인다. 이 값들을 APP으로 받아와 사용자가 APP에서 자신의 스마트팜의 환경을 알 수 있고 실시간으로 캠을 통해 자신의 농장 내부 환경을 확인하고 현재 상태에 따라 APP을 통해 제어를 할 수 있다. 또한 아두이노를 활용한 스마트팜 시스템의 통신 및 제어를 위해 블루투스 통신이 아닌 거리의 제한이 없는 무선통신을 활용할 수 있도록 시스템을 구축하였다.
딥러닝 기술 중 이미지를 식별해주는 CNN을 활용하여 작물의 생장 단계를 식별해주는 기능을 APP으로 구현하여 대량의 작물 성장 단계 이미지 데이터를 확보 할 수 있고 사용자는 현재 자신의 작물의 생장단계를 판단하는데 도움을 준다.
데이터베이스에 쌓인 데이터들을 활용하여 작물들 마다 최적의 조건을 찾을 수 있는 데이터들의 활용하여 작물들마다 최적의 조건을 찾을 수 있는 데이터 분석을 통해 농부 또는 사용자에게 정보를 제공하며 작물을 키워 내면서 쌓인 수많은 데이터들을 활용하여 최적의 작물 성장 조건을 발견하여 농업 기술 발전을 기대할 수 있다. 또한 딥러닝을 활용하여 작물의 이미지 데이터 확보와 데이터 분석을 통해 작물 분류 시스템 등에 적용할 수 있다.
참고문헌
- Yong-hyun Park, "Resolving the food shortage through the popularization of smart farms," Joong-bu Daily Newspaper, DOI: http://www.jbnews.com/news/articleView.html?idxno=1362542
- Yeon-joong Kim, Ji-yeon Park, and Young-goo Park, "An Analysis of the Current Status and Success Factors of Smart Farms," Korea Rural Economic Research Institute - Other Research Report, pp. 1-74, 2016. DOI: https://doi.org/10.23000/TRKO201700008983
- Jae-kyung Lee, Byung-moon Seol "Intelligent Smart Farm A Study on Productivity: Focused on Tomato farm Households" Asia-Pacific Journal of Business Venturing and Entrepreneurship Vol.14 No.3 pp.185-199. DOI: 10.16972/apjbve.14.3.201906.185
- Akshatha, Y., and A. S. Poornima. "IoT Enabled Smart Farming: A Review," 2022 6th International Conference on Intelligent Computing and Control Systems (ICICCS), IEEE, 2022. DOI: 10.1109/ICICCS53718.2022.9788149
- Munir, M. Safdar, Imran Sarwar Bajwa, and Sehrish Munawar Cheema. "An intelligent and secure smart watering system using fuzzy logic and blockchain," Computers & Electrical Engineering, vol. 77, pp. 109-119, 2019. DOI: https://doi.org/10.1016/j.compeleceng.2019.05.006
- Muangprathub, Jirapond, et al. "IoT and agriculture data analysis for smart farm," Computers and electronics in agriculture, vol. 156, pp. 467-474, 2019. DOI: https://doi.org/10.1016/j.compag.2018.12.011
- Kwon, O. H., Kang, I. C., Min, D. S., Im, H. B., & Park, Y. W. (2021). A Study on the Smart Farm Characteristics Using Multiple Sensors. The Journal of the Korea institute of electronic communication sciences, 16(4), 719-724. DOI: http://dx.doi.org/10.13067/JKIECS.2021.16.4.719
- Ignacio A. Quiroz, Germen H. Alferez "Image recognition of Legacy blueberries in a Chilean smart farm through deep learning" Computer and Electronics in Agriculture 168(2020) 105044, pp. 1-2, 2020 DOI: https://doi.org/10.1016/j.compag.2019.105044
- Yogendra Singh Parihar, "Internet of things and nodemcu," Journal of Emerging Technologies and Innovative Research, vol. 6, pp. 1085-1088, June. 2019 DOI: https://doi.org/10.13140/RG.2.2.34456.75525
- JashDoshi, Tirthkumar Patel, Santosh kumar Bharti, "Smart Farming using IoT, a solution for optimally monitoring farming conditions," Procedia Computer Science, Vol. 160 pp. 746-751, 2019 DOI: https://doi.org/10.1016/j.procs.2019.11.016
- Dae-yong Hong, Woon-hak Kang, Sang-won Lee, "Implementation of PHP extension for Altibase database server," Proceedings of the Korea Information Processing Society Conference, vol. 19, No. 2, pp. 1392-1395, Nov. 2012. DOI: https://kiss.kstudy.com/thesis/thesis-view.asp?key=3873994
- Sung-Soo Park, Ji-Won Baek, Sun-Moon Jo, Kyungyong Chung. "Motion Monitoring using Mask R-CNN for Articulation Disease Management," Journal of the Korea Convergence Society, vol. 10, no. 3, pp. 2, 2019. DOI: https://doi.org/10.15207/JKCS.2019.10.3.001
- Kitae Kim, Bomi Lee, and Jongwoo Kim. "Feasibility of Deep Learning Algorithms for Binary Classification Problems," Journal of Intelligence and Information Systems, vol. 23, no. 1, pp. 96-98, 2017. DOI: https://doi.org/10.13088/jiis.2017.23.1.095
- S. Albawi, T. A. Mohammed and S. Al-Zawi, "Understandung of a convolutional neural network," 2017 International Conference on Engineering and Technology (ICET), pp. 2-3, 2017 DOI: https://doi.org/10.1109/ICEngTechnol.2017.8308186