Journal Archive

Journal of the Korean Society of Marine Engineering - Vol. 40 , No. 6

[ Original Paper ]
Journal of the Korean Society of Marine Engineering - Vol. 40, No. 6, pp. 542-547
ISSN: 2234-7925 (Print) 2234-8352 (Online)
Print publication date Jul 2016
Received 25 Mar 2016 Revised 07 Jun 2016 Accepted 16 Jun 2016
DOI: https://doi.org/10.5916/jkosme.2016.40.6.542

오픈소스 하드웨어를 활용한 사물인터넷 응용 서비스 시스템
성창규1 ; 류길수

Internet of things application service system with open source hardware
Chang-Gyu Seong1 ; Keel-Soo Rhyu
1Department of Computer & Information Engineering, Korea Marine and Ocean University, Tel: 051-410-4898 (dolphin@kmou.ac.kr)
Correspondence to : Department of Computer & Information Engineering, Korea Marine and Ocean University, 727 Taejong-ro, Yeongdo-Gu, Busan 49112, Korea, E-mail: rhyu@kmou.ac.kr, Tel: 051-410-4571


Copyright © The Korean Society of Marine Engineering
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (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.

초록

최근 사물인터넷의 큰 주목을 받으며 다양한 분야에서 사물 인터넷 응용 서비스에 대한 요구가 증가하고 있다. 사물을 구성하는 핵심으로 오픈소스 하드웨어가 활용되면서 소프트웨어에서 주목받고 있는 ‘오픈소스’(open-source) 개념이 사물인터넷 시장의 활성화로 하드웨어 분야에서도 큰 주목을 받고 있다. 저렴한 하드웨어 비용과 빠른 개발속도가 장점인 오픈소스 하드웨어의 등장은 사물인터넷 응용 서비스의 아이디어를 구체화할 수 있게 하였다. 본 논문에서는 오픈소스 시스템을 활용하여 주변의 환경 정보를 수집 및 교환하고 처리하는 사물인터넷 응용 서비스 시스템을 구축한다. 전체적인 시스템 구조 및 하드웨어, 소프트웨어 구성을 설명한다.

Abstract

In recent times, Internet of Things (IoT) has attracted wide attention, and there are increasing requests for IoT application services. Open-Source Hardware (OSH) utilizes a variety of components that are created through the sharing of hardware design so that others developers can also work on it. The concept of “open source” that attracted attention in the software industry has been applied to the hardware field by the emergence of IoT market. The emergence of OSH that has the advantage of low hardware cost and faster development encourages the idea of a diverse IoT application services. In this paper, we describe an IoT application service system that is developed using the OSH platform Arduino and Raspberry Pi to process collection, exchange, and computation of the environmental information. The overall system architecture and hardware and software components are presented.


Keywords: Internet of Things, Open source hardware, Arduino, Raspberry Pi
키워드: 사물인터넷, 오픈소스 하드웨어, 아두이노, 라즈베리 파이

1. 서 론

사물인터넷(IoT:Internet of Things)은 센서와 통신 기능이 내장된 사물들이 인터넷을 통해 서로 연결되어 정보를 주고받으며 유용한 서비스를 제공하는 것을 목표로 한다. Table 1과 같이 사물인터넷의 등장은 하드웨어 및 소프트웨어와 네트워크 관점에서의 IT 패러다임의 변화로 나타나고 있다. PC를 통한 인터넷 서비스 위주의 환경에서 스마트 폰의 확산으로 모바일 서비스 환경 중심으로 다시 사물 인터넷 서비스로 환경이 점차 변화되고 있다.

이러한 사물 인터넷 서비스를 구축하기 위해서 기존의 PC와 스마트폰 뿐 아니라 다양한 사물(Things)의 개발이 우선되어야 하는데 아두이노, 라즈베리 파이와 같은 오픈소스 하드웨어의 등장과 3D 프린트의 보급으로 전문가가 아니더라도 사물의 DIY(Do It Yourself)가 가능해졌다.

세계적인 컨설팅 기업 중 하나인 맥킨지는 2025년까지 인류의 삶을 가장 급진적으로 변화시킬 기술 중 하나로 IoT 기술을 선정하고, 향후 거의 모든 산업 분야에서 사물인터넷 기술이 적용될 것으로 전망하였다[1].

Table 1: 
Structure and evolution of IT paradigms
1990 2000 2010 2020
IT Platform PC communication Web Mobile IoT
HW PC PC Smart Phone Thing
SW DOS Window Linux Android iOS Cloud OS
NET WORK Modem Ultra-high-speed Internet 4G LTE M2M

현재에는 무선센서 네트워크(WSN:Wireless Sensor Network), 사물통신(M2M:Mechine To Mechine)의 다양한 기술들이 융합되면서 사물인터넷 기술로 진화하고 있다. 이런 기술들은 인간의 개입을 최소화 하거나 개입 없이 사물간 정보를 수집하고, 수집된 정보를 교환하고, 수집된 정보를 분석하고 처리하게 됨으로써 인간들은 다양한 정보와 서비스를 통해 보다 편리한 삶을 누릴 수 있게 되었다.

이와 관련하여 본 논문에서는 오픈소스 하드웨어를 활용한 실시간 환경 모니터링 할 수 있는 사물인터넷 응용 서비스 시스템을 구축한다.


2. 관련 연구
2.1 사물 인터넷

사물인터넷의 유래는 1999년 MIT의 케빈 애쉬턴에 의해 처음 소개되었다. 사물인터넷은 센서를 가전제품, 모바일 장비, 웨어러블 컴퓨터 등에 탑재하여 시장분석 및 의료분석 등에 사용하게 되면서 대중화되고 있다.

IoT는 인간과 사물, 서비스의 3대 주요 요소로 이루어져 있다. Figure 1은 IoT가 인간과 사물, 서비스를 포함하는 인간 주변 환경을 상호 연결해 주는 개념을 도식적으로 보여주는데 인간은 IoT를 통하여 사물 및 서비스와 소통하며, 사물과 서비스도 IoT 기술을 통하여 서로 소통한다[2]. 이는 기존의 통신 및 네트워크 기술은 인간의 개입 하에 인간과 사물, 인간과 서비스간 관계가 형성되었지만 IoT를 통하면 사물과 서비스 간에 자체 연결뿐만 아니라, 사물과 사물, 서비스 간에 연결을 가능하게 한다.


Figure 1: 
Three components of the IOT

사물인터넷은 사물에 심어져있는 여러 가지 종류의 센서 노드가 상황을 인지하여 무선망을 통해 정보를 서비스 서버에 전달하면, 서버는 그 상황에 적절한 액션을 사물이나 사람에게 전달하여 대처하게 한다. 이러한 서비스를 가능케 해주는 기술요소로는 스마트 센서노드, 센서네트워크, 서비스 플랫폼, 서비스 애플리케이션, 서비스플랫폼과 사물을 연결시켜주는 통신망 등이 있다. 또한, 사물인터넷의 다양한 서비스 기능을 구현하기 위해서는 정보의 검출, 가공, 정형화, 추출, 처리 및 저장 기술, 위치판단 및 상황인지 기술, 정보보안, 오픈 플랫폼 기술, 미들웨어 기술, 빅데이터 등의 매우 다양한 기술력이 필요하다[3].

2.2 오픈 소스 하드웨어

최근 IT 업계에서는 오픈소스 소프트웨어(Open Source Software, OSS)에 이어 오픈소스 하드웨어(Open Source Hardware, OSHW)를 새로운 기술 혁신 트렌드로 주목하고 있다 오픈소스 하드웨어(OSHW)는 해당 제품의 회로도, 인쇄회로기판, 하드웨어 기술언어 등 똑같은 모양 및 기능을 가진 제품을 제작하는 데 필요한 것들을 공개한 하드웨어를 의미한다. 그래서 누구나 자유롭게 수정, 배포, 판매할 수 있다[4]. 오픈소스 하드웨어는 2005년 아두이노(Arduino)의 등장으로 활성화되기 시작했다. 최근 들어 3D 프린트의 발달로 다양한 부품을 쉽게 제작할 수 있게 됨으로 누구든지 스스로 오픈 소스 하드웨어를 구축하고 오픈 소스 하드웨어를 배포할 수 있게 되었다.

오픈 하드웨어 플랫폼에는 Table 2와 같이 대표적으로 아두이노(Arduino)[5], 라즈베리 파이(Raspberry Pi)[6], 비글본 블랙(BeagleBone Black)[7] 등이 있다. 이들 제품은 소형단일보드 컴퓨터로 메인 보드에 각종 센서와 액츄에이터, WiFi, Ethernet, Zigbee 등 다양한 통신 모듈을 손쉽게 연결할 수 있다. 오픈소스 하드웨어에 프로그래밍이 가능하도록 통합개발환경(IDE)을 제공하여 펌웨어 업로드 및 어플리케이션 SW 개발이 가능하다.

Table 2: 
Open Source Hardware Specifications
• Model: Arduino Uno R3
• Price : $24.95
• CPU : ATmega328P
• OS : -
• Memory : 2KB
• Ethernet : -
• USB : -
• Model: Raspberry Pi2
• Price : $35
• CPU : Cortex-A7
• OS : Linux
• Memory : 1GB
• Ethernet : Fast Ethernet
• USB : 4xUSB 2.0
• Model: Beaglebone Black
• Price : $55
• CPU : Cortex-A8
• OS : Linux
• Memory : 512MB
• Ethernet : Fast Ethernet
• USB : 1xUSB 2.0

2.3 개방형 IoT 서비스 플랫폼

IoT 서비스 플랫폼은 다양한 오픈 소스 하드웨어 센서에서 수집된 데이터를 인터넷을 통하여 등록된 사물의 데이터를 수집 및 관리 할 수 있고 원격으로 제어할 수 있는 PaaS(Platform as a Service)역할을 한다[8]. 수집된 사물의 데이터를 웹서비스, 모바일 및 다른 사물에게 제공할 수 있는 통신 방법과 API를 제공하여 고도화된 서비스를 제공할 수 있다.


Figure 2: 
IoT Cloud Service

주요 서비스로는 실시간으로 여러 가지 정보를 여러 가지 형태의 사용자 인터페이스를 통하여 확인할 수 있고, 큰 데이터를 활용하여 데이터 분석을 위한 서비스 제공한다. 또한 수집되는 데이터에 대하여 규칙을 설정하여 규칙에 부합되는 데이터가 발생되면 자동적으로 원하는 서비스를 받을 수 있다.

선도적인 IoT 플랫폼을 런칭하였던 Pachube사는 최근 LogInMe에 인수되어 Xively라는 이름으로 새로운 플랫폼사업을 시작하였으며, Xively는 IoT 단말, USN 장치를 REST 인터페이스로 웹에 연결할 수 있는 서비스 플랫폼을 제공하고, 오픈소스 하드웨어인 아두이노 플랫폼을 해당 인터페이스를 통해 웹에 연동시키는 기능을 제공한다[9].

ThinkSpeak는 개방형 사물 웹 응용 플랫폼을 제공하며, 센서를 비롯한 사물들이 웹을 통해 연동될 수 있도록 하고, 소셜 네트워크와의 연동을 통해 사물들을 활용 가능하게 한다. 또한, 플랫폼을 통해 다른 사용자와 정보 공유가 가능하며, 자신만의 채널을 운용하고, 다양한 시각화 도구를 지원하고 있다[10].

Plotly도 Xively 와 비슷한 서비스를 제공한다. 온라인으로 그래프, 분석, 통계작업을 할 수 있고 파이썬, R, Matlab, 펄, 아두이노 등에 대한 라이브러리를 제공한다[11].


3. 사물 인터넷 응용 서비스 시스템

제안한 시스템은 오픈소스 시스템을 활용하여 설계 구축하였다. Figure 3 (a)와 같이 전체적인 시스템의 구조는 정보가 수집되고 전송되는 센서 계층, 정보를 중계하는 컨트롤 계층, 정보를 가져가서 사용하는 모니터링 계층으로 구분하였다. Figure 3 (b)는 데이터를 송・수신하는 시퀀스 다이어그램이다 통신 프로토콜은 사물인터넷에서 적합한 경량의 Publish/Subscribe(Pub/Sub) 통신 모델의 원리인 MQTT프로토콜을 사용한다. 이 프로토콜은 Publisher와 Subscriber가 Broker를 통해서 원하는 토픽과 관련된 데이터만을 송수신하는 토픽(topic) 기반의Publish/Subscribe 프로토콜이다. MQTT 프로토콜은 소형기기의 제어와 센서정보 수집에 유리하다. Figure 3 (c) 는 실제로 시스템을 구축하여 실험한 하드웨어 프로토타입이다.


Figure 3: 
(a) Proposed System Architecture, (b)Message Sequnce Diagram, (c) System Hardware Prototype

3.1 센서 계층

원하는 장소에서 필요한 환경의 정보를 수집하고 전송하는 것으로 아래와 같은 하드웨어와 소프트웨어로 구성하였다.

3.1.1 하드웨어

제안 시스템에서는 아두이노와 연결되어 온도와 습도를 측정하는 센서(DHT11), 알람 발생을 위한 부저를 사용하였다. 별도의 운영체제 없이 구동할 수 있는 아두이노는 생산성과 소형화가 용이하다. 수집된 정보는 무선통신으로 전송한다. 사용된 센서 및 무선통신 모듈의 스펙은 Table 3과 같다. 필요한 환경 정보의 형태에 따라 센서 모듈을 추가할 수 있다.

Figure 4는 nRF24L01+ 무선통신 모듈과 아두이노 핀의 연결 상태를 나타낸다.

Table 3: 
Module H/W Specifications
Sensor Specification
DHT11 • Temperature/Humidity Sensor
• Temperature Range : 0 ~ 50°C
• Humidity range: 20% ~ 90%
Buzzer • Sound Output: ≥85dB
• Resonant Frequency: 2300±300Hz
RF Specification
nRF24L01+ • Worldwide 2. GHz ISM band
• Ultra low power
• 1.9 – 3.6V supply voltage
• Simple 8 pin SPI interface


Figure 4: 
nRF24L01 and connections to Arduino Uno

3.1.2 소프트웨어

온도/습도 센싱 및 알람 모듈의 동작과 수집된 온도/습도 정보를 무선으로 전송하기 위한 아두이노 스케치를 작성하였다. 아두이노 스케치는 시작점이 main 함수가 아니라 Figure 5처럼 setup 함수에서 초기화하고 loop 함수를 반복적으로 수행하는 구조이다.


Figure 5: 
Arduino Sketch Structure

프로그램의 동작 흐름은 Figure 6과 같으며 30초마다 센서의 정보를 수집하여 통신 모듈을 통해서 컨트롤 계층으로 전송한다. 만약 수집된 온도와 습도 값이 설정 범위를 벗어나는 경우 알람이 발생한다. 알람을 끄는 명령을 전송 받을 경우 알람은 정지한다.


Figure 6: 
Arduino Sketch Flowchart

3.2 컨트롤 계층

센서 계층과 모니터링 계층 사이에 정보를 교환하는 역할을 담당한다.

3.2.1 하드웨어

여기에서는 소형 컴퓨터 역할을 할 수 있는 라즈베리파이를 활용하였다. 라즈베리파이는 아두이노에 비해 컴퓨팅 능력, 메모리, 운영체제 사용, 파이썬과 같은 고급 언어 사용 등의 장점이 있으므로 전체 시스템에서 메인 처리 유닛으로 기존에 일반적인 PC를 대신하여 소형화가 용이하다.

Figure 7은 nRF24L01+ 무선통신 모듈과 라즈베리파이 B+ GPIO 핀의 연결 상태를 나타낸다.


Figure 7: 
nRF24L01 and connections to Raspberry Pi B+

3.2.2 소프트웨어

온도/습도 정보를 IoT 클라우드 서비스 플랫폼인 Xively에 전송하는 프로그램은 라즈베리파이에서 지원하는 파이썬 스크립트를 작성하였다. 클라이언트에서 보내주는 정보를 수집하고 이것을 필요한 장치에게 전송해주는 중계 역할을 수행하는 Mosquitto[12]를 설치하여 사용한다.

Mosquitto는 MQTT 프로토콜을 구현한 BSD 라이센스 기반의 오픈소스 메시지 브로커로, 상용 제품에 비해 성능이 떨어지지 않고 여러 운영체제에서 설치가 가능 것이 장점이다.

3.3 모니터링 계층

여기에서는 환경 정보를 모니터링하는 계층으로 전체적인 구조는 Figure 8 (a)와 같이 Xively 와 Mosquitto를 통하여 시각화할 수 있다. 인터넷 기반 인터페이스를 제공하는 개방형 IoT서비스 플랫폼인 Xively를 이용하여 Figure 8 (b)와 같이 시각화하였고, 라즈베리파이에서 동작하는 MQTT 서버에서 보내주는 정보를 Figure 8 (c)와 같이 웹 브라우저에서 모니터링할 수 있다. 만약 온도와 습도가 설정 범위를 벗어나면 알람이 동작하면 여기서 알람 발생을 정지할 수 있는 명령을 수행할 수 있다.


Figure 8: 
(a) Monitoring Service architecture (b)Web interface display of the Xively, (b)Web interface display of Mosquitto Server


4. 결 론

사물인터넷 시스템 구축하는 경우 오픈소스 하드웨어를 사용하면 다음과 같은 장점이 있다. 첫째 일반적으로 기존의 폐쇄형 시스템보다 오픈소스 시스템의 기술적 진보가 훨씬 빠르다. 둘째 구글과 페이스북 같은 메인 스트림 기업둘이 오픈소스 시스템를 지원하고 있다. 셋째 기존의 시스템구축 비용보다 오픈소스 솔루션의 총 소유 비용이 적다. 오픈 소스 하드웨어는 개인이나 전문 기업들이 개발해 놓은 소스코드, 부속 모듈등이 존재하기 때문에 처음부터 모든 것을 개발할 필요가 없다. 분야별 요구사항이나 아이디어를 추가하여 더욱 혁신적이고 참신한 제품을 생산하기 용이하므로 개발 속도가 현저하게 빠르다는 장점이다. 오픈소스는 단순한 일시적인 유행이 아니라 지속적으로 발전하고 커져가는 흐름이라 할 수 있다.

본 논문에서는 오픈소스 하드웨어를 활용하여 환경 정보를 모니터링할 수 있는 서비스 시스템을 구축하였다. 시스템구축 과정을 통하여 소형화와 확장성이 용이하고 , 저비용으로 유연한 시스템을 빠르게 개발할 수 있는 효과들이 있었다. 하지만 신뢰성과 안전성에 대한 추후 연구가 필요하다.


References
1. J. Manyika, M. Chui, J. Bughin, R. Dobbs, P. Bisson, and A. Marrs, Disruptive Technologies: Advances That will Transform Life, Business, and The Global Economy, 12, San Francisco, CA, McKinsey Global Institute, (2013).
2. Jun, Hong-Bae, “Various aspects of internet of things technologies”, Entrue Journal of Information Technology, 14(1), Special Issue 2015 (in Korean).
3. Al-Fuqaha, A, M. Guizani, M. Mohammadi, M. Aledhari, M. Ayyash, “Internet of things: A survey on enabling technologies, protocols, and applications.”, IEEE Communications Surveys & Tutorials, p2347-2376, (2015).
4. S. John, and I. Kymissis, “Lab kits using the Arduino prototyping platform”, IEEE Frontiers in Education Conference (FIE), pT3C-1, (2010).
5. B. Massimo, and M. Shiloh, Getting Started with Arduino: The Open Source Electronics Prototyping Platform, Maker Media, p15-23, (2014).
6. R. Matt, and S. Wallace, Getting Started with Raspberry Pi, O'Reilly Media, p17-31, (2012).
7. C. Gerald, Beaglebone Black System Reference Manual, Texas Instruments, Dallas, p24-35, (2013).
8. A. Alamri, W. S. Ansari, M. M. Hassan, M. S. Hossain, A. Alelaiwi, and M. A. Hossain, “A survey on sensor-cloud: Architecture, applications, and approaches”, International Journal of Distributed Sensor Networks, p1-18, (2013).
9. Xivley, http://xively.com, Accessed May 11, 2016.
10. ThingSpeak, https://thingspeak.com, Accessed May 11, 2016.
11. S. Tim, Offline Method for Graphical Visualization of Sensor Data, University of Zurich, Switzerland, https://files.ifi.uzh.ch/CSG/staff/schmitt/Extern/Theses/Tim-Strasser-VA.pdf, Accessed March 10, 2016.
12. Bandyopadhyay, Supriyo, and Abhijan Bhattacharyya, “Lightweight internet protocols for web enablement of sensors using constrained gateway devices”, Computing, Networking and Communications (ICNC), 2013 International Conference on IEEE, p334-340, (2013).