스마트팜 (smart farm): 농림축수산물의 생산 및 가공, 유통 단계에서 ICT(정보통신기술)를 접목한 지능화 농업 시스템. 사물인터넷(IoT), 빅데이터, 인공지능 등의 IT기술을 통해 농작물, 가축 및 수산물 등의 생육 환경을 적정하게 유지, 관리하고, PC나 스마트폰 등으로 원격 자동 관리할 수 있어 생산 효율성과 편리성을 높일 수 있다. (네이버 용어사전)
스마트팜 시스템은 사실 고도의 스킬이 필요한 분야다. 때문에 틀에 박힌 스마트팜 장치만 믿고 농사를 시작했다가는 수확 결과가 좋지 않을 수도 있다. 각 장치를 자신의 입맛에 맞게 설정, 사용할 수 있다면, 스마트팜을 좋은 농사 조력자로 만들 수 있다.
스마트팜이 보급되던 초기에는 시스템 신뢰성이 그리 높지 않았다. 농부마다 자신이 경험으로 익힌 노하우나 방법을 우선으로 작물을 키웠기 때문이다. 요즘 젊은 농부들은 좀 다르다. 스마트팜 시스템을 자신의 농사 상황에 맞게 잘 구축해 활용하고 있다. 좋은 정보, 유용한 정보를 충분히 구분할 수 있고, 특히 IT기술에 대한 믿음을 갖고 있어서, 스스로 뭔가 배워 시도하려 노력하면서 발전하는 것이다.
이런 농업의 '얼리아답터'들은 직접 시스템을 만들어 적용한다. 아두이노 등을 통해 사물인터넷 시스템을 꾸며 활용하고 있다. 자신의 농장 환경에 필요한 기능을 직접 구축하면서 시행착오를 거쳐 견고한 시스템으로 안착된다.
최근엔 IT엔지니어나 개발자가 아닌 일반인도 앱 같은 IT 도구를 손쉽게 직접 만들 수 있다. 일반인도 충분히 활용할 만한 플랫폼들이 나오고 있기 때문이다. 물론 초기에는 접근의 어려움이 약간 있을 수 있으나, 전문 개발도구보다는 확실히 쉽고 직관적이기에 한번 도전해볼 만하다.
로우 코드 플랫폼,
마이크로소프트나 구글 등은 무료 또는 저렴하게 앱을 만들어 사용할 수 있는 툴을 제공하고 있다. 이를 잘 활용하면 자신이 원하는 자신만의 앱을 만들어, 환경센서 모니터링이나 스마트팜을 제어가 가능하다. 이번 글에서는 그 가능성을 한번 짚어본다.
온습도센서 연결하기
온습도센서는 모든 환경 데이터 수집에서 가장 기본이 된다. 생물이 사는 환경은 적당한 온도와 수분을 맞춰줘야 하기 때문이다. 식물도 종류에 따라 적당한 온도와 수분이 정해져있는데, 그 정도는 작물의 재배주기에 따라 가변하여 조정해야 한다.
비트모스 아두이노 실드에 연결된 온습도센터 / 출처=장선연
이전 글에서 언급한 온습도센서는 몇 가지 모양이 있다. 사실 모양보다는 내부 소자에 따라 프로그래밍이 달라지는데, 여기에 활용된 센서는 'DHT11' (또는 'DHT22')이다.
DHT11 센서의 외형 / 출처=더엔지니어링프로젝트닷컴
센서의 선은 모두 3개인데, 전원 2개와 신호선 1개다. 위의 사진처럼 연결하면 된다. 다만 DHT11은 실제 산업현장에서 사용하기에는 좀 무리가 있다. 보는 바와 같이 패키지로 되어 있지 않아서 부식에 취약하기 때문이다. 때문에 혹시 현장에 직접 사용하려면 패키지가 잘된 제품을 선택하는 게 좋다. 집에서 키우는 작물이라면 이 센서로도 큰 무리는 없다.
코딩은 스태커(stacker)를 활용한다. 순서는 먼저 메이커링크를 작동시키고, 스태커 사이트에 들어간 후 아두이노를 연결하면 된다. USB에 아두이노를 연결하고 메이커링크에서 'connect'를 누르면 연결된다.
USB로 아두이노 연결 후 메이커링크 실행 / 출처=장선연
이제 코드를 만들 스태커를 한번 열어보자. 스태커에는 이미 활용 가능한 블록이 준비돼 있다. 이 블록을 필요에 따라 논리적으로 얹어주면 프로그램이 완성된다. 확장블럭을 클릭하면 여러 가지가 나오는데, 그중에서 'Tinyfarmer(타이니파머)'를 클릭하면 관련 블록들이 나열된다.
확장블럭 중
이들 블록은 그 용도가 정해져 있기 때문에 용도를 명확하게 알고 사용해야 한다. 일단 온습도 관련된 블록들을 살펴보자. 센서 초기화를 위해서는 '온습도센서 초기화' 블럭을 가장 먼저 사용해야 한다. 그리고 나면 바로 '온도센서 읽기'와 '습도센서 읽기'로 각각의 센서값을 읽으면 된다. 아래 3개의 블럭이 온습도 센서의 기본적인 블럭 구조다.
온습도센서 제어 블럭 / 출처=장선연
이제 이들 블럭으로 간단하게 센서값을 읽는 코딩을 해본다. 초기화는 한번만 되고 무한반복적으로 현재 값을 읽어야 하므로, 센서값들을 무한반복부에 넣어서 실행되도록 한다. 그리고, 센서값을 읽어서 보려면 시리얼통신 연결을 통해 아두이노가 넘기는 값을 직접 받아야 한다.
출처=장선연
제일 처음 '클릭했을 때'라는 시작 블럭을 넣는다. 사실 별 의미는 없지만, 처음이라고 표시하기 위함이다. '온습도센서 초기화' 블럭을 넣고, 핀값에 '17'이라고 적는다. 이는 아두이노 17번 핀에 센서가 연결되어 있다는 의미이며, 사용이 가능하도록 초기화 과정을 거친다.
무한반복 블럭 안에 있는 온도센서 읽기 블럭과 습도센서 읽기 블럭이 무한반복으로 값을 읽고 시리얼통신으로 출력함으로써 우리가 확인할 수 있는 것이다. 이렇게 출력된 온습도 값 문자열은 어디에 출력되느냐, 바로 메이커링크에 출력된다.
메이커링크에 출력되는 온습도 측정값 / 출처=장선연
조도센서 연결하기
조도센서는 빛의 양을 측정하는 센서다. 작물에게 적정한 일사량은 필수 요소라 생장주기에 따라 일사량을 조절해 작물이 고르게 자랄 수 있도록 관리해야 한다. 조도센서 값은 일반적으로 '럭스(Lux)' 단위로 표시된다. 자연광을 그대로 직접 받으면 상당의 럭스의 빛이 측정되기 때문에, 실제로는 범위가 넓은 센서를 사용해야 하지만 여기서는 일단 작은 범위의 센서를 적용한다.
'BH1750' 센서는 가격도 저렴하고 사용하기 편한 센서다. 빛은 직진성이 있다보니 센서 방향에 따라 값이 달라질 수 있으므로, 빛의 양이 골고루 퍼질 수 있도록 캡이 씌워진 센서를 선택하는 게 좋다.
조도센서 내부와 케이스 / 출처=장선연
조도센서를 사용하기 위한 스태커 블럭은 다음과 같다.
출처=장선연
조도센서를 먼저 연결한다. 조도센서는 I2C라는 통신으로 센서값을 읽는다. 그래서 전용 포트가 따로 있는데, 아래 사진과 같이 I2C전용 포트에 연결하면 된다.
조도센서 제어블럭 / 출처=장선연
조도센서 코딩도 온습도센서와 순서가 같다. 초기화 블록을 한번만 실행되도록 반복구문 위에 놓고, 반복구문 안에서는 계속해서 읽고 출력하기만 하면 된다.
출처=장선연
메이커링크에 조도 값이 출력된다 / 출처=장선연
마무리
이번 글에서는 스태커 실전 코딩으로 식물 성장에 중요한 온습도센서와 조도센서를 연결해봤다. 사실 여기에 LCD 창을 달아 현재 값을 현장에서 확인하며 데이터베이스에 자동저장되도록 해 앱으로 볼 수 있어야 진정한 나만의 스마트팜 시스템이 된다.
블럭 프로그램은 이런 시스템을 만들 때 좀더 쉽게 접근하도록 도와주는 로우 코드(Low Code) 툴이다. 여기에 앱을 개발할 수 있는 구글 스프레드시트와 앱시트(구글의 로우 코드 앱 개발 플랫폼)를 더한다면 완벽한 사물인터넷 기반의 스마트팜 시스템을 만들 수 있다. 나만의 작은 스마트팜 구축에 반드시 필요한 플렛폼이니, 이어지는 글을 통해 좀더 완벽한 사물인터넷 시스템으로 만들어보자. 조금만 관심을 가지면 이런 툴을 통해 얼마든지 자신의 의도대로 시스템을 구축할 수 있다.
글 / 장선연
신기하고 새로운 기술을 접목하는 걸 좋아해서, 대학원 석사과정 때 연구실 창업을 했다가 결국 자퇴해고 현재는 일에 전념하고 있다. 기술과 예술을 접목한 미디어 아트 분야에서 대학원생 대상 강의를 진행하고 있고, 작은 메이커 스페이스도 운영 중이다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.