1. 서 론
사물인터넷(Internet Of Things)은 각종 사물에 컴퓨터 칩과 통신 기능을 내장하여 인터넷에 연결하는 기술을 의미하며, 가전제품, 모바일 장비, 웨어러블 컴퓨터 등 다양한 시스템에 적용된다[1].
사물인터넷의 다양한 앱과 서비스를 위한 전송 통신 요구 사항은 HTTP(Hyper Text Transfer Protocol) 등의 기존 프로토콜만으로는 수용하기 어렵다. 이를 위하여 제한된 통신 환경을 고려하여 디자인된 저전력 통신 프로토콜인 MQTT(Message Queue Telemetry Transport)는 다수의 클라이언트 연결에 적합한 Publish/Subscribe(발행자/구독자) 모델을 채용하였으며 신뢰성 있는 메시징을 위한 QoS(Quality of Service) 옵션을 제공하여 안정적으로 통신할 수 있게 구현되어 있다[2]. 또한, 개방형 표준메시징 프로토콜을 지향하여 제삼자 기기 제조업체와 소프트웨어 개발업체가 개발하기 용이하게 설계되어 있다. 통신 프로토콜인 XMPP(eXtensible Messaging and Presence Protocol)에 비해 경량이기 때문에 센서 네트워크 등에 적합한 프로토콜이다[3].
그리고 영상을 웹서버를 이용하여 실시간으로 전송함에 있어서 데이터 전송의 신뢰성을 기반으로 한 TCP/IP 기반의 HTTP 프로토콜은 어느 정도의 손실을 감수하고라도 QoS를 만족하여 실시간으로 전송해야 하는 미디어 전송의 특성상 적당하지 않다. HTTP 프로토콜에서 영상 스트리밍을 실시간으로 전송하기 위해서는 HTTP 프로토콜이 상태를 유지하고 UDP로의 전송 채널을 갖추거나 대역폭을 모니터링하여 적당한 패킷 전송률을 유지하여야 하는데 여기에 쓰이는 프로토콜이 RTSP(Real Time Streaming Protocol)이다. 기존의 방식은 웹 서버를 통해서 브라우저로 모니터링 및 제어권을 획득하고, 클라이언트에서 모바일 애플리케이션을 통해 제어를 하고 있다.
본 논문에서는 원거리에서는 기존 방법과 유사하게 데이터를 전송하는 서버와 클라이언트를 구성하고, 실시간으로 온실 환경정보를 전송하여 원격으로 모니터링하며, 근거리에서는 증강현실을 이용하여 온실 상태를 제어하는 시스템을 제안한다. 온실 환경 속에서 인공재배를 위한 시스템이 개발 또는 활용되고 있고 넓은 면적에서 생산량을 늘리기 위해 온실 설치 면적이 증가하고 있는 추세이다. 하지만 재배면적이 증가함에 따라 온실 환경을 편리하게 제어할 수 있는 시스템을 통해 유지 보수 및 관리할 필요성이 높아지고 있다. 이러한 온실 제어를 위하여 아두이노 하드웨어와 MQTT 통신프로토콜을 사용하며, 웹 또는 증강현실 상에서 안드로이드 디바이스를 통해 온도, 조도, 습도를 확인하고 데이터베이스에 저장하여 실시간으로 관리할 수 있고, 아두이노가 제어하는 카메라를 통해서 온실영상을 획득하여 내부 상태를 확인할 수 있는 온실 제어 시스템을 구현한다. 원거리에서는 RTSP를 이용하여 웹상으로 관리하고자 하는 온실 각각의 내부의 환경을 촬영한 영상을 스트리밍을 통해 전송하여 사용자가 실시간으로 온실의 환경을 모니터링할 수 있다. 근거리에서는 제어하고자 하는 온실에 부착된 표식을 안드로이드 디바이스의 카메라로 촬영하여 센서 정보를 실시간으로 증강현실 공간상에 표시해준다. 또한, 과거의 축적된 센서 값 정보를 그래프로 나타낼 수 있다. 이러한 방법을 통하여 원거리에서는 기존의 방법과 유사하게 온실을 제어할 수 있으며, 근거리에서는 모바일 웹시스템 데이터베이스 목록 등으로부터 온실을 찾을 필요 없이 증강현실로 자동 인식하여 온실을 관찰하거나 제어할 수 있는 장점이 있다.
2. 기존 연구
2.1 MQTT 프로토콜
MQTT는 제한된 성능과 빈약한 네트워크 연결 환경에서의 동작을 고려하여 설계된 통신 프로토콜로서 IBM에 의해 개발되고 OASIS에 의해 사물인터넷 표준 프로토콜로서 선정된 기술이다. MQTT는 토픽(Topic) 기반의 발행/구독(Publish/Subscribe) 방식의 모델을 사용하며 메시지 큐를 통해 원격 검침영역에 사용하기 위해 개발되었다.
지정한 토픽에 대한 구독 메시지를 브로커에게 전송하면 해당 주제의 발행 메시지가 발생한다. 이 경우 사용자가 요청한 토픽을 브로커가 중계하여 해당 토픽의 연결 데이터를 전달하는 구조이다. 대표적인 브로커로 mosquitto, moquette, HiveMQ 등이 있다[4,5,6].
2.2 증강현실
증강현실은 표식 기반 증강현실 라이브러리인 ARToolKit을 다양한 플랫폼에서 사용 가능하도록 제작된 NyARToolKit이 대표적으로 사용된다[7∼9].
Fig. 2는 증강현실의 작동원리를 간략화한 시스템 개념도로 애플리케이션이 실행되면 카메라가 실세계를 촬영하면서 카메라 프레임 안에 존재하는 표식의 사각 이미지를 검색하고 사각 이미지가 표식으로 인식될 경우 표식의 3차원 좌표와 방향을 찾아내게 되고, 검색된 표식이 기존 프로그램 상에 등록된 표식 데이터와 일치하는지 비교하게 되고, 검색한 이미지 표식과 등록된 표식 데이터가 일치할 경우, 해당 표식 위에 그려질 객체의 3차원 좌표와 방향을 찾아 카메라 프레임 내부에 객체를 렌더링하게 된다[10].
Fig. 1.Publisher / subscriber model.
Fig. 2.System flow of NyARToolKit, (a) Searching a marker inside a camera frame, (b) Calculating 3D coordinates after marker recognition, (c) Consistent determination with registered markers, (d) Calculating 3D coordinates of a message note, and (e) Rendering an object inside the camera frame.
2.3 RTSP 구조[11]
실시간 스트리밍 프로토콜(RTSP: Real Time Streaming Protocol)은 인터넷을 이용하는 클라이언트/서버 환경에서 시간적 제약 조건이 비교적 느슨한 멀티미디어 정보를 전달하기 위한 통신 프로토콜이다. Fig. 3은 RTSP를 이용하여 영상을 스트리밍하는 방법을 보여준다. 먼저 클라이언트는 웹 서버에게 발표 기술 파일을 요청한다. 발표 기술 파일은 연속매체 파일의 동기화에 대해서 지시할 뿐만 아니라 연속 매체 파일들을 참조할 수 있다.
Fig. 3.RTSP states and request methods.
각각의 RTSP 세션은 서버에 의해서 선택된 세션 식별자를 가진다. 클라이언트는 SETUP요청으로 세션을 시작하며, 서버는 이 요청에 대해 식별자로 답한다. 클라이언트는 TEARDOWN 요청으로 세션을 종료할 때까지 각 요청마다 세션 식별자를 사용한다.
3. 제안된 온실제어를 위한 실시간 전송 시스템
본 논문에서는 실시간으로 온실 내부의 정보를 전송하는 시스템을 구축하고, 원격으로 모니터링하며, 근거리에서 증강현실로 온실 환경을 제어하는 시스템을 제안한다.
3.1 시스템 구조
본 논문에서 제안하는 시스템은 온도, 조도, 습도 센서 그리고 카메라가 설치된 아두이노와 중간에서 데이터를 중계하는 브로커 서버와 데이터를 저장하기 위한 DB 서버, 원거리에서 RTSP를 이용하여 영상을 실시간으로 송출하고, 온실의 환경을 볼 수 있게 하는 웹서버, 클라이언트 역할을 하는 안드로이드 디바이스로 구성된다. 온실환경에 설치한 시스템은 아두이노에서 데이터를 측정하고 브로커 서버에 실시간으로 전송을 하면 브로커 서버는 1시간 간격으로는 DB 서버에 데이터를 저장하고, 클라이언트가 브로커 서버에 데이터를 실시간으로 요청하거나, 최근 24시간의 데이터를 요청할 수 있다. 브로커 서버가 중계함으로써 새로운 시스템이 추가되거나 다른 시스템에 소속하게 되더라도 브로커 서버와 통신을 함으로써 유연하게 대처할 수 있다.
3.2 소프트웨어 구성
본 논문에서 사용한 소프트웨어는 Fig. 5와 같다. 아두이노는 센서값 및 온실 내부 영상을 실시간으로 전달하고, 센서의 값을 DB 서버에 전달하여 저장하며, 다른 클라이언트가 센서를 통해 온실을 제어할 수 있도록 담당한다. 그리고 Mosca 서버[12]는 MQTT 통신을 위한 브로커 역할을 담당하며 클라이언트들간의 지정된 토픽에 대한 데이터 전송을 중계하는 역할을 담당하고, Node.js 서버는 DB를 담당하며 MQTT 프로토콜을 통해 얻은 데이터를 MongoDB에 저장하고 클라이언트에서 값을 요구할 경우 브로커를 통해서 원하는 클라이언트들에게 값들을 전달하는 역할을 담당한다. 웹 서버와 안드로이드 클라이언트는 아두이노로 부터 실시간으로 데이터를 받아오며 원거리일 경우 웹 서버를 통하여 관리하고, 근거리일 경우 증강현실을 이용하여 표식을 인식하여 그에 해당하는 온실의 데이터를 받아오며 터치를 통해서 원하는 데이터 출력 및 제어를 담당한다. iBeacon은 온실 화분의 위치를 찾을 수 있도록 도와주는 역할을 담당한다.
Fig. 4.Schematic diagram of the proposed system.
Fig. 5.Software configuration of the proposed system.
3.3 주요 기능
본 시스템의 주요 흐름은 아래의 Fig. 6과 같다. 주요 기능으로는 iBeacon을 이용한 온실 위치 찾기 서비스, 아두이노로 부터 실시간 온도, 조도, 습도 센서데이터 감지, 실시간 온실 내부 영상, Node.js 서버의 센서 데이터 저장, 최근 데이터 가져오기, 그리고 증강현실을 이용한 아두이노 제어가 있다.
Fig. 6.Main function flow diagram of the proposed system.
iBeacon은 Fig. 7과 같이 주기적으로 주변 범위내로 자신을 광고하는 신호를 전달한다. 신호의 헤더에는 전달하는 신호세기(TxPower)의 정보가 포함되어 있고, 안드로이드 클라이언트가 비콘 신호를 탐색하여 신호가 측정되면 수신 신호 세기(RSSI)를 측정하고 송신 신호의 헤더에 있는 신호세기(Tx-Power) 정보와 비교를 통하여 비콘과 안드로이드 디바이스의 거리를 산출한다.
Fig. 7.Distance calculation process of the beacon and the Android client.
Fig. 8과 같이 사용자와 온실과의 거리가 근거리일 경우 안드로이드 클라이언트에서 증강현실을 이용하고, 원거리일 웹 환경에서 웹서버를 통해 실시간 센서 데이터를 전송하고 RTSP를 통해 실시간으로 영상을 송출한다.
Fig. 8.Greenhouse control method.
웹 환경의 온실제어와 증강현실 상의 온실제어의 두가지 과정을 위한 실시간 센서 데이터 및 RTSP를 이용한 영상 실시간 스트리밍 흐름으로는 Fig. 9와 같다. 안드로이드 클라이언트와 웹서버는 자신이 구독하고 싶어 하는 토픽에 대해 Mosca 서버에 구독을 요청한다. 그 후 아두이노가 실시간으로 센서 데이터 및 영상 데이터에 대하여 Mosca 서버에 토픽의 발행을 요청했을 때 웹 서버는 센서 정보와 RTSP의 발표 기술을 클라이언트에 전송한다. 그러면 클라이언트는 전송된 센서의 정보를 출력함과 동시에 브라우저에 응답 메시지의 content-type 필드에 따라 브라우저에 내장된 미디어 재생기를 활성화한다. 그 후 재생기가 영상에 대한 RTSP PLAY요청을 보내면 웹서버는 RTSP PLAY 응답을 한 후에 촬영된 영상을 자신의 대역내 채널로 내보낸다.
Fig. 9.Real-time sensor data and image acquisition.
Node.js 서버의 온도 및 데이터 저장을 살펴보면 먼저 Node.js 서버는 DB에 저장하고 싶은 데이터를 구독하겠다고 Mosca 서버에게 요청한다. 그리고 아두이노는 온도 및 습도 등의 데이터를 DB에 저장한다고 Mosca 서버에 발행을 요청하면 Mosca 서버는 이 데이터들을 Node.js 서버에 데이터를 보내게 되고 Node.js 서버는 MongoDB에 데이터들을 저장한다.
실시간 데이터 출력 기능의 흐름은 Fig. 10과 같다. 안드로이드 클라이언트와 웹 서버는 자신이 얻고자 하는 데이터를 Mosca 서버에 구독요청을 수행한다. 그리고 안드로이드 클라이언트가 증강현실상의 버튼을 이용하고, 웹 서버는 웹페이지의 버튼을 이용해서 원하는 토픽의 데이터를 Mosca 서버에 발행을 요청하면 Mosca 서버는 안드로이드 클라이언트와 웹 서버가 요청한 토픽의 데이터를 Node.js 서버로 요청한다. Node.js 서버는 Mosca가 요청한 데이터를 확인하고 MongoDB에서 추출한 후 데이터 포맷을 JSON 형식으로 Mosca 서버에 데이터를 발행한다. 그리고 Mosca 서버는 토픽에 대해 구독을 원하는 안드로이드 클라이언트나 웹 서버에게 데이터를 전송한다. 그리고 데이터를 수신한 안드로이드 클라이언트와 웹 서버는 읽은 데이터를 파싱하여 원하는 데이터를 추출한 후 출력한다.
Fig. 10.Output of DB data.
아두이노 제어의 기능에 대한 흐름은 Fig. 11과 같다. 먼저 아두이노에서 제어하고자 하는 장치의 토픽의 구독을 요청한다. 그리고 안드로이드 클라이언트나 웹상에서 이벤트를 발생시켜 원하는 장치의 토픽에 대한 명령을 Mosca 서버에 발행을 요청한다. 그리고 Mosca 서버는 제어하고자 하는 장치의 토픽을 구독하고 있는 아두이노에게 데이터를 전송하고 데이터를 수신받은 아두이노는 데이터 값을 읽어들인 후 명령을 실행한다.
Fig. 11.Arduino control.
4. 실험 및 결과
본 논문에서 제안한 시스템의 구현 및 개발 환경은 Table 1에 나타낸다. 안드로이드 MQTT 라이브러리인 IA92를 활용하여 안드로이드 환경에서의 MQTT 통신을 구현하였다. 그리고 MQTT 프로토콜의 브로커는 Node.js 기반의 Mosca를 사용하였으며 브로커 및 DB Server의 OS는 Linux 환경의 Ubuntu 12.04 LTS를 사용하였고, 안드로이드 클라이언트는 Wi-Fi 통신을 이용하여 실제 네트워크와 유사한 환경에서 테스트하였다.
Table 1.Simulation environments
근거리에서 온실을 제어하게 될 경우 Fig. 12와 같이 표식을 안드로이드 디바이스의 카메라로 촬영하여 디바이스의 스크린 내부의 가상공간에 온실 내부의 상태와 제어할 수 있는 인터페이스를 직관적으로 출력할 수 있게 구현한다. 재배 환경이 다수의 대형 비닐하우스일 때 비닐하우스 내부에 들어가서 확인할 필요 없이 입구에서 표식만 촬영하여 내부 상태를 한눈에 파악함으로써 다수의 온실을 관리할 때 시간을 단축시킬 수 있다.
Fig. 12.Data representation of augmented reality.
원거리일 경우는 Fig. 13과 같이 웹서버에서 온실의 실시간 영상과 온실의 현재 정보를 실시간으로 받아볼 수 있다. 또한 웹페이지의 버튼을 통해 온실을 제어할 수도 있다. 웹서버에서 데이터를 받아오는 원리는 안드로이드 클라이언트와 같은데 이것은 사물인터넷 표준 프로토콜인 MQTT가 다양한 디바이스의 다른 통신 방식을 통일할 수 있기 때문이다. 따라서 안드로이드 클라이언트와 웹서버 이외의 다른 환경에서도 브로커 서버와 통신하여 데이터를 중계받으면 같은 방법으로 자유롭게 확장이 가능하다는 장점이 있다.
Fig. 13.Greenhouse data representation and its realtime video on web.
5. 결 론
본 논문에서는 MQTT와 RTSP를 통한 온실 정보의 실시간 전송 시스템을 제안하였다. 최근 모바일로 제어하는 환경은 온실을 식별할 수 있는 정보가 없으면 온실 환경의 정보를 습득할 수 없다. 따라서 근거리에서도 온실을 찾기 위한 수단이 필요한 문제가 있다. 이러한 단점을 극복하기 위하여 근거리와 원거리에서 각각 다른 방식으로 온실을 관리 및 제어하도록 구현하였다. 사용자는 이 시스템을 통해 근거리에서 모바일 웹 시스템 데이터베이스 목록 등으로부터 온실을 찾을 필요 없이 증강현실로 자동 인식하여 온실을 관찰하거나 제어할 수 있도록 하였고, 원거리에서는 웹을 통하여 RTSP를 통한 온실의 영상을 실시간으로 볼 수 있게 하였으며, 온실 상황에 맞춰서 온실 환경을 제어할 수 있게 하였다. 비록 본 논문에서는 온실제어 분야만 국한하여 응용을 제시하고 있으나, 다양한 응용분야에 제안한 시스템이 적용 가능할 것으로 기대된다.
References
- J. Höller, V. Tsiatsis, C. Mulligan, S. Karnouskos, S. Avesand, and D. Boyle, From Machine-to-Machine to the Internet of Things: Introduction to a New Age of Intelligence, Academic Press, San Diego, 2014.
- International Business Machines Corporation, Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry, 2012.
- MQTT, http://MQTT.org (accessed Jan., 10, 2014).
- Mosquitto, http://mosquitto.org/ (accessed Apr., 3, 2015).
- HiveMQ, http://www.hivemq.com/ (accessed Mar., 23. 2015).
- Moquette, https://projects.eclipse.org/proposals/moquette-mqtt/ (accessed Dec., 29, 2014).
- NyARToolkit, http://nyatla.jp/nyartoolkit/wp/(accessed Feb., 20, 2014).
- W. Sohn and H. Hong, “Implementation of Augmented Reality by ARToolkit on Smart-phone,” Proceeding of Institute of Electronics and Information Engineers Conference, pp. 1666-1667, 2010.
- S.-K. Kwon and S.-H. Jo, “Community-Based Travel Information System Using Augmented Reality,” Journal of Korea Multimedia Society, Vol. 18, No. 2, pp. 97-105, 2015. https://doi.org/10.9717/kmms.2015.18.2.097
- P. Oh, E. Kim, S. Kim, and C. Song, “AR-Pet Game using Augmented Reality Toolkit,” Proceeding of Human Computer Interaction Conference, pp. 853-855, 2013.
- IETF, Real Time Streaming Protocol, RFC 2326, 1998.
- MOSCA, http://www.mosca.io/ (accessed Sep., 1, 2014).
Cited by
- 회전기계류 상태 실시간 진단을 위한 IoT 기반 클라우드 플랫폼 개발 vol.41, pp.6, 2015, https://doi.org/10.3795/ksme-a.2017.41.6.517
- 모듈러 주택을 위한 자동 센서 감지기반 홈자동화 제어보드 개발 vol.17, pp.6, 2015, https://doi.org/10.7236/jiibc.2017.17.6.33
- RPL 기반 분산 MQTT 브로커 구조 설계 및 구현 vol.21, pp.9, 2015, https://doi.org/10.9717/kmms.2018.21.9.1090
- Z-Wave 네트워크 환경에서 MQTT 기반 대기전력 절감 시스템 설계 및 구현 vol.23, pp.3, 2015, https://doi.org/10.9717/kmms.2020.23.3.421