반려동물 자동 급식기를 가진 스마트 IoT 시스템 구현
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.
초록
기존 반려동물 자동 급식기와 IoT(Internet of Things) 기술은 본래 다른 요소의 하드웨어를 가지고 있어 각각의 동작 결과값을 한 화면에서 동시에 볼 수 없다는 문제점을 가지고 있다. 상기의 문제점을 해결하기 위해 본 논문에서는 라즈베리파이를 이용하여 자동 급식기와 IoT 기술을 하나의 통합 시스템으로 구성하고 동작 결과를 스마트폰 어플을 통해서 하나의 화면으로 확인하는 스마트 IoT 시스템을 제안하고 구현하였다. 안드로이드 스튜디오로 구현한 스마트폰 어플은 MQTT(Message Queueing Telemetry Transport)의 발생자 역할로 사용하고 라즈베리파이를 구독자 및 브로커 역할로 사용한다. 실험결과를 통하여 스마트폰의 어플과 라즈베리파이를 통신하기 위해 MQTT를 사용하여 반려인의 원격 조작이 가능한 구현된 스마트 IoT 시스템이 정상적으로 동작함을 확인하였다.
Abstract
As the existing automatic pet feeder and IoT technology originally have hardware of different elements, there is a problem that each operation result cannot be shown on one screen at the same time. In order to solve the above stated problem, this paper proposes and implements a integration system that organize the automatic pet feeder and IoT technology into one using Raspberry Pi and checks the measured results on a single screen through a smartphone application. The smartphone application implemented by Android Studio is used as a generator of MQTT and the Raspberry Pi is used as a subscriber and broker. Through the experimental results, we confirmed that the implemented smart IoT system using MQTT between smartphone and application, which allows pet owner to remotely operate, was worked properly.
Keywords:
Raspberry PI, Pi camera, IoT application, Pet feeder키워드:
라즈베리파이, 파이카메라, IoT, 어플, 반려동물 급식기Ⅰ. 서 론
최근 들어서 더 많이 반려동물을 키우고 있고 심지어 그에 따른 국가적인 정책도 필요해지고 있는 상황이기 때문에 사회적 중요도 및 관심도가 급격하게 증가하고 있다. 이러한 분위기를 반영하여 더 많은 기술들과 제품들이 필요하고 개발되고 있다. 앞으로 다양한 방법으로 반려동물을 위한 스마트 IoT 시스템 연구는 지속적으로 진행될 것으로 예상된다.
현재에도 대중적인 반려견이나 반려묘에 대한 다양한 IoT 제품들이 출시되고 있고 여기서 더 나아가 그 제품들에 대한 부족한 부분들을 보충하고 대중적인 반려견이나 반려묘가 아닌 다른 비인기 반려동물에 대한 맞춤 제품들을 더 추가하는 방향으로도 연구를 발전적으로 진행한다면 반려동물과 생활하는 사람들과 앞으로 반려동물을 키우게 되는 사람들에게 편리성을 제공해 줄 수 있을 것이다.
따라서 상기의 연구를 구현하기 위해서는 라즈베리파이와 스마트폰 애플리케이션과의 연동이 필요하게 된다. 기존에 라즈베리파이와 스마트폰 애플리케이션과 연동을 통하여 IoT 시스템을 구현할 때 방법모드를 추가한 WiFi 기반 스마트 IoT 시스템 구현에 대한 연구[1]와 CCTV와 IoT를 하드웨어로 구성하고 센서값과 파이카메라를 통해 촬영한 화면을 확인 할 수 있는 시스템에 대한 연구[2]도 있었다.
기존의 자동 급식기 중에서 가장 유명한 제품으로는 PETOI의 자동 급식기가 출시되고 있다.[3] 그러나 본래의 반려동물 자동 급식기와 IoT 기술은 다른 하드웨어적인 기기를 사용하여 독립적으로 사용해야 하고 원래의 자동 급식기와 IoT 시스템의 측정값을 어플을 통해서 볼 때 서로 다른 시스템으로 확인을 해야 했다. 이런 번거로움을 없애기 위하여 본 논문에서는 라즈베리파이 3를 연결하여 IoT 기술을 결합한 자동 급식기를하나의 기기로 구성하여 한 화면에서 확인이 가능하도록 구현하였다.
제안된 방법을 사용할 경우에 한가지 시스템을 이용하여 두가지 시스템을 즉, 자동 급식기와 IoT 시스템을 통합했다는 잇점을 가진다. 본격적으로 제안하는 자동 급식기와 IoT 기술의 연결 시스템은 라즈베리파이를 통해 버튼 클릭시 자동 급식과 파이카메라를 통해 영상을 스트리밍한다. 촬영한 영상은 스마트 폰 어플을 통해 자동 급식과 영상을 한 번에 확인할 수 있게 된다.
본 논문의 Ⅱ장에서는 기존에 시중에 출시된 자동 급식기와 IoT 시스템을 기술하고, Ⅲ장에서는 제안하는 자동급식기와 IoT의 통합 시스템을 소개하며, Ⅳ장에서는 본 논문에서 제시한 방식으로 구현한 결과를 말하고, 마지막 Ⅴ장에서 결론을 맺는다.
Ⅱ. 기존의 자동 급식기 시스템
기존의 자동 급식기 중에서 가장 유명한 제품으로는 PETOI의 자동 급식기가 출시되고 있다. 페토이는 반려동물로서 가장 많이 키우고 있는 강아지와 고양이를 키우는 사람들을 주된 고객층으로 서비스를 제공하고 있다. 기본적으로 각각의 반려동물마다 식습관이 다르기에 식사량을 조절할 수 있도록 구성하였고 밀폐형 커버를 사용하고 좌우 회전하여 여닫는 형식으로 사료의 냄새가 퍼지는 것을 막아줍니다. 또한 반투명한 사료 통으로 남은 사료의 양을 확인 가능하면 청소에도 편리합니다. 용량은 2.8L의 대용량이고 마지막으로 음성기능을 추가하여 반려동물이 주인의 목소리 혹은 좋아하는 소리로 급식에 도움을 줄 수 있는 장점이 있습니다.
일반적으로 자동 급수기의 경우는 자동 급식기보다 저렴한 가격으로 판매하고 있다. 하루 평균 반려동물이 마셔야 하는 물의 양은 1Kg당 60~65ml이기에 자동 급수기도 자동 급식기 못지않게 중요한 필요제품이다. 자동 급식기와 마찬가지로 2.8L의 대용량으로 구성하였고 반려동물의 높이를 고려하여 16cm의 높이로 반려동물이 편하게 마실 수 있도록 만들었다. 반려인들의 불편을 최소화하기 위해서 센서 기능을 탑재하여 반려동물이 필요할 때만 급수기가 작동하는 모드를 추가하였다. 눈에 보이는 LED 센서를 사용하여 급수기 안에 있는 물 의양을 알 수 있는 장점 또한 가지고 있다. 표 1에서는 기존 제품인 페토이 자동 급식기의 사양이다.[3]
Ⅲ. 제안하는 통합 시스템
IoT 기술로 자동 급식기를 구현하기 위해서는 하나의 라즈베리파이에 DC 모터, 라즈베리파이, 라즈베리파이 카메라, DC 드라이버를 이용하여 하드웨어를 구성하고 자동 급식기과 반려동물의 상태를 보기 위해 그림 1과 같이 파이카메라와 DC 모터를 탑재한 자동 급식기를 구성하여 하나의 하드웨어로 자동 급식기를 제공하는 통합 시스템을 제안하여 기존의 자동 급식기의 단점들을 해결하고 있다. 제안할 자동 급식기이 기존 자동 급식기들과의 가장 큰 하드웨어 차이점은 각각 따로 존재하였던 자동 급식기와 IoT 기술을 라즈베리파이 3에 통합하여 하나의 스마트폰 어플로 동작하는 통합 시스템으로 구성했다는 장점이 있다.
그림 1은 통합 시스템의 동작 순서도를 보여주고 있다. 제안한 통합시스템은 SSH(Secure Shell) 원격제어를 이용하여 라즈베리파이를 동작시키고 스마트폰 어플에 라즈베리파이의 해당 IP로 접속하여 라즈베리파이가 측정한 값들을 실시간으로 스마트폰 어플로 보내주고 또 한번 SSH 원격제어를 이용하여 라즈베리파이가 어플로 영상을 전송시키면서 스마트폰 어플에서 볼 수 있게 된다. 스마트폰 어플로 측정값과 영상을 동시에 한 화면에서 볼 수 있게 되는 것이다.
Ⅳ. 제안하는 통합 시스템의 구현결과 및 분석
표 2는 제시하고 있는 통합 시스템의 구성 환경이다. 하드웨어는 라즈베리파이 3와 라즈베리파이 카메라와 DC모터를 사용하였다. 라즈베리파이 3의 내부 언어는 파이썬을 사용하였고 해당 스마트폰 어플은 Android Studio로 구현하였다.
그림 2와 같이 라즈베리파이 3를 중심으로 자동 급식기에 사료를 급식하도록 일정시간 돌아가도록 만들어주는 DC motor 와 DC moter의 출력을 증폭시켜주는 DC drive를 연결한다. 이 모든 작동을 위한 에너지 창고인 12V battery 로 구성되고 여기에 반려동물의 사료를 먹는 모습과 평소 모습을 관찰하기 위한 pi 카메라를 설치한다.[4][5]
4-1 제안하는 통합 시스템의 통신 기능
본 논문에서 스마트폰의 어플과 라즈베리파이를 통신하기 위해 MQTT 통신을 사용한다. MQTT는 Message Queueing Telemetry Transport 의 약자로 ISO 표준 발행-구독 기반의 메시징 프로토콜이다. 쉽게 이야기해서 네트워크 프로토콜로 장치와 장치간의 메시지를 주고 받을 수 있게 해주는 기술이다. 보편적으로는 프로토콜이 TCP/IP 상에서만 동작할 수 있지만 패킷 자체의 순서가 그대로 유지되고 손실이 없으면서 양방향으로 연결하여 모든 네트워크 프로토콜은 MQTT를 지원할 수 있다. 낮은 전력과 낮은 대역폭과 같이 제한된 환경에 원활하게 이용하도록 설계되어있다. 흔히 메시지 브로커라고 부르는데 이유는 클라이언트의 요청을 그저 보내는 것이 아니라 클라이언트 간에 메시지를 전송하는 중개 역할을 해주기 때문이다. 사용자는 안드로이드 스마트폰 어플 버튼을 클릭하여 DC 모터를 구동시키는 것과 라즈베리파이의 카메라의 스트리밍된 화면을 볼 수 있는 것이다.
4-2 제안하는 통합 시스템의 소프트웨어 구현
라즈베리파이의 소프트웨어를 구현하기 위해 최근에 가장 인기있는 프로그램 언어인 파이썬으로 구현하였다. 웹으로 영상을 보내기 위해 Mjpg-streamer을 이용하였다. 라즈비안을 설치하고 모니터를 대신하여 VNC(Virtual Network Computing)를 모니터와 같은 역할을 하게 만든다. rufus 프로그램 설치 후 이동식디스크에 복사하고 디스트에 일반파일 SSH와 wpa_supplicant.conf 파일 생성 아래파일에 설치한다. 이는 라즈베리파이가 자동으로 와이파이에 연결하기 위함이다. *디스크 꺼내기를 하지 않으면 저장이 되지 않기 때문에 조심하여야 한다. 그 후 sd 카드를 넣고 라즈베리 실행한다. 공유기 설정에서 파이의 주소 확인 푸티로 접속하고 ras 아이피 192.168.0.19 로 설정한다.
초기아디 pi 비번 raspberry 되어 있는 것을 확인하고 sudo raspi-config (관리자로서 사이트에 연결된다.) 으로 연결하여 vnc 활성화를 시킨다. 연결이 끊어지면 세션다시하기 클릭후 재 로그인 하여 netstat –tnlp로 5900포트가 오픈되어 있는 지 확인한다. 확인이 완료되었다면 vnc 연결 192.168.0.19:5900 로 설정한다. 처음 VNC 해상도가 맞지 않아 알아보기 힘들기 때문에 새롭게 설정한다.
해상도 sudo nano /boot/config.txt 열어서hdmi_force_hotplug=1 / hdmi_group=2 /hdmi_mode=28 /hdmi_cvt=1024 768 60 0 0 0 등 기본설정을 마친다. 다음은 웹캠 스트리밍 기술이다. cmd창에서 motion을 설치 /etc/motion/motion.conf 설정파일인데 여기서 데몬을 켜주고 해상도는 width 640, heigh 480으로 framerate 100으로 해서 초당 100개의 화면을 보여 주도록해서 화면이 잘 움직이게 한다. 그리고 output off로 설정한다. 이는 녹화하지 않고 스트리밍하기 위함 메모리를 위해 off 하는 것이다.
그림 3은 라즈베리파이 해상도 설정 화면을 보여주고 있다. 그림 3에서는 처음 해상도가 맞지 않아 sudo nano /boot/config.txt 열어서 hdmi_force_hotplug=1 // hdmi_group=2 //hdmi_mode=28 // hdmi_cvt=1024 768 60 0 0 0 의 기본 설정을 해두었다.[6][7][8] [9]
그림 4에서는 output을 off로 꺼두어서 녹화를 하지 않고 스트리밍만을 하기 위해서 메모리를 off로 설정하였다. 이를 on으로 설정한다면 녹화가 끊임없이 진행되어 대용량의 카드가 필요할 것이다.
그림 5에서는 실제 어플에 접속하여 반려동물의 현 상황을 보여주도록 하는 모습이다. 집 밖에서도 반려동물의 모습을 확인하여 반려인의 불안감을 없애주고 사고가 발생했을 때의 빠른 사건 해결로 언제 생길지 모르는 반려동물의 부상을 예방할 수 있다.
스마트폰 어플은 구글이 안드로이드 앱 개발을 위해 JetBrains사의 IntelliJ IDEA를 기반으로 해서 만든 통합 개발 환경인 Android Studio로 구현하였다. 이는 이클립스를 대체하여 안드로이드 공식 IDE(Integrated Development Environment)가 되었다. 안드로이드용 스마트폰 앱을 구현할 수 있어 본 작품에 활용하였다. 그림 6과 그림 7은 Activity가 실행될 때 호출되는 onCreate 소스이다. MQTT의 클라이언트 객체를 생성하고 그림 8에 나온 코드를 통해서 MQTT의 브로커와 클라이언트가 잘 연결이 되었는지 확인해주고 이 부분에서 어플에서 버튼 클릭 즉 신호 발행을 해주면 라즈베리파 sub에서 구독할 수 있도록 만들어 주는 화면이다. 이를 통하여 어플의 간단 조작만으로 외부에서도 반려동물의 상태나 상황을 보고 관리할 수 있도록 구상하였다.[10]
4-3 구현 결과 및 분석
그림 8에서는 제안하는 자동 급식기와 IoT의 통합 시스템을 시각적으로 본 모습이다. 사용자는 컴퓨터의 VNC를 통해 라즈베리파이를 구동시키게 되고 스마트폰 어플으로 접속하길 대기한다. 만약 스마트폰으로 접속을 한다면 라즈베리파이를 작동시키고 버튼 클릭시 DC 모터를 작동시킬 수 있도록 만들고 파이카메라로 촬영한 영상을 웹스트리밍으로 전달하고 해당 웹페이지를 통해 어플으로 해당 영상을 실시간으로 출력해준다.[11] 그림 9의 경우는 기존 시스템인 “펫 스테이션”의 어플의 사용 모습이다.
그림 10의 왼쪽에는 제안하는 자동 급식기와 IoT 통합 시스템의 어플을 스마트폰에서 실행한 화면이다. 그림 10의 오른쪽 사진의 강아지에게 밥을 주는 반려인 모습의 1 번 버튼 클릭시 맨 위 B구간에는 반려동물의 모습을 밥 먹는 모습 보기거나 혹시 모를 사고 등을 예방하기 위해서 실시간 동영상이 나오도록 구현하였고 아래 A 버튼 클릭시에 C 구간에는 날짜와 시간표시가 나타나는 것과 동시에 Raspberry Pi에 연결되어 있는 DC모터가 가동하여 자동 급식기 통에 있는 사료를 아래로 떨어트려 반려동물에게 급식을 진행한다. 다시 왼쪽 화면의 카메라 모양의 2 번 버튼 클릭시 1 번 버튼을 통해 나오는 스트리밍화면보다 큰 화면으로 실시간 동영상을 볼 수 있도록 구현하여 더 자세하게 반려동물의 모습을 볼 수 있도록 하였다.
표 3은 제안한 통합 시스템과 기존의 ‘PETOI 자동급식기’, ‘펫스테이션’의 장단점을 비교 분석한 표를 보여주고 있다. 기존 제품인 PETOI에는 없던 자동 급식기용 어플 기능을 추가였고 이를 통하여 집안에서 뿐아니라 집밖에서도 자동 급식기가 가능하도록 하였다. 반려동물의 밥을 먹는 모습이나 반려인이 없을 시 집에서의 모습을 보여주기 위해서 실시간으로 영상을 보여주는 실시간 비디오의 기능도 구현하였다. 제안한 제품과 유사한 기존 제품인 pet station의 경우는 이러한 많은 기능을 가지고 있기에 높은 가격으로 판매를 하고 있지만 본 논문에서 제안하는 시스템의 경우는 저렴한 가격으로도 이 모든 기능을 가능하게 하였다.
기존의 다양한 자동 급식기와 IoT가 각각 따로 사용해야 했지만 본 논문에서는 자동 급식기와 IoT를 하나의 하드웨어와 소프트웨어를 통합 시스템으로 구현시킴으로써 그 단점을 극복하였고, 기존 ‘PETOI 자동급식기’ 에 추가적인 기능으로 파이 카메라를 부착하여 반려인이 집에 없는 상황에서도 반려동물의 상황을 볼 수 있고 급료를 제공하는 등 밖에서도 안심하고 관리할 수 있도록 구현하였다. 제안하고 있는 시스템에서는 기존에 있는 상용 제품들에 비해서 훨씬 더 저렴한 비용으로 만들 수 있다는 장점을 가지고 있다. 실제 페토이의 경우는 10만원대 펫스테이션의 경우는 20만원선으로 판매되고 있다. 이에 비해서 본 논문에서 제안하고 있는 제품은 5~6만원대의 비교적 저렴한 가격대로 구성하였다. 이는 향후에 상용화된 제품으로 대량 생산할 수 있다면 더욱 비용 절감효과가 발생할 수 있다.[10] [11]
Ⅴ. 결 론
본 논문에서는 라즈베리파이 3를 활용하여 하드웨어적으로 단 하나의 기기로 자동 급식기와 IoT 기술을 하나의 통합 시스템으로 구성 및 구현하였고 하나의 화면에서 반려동물의 먹이를 주는 급식과 라즈베리파이 카메라를 어플을 통해서 구현하였다. 제안된 방법은 다른 여러 기기를 추가할 필요없이 하나의 기기를 이용하여 자동 급식기와 IoT 기술을 구성했다는 장점을 가진다. 본 논문을 구현하기 위해서 하드웨어는 라즈베리파이와 여러 부품을 사용하여 IoT 시스템을 구현하였고, 반려동물 확인 카메라와 자동 급식기를 구현하였다. 소프트웨어는 파이썬과 어플을 프로그래밍하기 위한 Android Studio를 사용하였다. 향후 계획은 본 논문에서 제시하는 시스템의 다양한 기능을 추가하는 것이다. 어플에 전화 기능을 추가하여 나의 목소리를 자동 급식기를 통해서 반려동물과 화상전화를 할 수 있게 하고 시간 조정 기능 그리고 사료만을 급식해 줄 뿐 아니라 물이나 간식 등을 제공해 줄 수 있도록 구현하는 것도 가능할 것이다.
References
- Eun-Mo Ahn, Dong-Hoi Kim, “Implementation of Integrated Platform of Face Recognition CCTV and Home IoT(Internet of Things)”, The Journal of Digital Contents Society, Vol. 19, No. 2, pp. 393-399, Oct. 2018
- Hee-Jun Yang, Dong-Hoi Kim, “Implementation of Smart Home IoT System based-on WiFi adding the Proposed Security Mode(Internet of Things)”, The Journal of Digital Contents Society, Vol. 20, No. 12, pp. 2495-2504, Aug. 2019 [https://doi.org/10.9728/dcs.2019.20.12.2495]
- https://www.python.org/
- http://www.rasplay.org/?p=6783
- Sejal Patel, Priyadarshani Raskar, “Remote Control of Android Phones Using VNC”, International journal of engineering research and applications, Vol. 4, No. 1, pp. 141-144, 2014
- Sung-Hoon Lee, June-Yeop Lee and Jung-Sook Kim, “Monitoring System for the Elderly Living Alone Using the RaspberryPi Sensor”, The Journal of Digital Contents Society, Vol. 18, No. 8, pp. 1661-1669, 2017
- https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi
- https://developer.android.com/studio/index.html?hl=ko
- https://www.thingiverse.com/thing:2531911
- https://petoi.co.kr/
- http://www.openbrain.co.kr/
저자소개
2014년~현재: 강원대학교 IT대학 전기전자공학부 전자통신학과 학사과정
※관심분야:무선네트워크 및 사물인터넷(IoT) 등
2005년 : 고려대학교 전파공학과 (공학박사)
1989년 1월~1997년 1월 : 삼성전자 전임연구원
2000년 8월~2005년 8월 : 한국전자통신연구원 선임연구원
2006년 3월~현재 : 강원대학교 IT대학 전기전자공학부 전자통신학과 교수
2020년 6월~현재 : 강원대학교 정보화본부장
※관심분야:네트워크