[농업+IT=스마트팜] 7. 나만의 스마트팜 본격 구축하기 (2)
[IT동아]
스마트팜 (smart farm): 농림축수산물의 생산 및 가공, 유통 단계에서 ICT(정보통신기술)를 접목한 지능화 농업 시스템. 사물인터넷(IoT), 빅데이터, 인공지능 등의 IT기술을 통해 농작물, 가축 및 수산물 등의 생육 환경을 적정하게 유지, 관리하고, PC나 스마트폰 등으로 원격 자동 관리할 수 있어 생산 효율성과 편리성을 높일 수 있다. (네이버 용어사전)
[연재순서]
지금 스마트팜에 대해 관심 가져야 하는 이유 - https://it.donga.com/103234/
스마트팜과 사물인터넷 알아보기 - https://it.donga.com/103310/
스마트팜 구현 솔루션 이해하기 - https://it.donga.com/103462/
환경 데이터 수집용 센서 구축하기 (1) - https://it.donga.com/103660/
환경 데이터 수집용 센서 구축하기 (2) - https://it.donga.com/103752/
나만의 스마트팜, 실제 구축하기 (1) - https://it.donga.com/103871/
나만의 스마트팜, 실제 구축하기 (2)
연재를 마치며
요즘은 스마트폰으로 많은 걸 처리한다. 스마트폰이 없던 시절엔 어떻게 살았을까 싶을 정도다. 최근엔 PC용 프로그램보다 스마트폰용 앱이 먼저 나오는 경우도 많다. 스마트폰으로 언제 어디서든 쉽고 자유롭게 접근할 수 있기 때문이다. 이제 우리 일상의 모든 시간, 모든 곳에 스마트폰에 있다고 해도 과언이 아니다.
우리가 만드려는 스마트팜도 결국 스마트폰에서 가지고 놀 수 있어야 한다. 농작물의 환경 데이터, 촬영 사진, 기타 관련 정보를 확인하고, 제어도 가능해야 된다는 뜻이다. 내가 만드는 스마트팜은 내가 직접 관리할 수 있어야 내게 맞는 스마트팜이 된다.
도전해보자. 내 손안에 스마트팜이 되도록!
스마트팜을 위한 클라우드 서비스
사물인터넷 기반의 데이터를 저장하기 위해서는 '서버'라는 인터넷상의 컴퓨터가 필요하다. 이 컴퓨터에 데이터를 저장, 가공하는 기능을 넣을 수 있는데, 이를 '클라우드 서버'라고 한다. 이 클라우드 서버를 구축하려면 전문지식이 필요하고, 비용도 많이 드는 편이다.
하지만, 세상에는 비싼 게 있다면 싼 것도 있고, 당연히 공짜인 것도 있다. 일반적으로 사용할 수 있는 클라우드 서버 중 대표적인 것이 구글의 '스프레드 시트'다. 이미 사용하고 있는 독자들도 많을 것이다. 이 스프레드 시트는 따로 설치하지 않고 사용하는, MS 엑셀과 비슷한 서비스다. 인터넷에 접속되어 있다면 아무 컴퓨터나 스마트폰으로도 접속해 내가 작업하던 파일을 다룰 수 있다. 개인 사용은 무료다.
구글이 제공하는 서비스는 이외에도 상당히 좋은 게 많다. 대부분 기본적인 기능만을 쓰고 있을 뿐, 자세히 둘러보면 무료로 요긴하게 사용할 수 있는 시스템이 적지 않다. 이 스프레드 시트도 그 중 하나인데, 이는 데이터베이스 역할을 대신한다. 데이터베이스는 데이터를 정형화해 수집하고 이를 재가공하여 활용하게 해주는 기본 시스템 요소이다. 작물의 생육 환경은 모두 데이터인데, 그 데이터를 모아 스프레드 시트에 저장하는 것이다.
실제 해외에서는 아두이노(현재 우리가 사용하고 있는 메인보드)에서 인식된 데이터를 구글 스프레드로 전송하여 저장하는 방식을 많이 활용한다. 우리도 이렇게 해보자.
⓵ 구글 이메일 아이디 등록 (이미 있다면 등록하지 않아도 됨) ⓶ 구글 스프레드 시트 작성 (어떤 메뉴에 있는지 한번 확인) ⓷ 프로그램 활용 능력 (사전 학습이 다소 필요)
일단 ⓵ 번만 준비해본다. 구글 이메일 계정으로 로그인하면 이메일 페이지로 들어간다. 이메일에 보면 아이디 옆으로 점 9개 표시가 있는데, 그게 메뉴다. 이를 터치하면 구글이 제공하는 다양한 서비스가 나타난다. 그중에서 'Sheets'를 선택한다.
스프레드 시트를 한번도 사용한 적 없다면, 우선 가장 좌측에 있는 '내용없음'을 눌러 하나 시트 문서를 만들어 보면, MS n엑셀과 거의 똑같다는 걸 알 수 있다. 그러니 그냥 엑셀처럼 사용하면 된다.
데이터 모아보기
지난 연재에서 만든 스마트팜 장치에는 온습도 센서가 달려있다. 여기서 측정된 온습도 값을 구글 스프레드 시트에 저장하려 한다. 사실 여기에는 구글 스프레드 시트에 'App Script'라는 기능을 사용하는 프로그램이 필요하다. 이에 관해서는 이후 따로 전달할 예정이다. 새 스프레드 시트에서 '확장프로그램' 메뉴를 눌러 그 위치를 확인해보자.
잠깐 설명하자면, 아두이노에서 보내는 데이터는 구글 스프레드 시트로 바로 전송되는 것이 아니라서, 하나의 관리 프로그램에 의해 구분되어 저장되는 기능을 사전에 넣어줘야 한다. 이는 일반적으로 데이터베이스 시스템에 적용되는 구조와 동일한데, 해당 프로그램을 'AppScript' 기능을 통해 구현하면, 아두이노에서 전송된 데이터를 원하는 형식으로 가공하여 원하는 스프레드 시트에 차곡차곡 쌓아갈 수 있다.
먼저 아두이노 프로그램에 구글 스프레드 시트로 데이터를 전송하도록 특정 기능을 추가해야 한다. 크게보면, 센서와 LCD 연결, 센서값 LCD에 표시, 센서값 구글 스프레드 시트로 전송, 구글 스프레드 시트로부터 온 명령 데이터 수신으로 이뤄진다.
'구글시트 설정 xxx' 블럭에 보면, 인터넷 접속이 가능한 와이파이(무선랜) 공유기 정보를 입력할 수 있는데, SSID에는 공유기 이름을, password에는 와이파이 접속 암호를 넣으면 된다.
GAS_ID는 인터넷을 통해 구글 AppScript와 연결하여 데이터를 전달할 때, 내가 작성한 AppScript가 설치된 고유주소를 구분하기 위한 값이다. 이 값은 AppScript 작성 후 배포 시에 확인할 수 있다. 그리고, 온습도 센서 값을 반복으로 읽으며 LCD에 표시하고, 온습도 센서 값을 30초에 한번씩 구글 스프레드 시트로 전송한다.
이렇게 프로그래밍하고 아두이노에 업로드하면, 현재 읽은 온습도 센서값을 인터넷을 통해 구글 스프레드 시트에 저장하기 시작한다.
AppScript 프로그래밍을 적절히 수행하면, 아두이노의 온습도 데이터는 위 사진으로 보듯 하나씩 저장되기 시작한다. 수신된 날짜와 시간, 온소, 습도, 장치ID 등이 30초마다 차곡차곡 쌓인다.
물론 나만의 전용 클라우드 서버 시스템이 있으면 좋겠지만, 흔히 사용하는 구글 서비스를 통해 무료로 데이터를 쌓아도 큰 부족함은 없다. 더구나 인터넷만 연결되어 있다면, 언제어디서나 저장된 데이터를 열어 볼 수 있다.
그런데, 이렇게 저장된 데이터를 매번 스프레드 시트 형식으로 보는 건 불편할 수도 있다. 더구나 스마트폰으로 확인하기에는 화면이 작아 화면을 아래위로 오르내리며 봐야 하니 가독성도 떨어진다. 해결책은 있다. 조그만 학습한다면, 전문지식이 없어도 나만의 스마트팜 앱을 손쉽게 만들 수 있다.
나만의 스마트팜 앱 개발
'내가 앱을 개발하다니! 컴퓨터 프로그램의 '프'자도 모르는데...! 크게 걱정할 필요 없다. 요즘에는 전문 프로그래머가 아니어도 앱을 만들 수 있는 기술이 널려(?)있다. 그 대표적인 게 바로, 또 구글이다. (참고로 필자는 구글과 아무 상관 없다. 그저 구글에 유용한 무료 기능이 많을 뿐이다.)
구글에는 스프레드 시트 외에도 구글 앱 시트 (App Sheet)라는 것도 있다. 최근 들어 로우코드/노코드(Low Code, No Code)라는 단어가 유행이다. 이는 전문 프로그래머처럼 코드를 기입해 프로그램을 개발하는 게 아니라, 코드를 적게 쓰거나(Low Code) 아예 쓰지않고도(No Code) 프로그램을 만드는 플렛폼을 의미한다.
이런 플렛폼이 최근 전 세게에 걸쳐 다양하게 공개되고 있는데, 우리에게 익숙한 마이크로소프트도 '파워앱스(Power Apps)'라는 플렛폼을 제공한다.
아마도 구글, 마이크로소프트 등의 클라우드 서비스 업체가 데이터 저장소 관련 서비스를 손쉽게 개발하게끔 하여 좀더 많은 자사 클라우드 사용자를 확보하려는 듯하다. 어쨌든 우리는 그냥 사용하면 된다. 이 앱 시트도 스프레드 시트 메뉴에서 시작할 수 있는데, 앱 스크립트를 확인했던 메뉴 바로 밑에 있다.
제아무리 쉽다해도 배워야 제대로 쓸 수 있다. 자세한 활용법은 이후 따로 다루기로 하고, 우선 한번 둘러본다.
사진으로 보듯, 스프레드 시트에 있는 항목이 그대로 데이터 항목과 같게 보인다. 그 데이터를 이용하여 정해진 룰에 따라 내가 원하는 앱을 만들 수 있다. 우측에는 내가 만들고 있는 앱 화면이 실시간으로 보인다. 실제 데이터를 가져와 보여주기에 스마트폰에 나타나는 내용과 일치한다.
이렇게 화면을 보며 데이터를 확인하기 쉽게 구성하면, 각자가 원하는 스마트폰 앱이 만들 수 있다. 물론 상업용 앱만큼 완벽하진 않겠지만, 개발 관련 전문지식 없이, 그것도 무료로 자신만의 앱을 만들 수 있다는 건 정말 큰 매력이다.
다만 구글 정책 상 이렇게 개발된 앱은 9명까지만 공유, 사용할 수 있는데, 그 이상이 되면 사용자당 비용을 내야 한다. 자신 혼자 쓰거나, 가족 또는 소그룹 정도가 공유 사용하기에는 적절한 시스템이다.
이렇게 만든 앱을 한번 보자.
우선 데이터가 먼저 보인다. 30초마다 한번씩 쌓이는 온도와 습도 데이터, 그리고 하루의 온도 그래프와 습도 그래프, 릴레이를 제어할 수 있는 제어값 입력 화면으로 구성돼 있다. 저자가 사용하기에는 아주 적절한 기능이다. 그날의 온도와 습도의 흐름을 볼 수 있고, 원하면 LED를 켤 수 있으니 기본 기능은 다갖춘 셈이다. 여기에 몇 가지 모니터링 기능을 추가하면 데이터 분석도 가능해진다.
이렇게 자신만의 앱을 만들어 가족이나 동료와 함께, 내가 관리하는 농장을 모니터링 할 수 있다. 그것도 언제 어디서나.
마무리
내 농장을 관리하는 센서 시스템과 센서값을 저장하는 클라우드 서버, 그리고 서버에 저장된 데이터를 모니터링하는 앱까지, 세상에 있는 오픈소스와 무료 플렛폼으로 나만의 스마트팜 개발이 완성되고 있다. 다만 제아무리 쉽다해도 아예 모르면 접근 자체가 불가하긴 하다. 당연히 공부가 어느 정도 필요하지만, 전문가가 될 필요는 없는 시대다. 관심이 있다면, 시간 내어 관련 강좌를 듣는 것도 좋을 방법이다. 이제 도전할 용기가 생기는지 모르겠지만, 일단 한번 시도해보면 나도 모르게 재미도 붙고 그러다 보면 전문가도 될 수 있다.
글 / 장선연
신기하고 새로운 기술을 접목하는 걸 좋아해서, 대학원 석사과정 때 연구실 창업을 했다가 결국 자퇴해고 현재는 일에 전념하고 있다. 기술과 예술을 접목한 미디어 아트 분야에서 대학원생 대상 강의를 진행하고 있고, 작은 메이커 스페이스도 운영 중이다.
정리 / IT동아 이문규 (munch@itdonga.com)