검색 전체 메뉴
PDF
맨 위로
OA 학술지
웹 서버를 이용한 안드로이드 기반 기기 제어 시스템 Android-Based Devices Control System Using Web Server
  • 비영리 CC BY-NC
  • 비영리 CC BY-NC
ABSTRACT
웹 서버를 이용한 안드로이드 기반 기기 제어 시스템

Recently, as mobile operating system market and wireless communication technology have been rapidly developed, many devices such as smart phones, air conditioners, smart TVs, cleaning robot, and cameras become available with android operating system. Accordingly, collecting variety of information through many everyday use devices with network connections is now enabled. However, in the current market, most devices are controlled individually developed applications, and there is growing need to develop a master application that can control multiple devices. In this paper, we propose and implement a system that can control multiple android-based devices on a Wired/Wireless router(AP) registered through web server. we expect such an effort can attribute to future IoT researches.

KEYWORD
서버 , 안드로이드 , 웹 , 유무선 공유기
  • Ⅰ. 서 론

    최근 반도체 및 무선통신의 발달로 각종 전자제품들이 컴퓨팅 능력을 갖추고 있다. 일상생활에서 사용하는 다양한 기기들을 네트워크로 연결하여 장소에 상관없이 정보수집이 가능하게 되었다[1]. 구글의 개방형 운영체제인 안드로이드 운영체제는 모바일을 넘어서 에어컨, TV, 청소로봇, 카메라 등 각종 가전제품들이 빠른 속도로 탑재되고 있는 실정이다[2]. 이에 따라, 스마트 가전제품들을 관리, 제어하기 위해 가정에서는 집으로 들어오는 네트워크 라인을 공유해 여러 기기들이 동시에 네트워크 접속을 가능하게 하는 유무선 공유기(AP : Access Point)가 필수품으로 자리 잡게 되었다. 하지만 이러한 스마트 기기들을 한 번에 제어할 수 있는 모듈 및 애플리케이션이 보급되지 않고, 한 애플리케이션에서 한 기기를 제어하는 형태가 대부분이다. 또한, 안드로이드 운영체제 이외의 타 운영체제를 사용하고 있는 사용자들은 안드로이드의 제어가 불편한 실정이다.

    이에, 본 논문에서는 웹을 이용하여 서버에 등록되어 있는 안드로이드 운영체제를 탑재한 여러 기기들을 한 번에 관리, 접속, 제어할 수 있는 시스템을 설계 및 구현하였다.

    본 논문의 구성은 2장에서 웹 서버 제어와 GCM(Google Cloud Massaging)에 대한 관련연구를 살펴본다. 3장에서는 시스템의 설계에 관하여 기술하고, 4장에서는 시스템의 구현에 대해, 결론 및 향후 연구과제는 5장에서 기술한다.

    Ⅱ. 관련연구

    본 장에서는 웹을 이용한 안드로이드 기기 제어 시스템의 원리 및 구현 절차에 대해 기술한다.

       2.1. 웹 서버 제어

    안드로이드 운영체제를 탑재한 여러 기기들을 효율적으로 관리하기 위해 필요한 기능이 웹 서버를 통한 기기제어 기능이다. 웹 서버를 구성하는 주요 도구인 Apache, PHP, MySQL, 여기에 Linux까지 넣어서 LAMP(Linux Apache MySQL PHP)라고도 한다[3]. Apache는 무료로 사용할 수 있는 웹 서버이며, 전 세계적으로 가장 많이 사용된다. 유닉스를 비롯하여 매킨토시, 윈도 NT, 운영체제/2의 각 운영 체제에서 작동하고, 모듈의 추가와 삭제 및 각종 기능을 편리하게 사용할 수 있는 웹 서버이다[4]. LAN선 연결 없이 자유로운 네트워킹을 가능하게 하는 유무선공유기(AP)는 네트워크 접속 기능뿐만 아니라 임베디드 컴퓨터로서의 기능도 갖추고 있다. 이러한 AP에 서버를 두고 안드로이드 운영체제를 탑재한 기기를 등록한 후에 AP의 웹에 접속 후 관리 및 제어 하도록 한다.

       2.2. GCM

    GCM이란 서버와 클라이언트로 구성되어있으며, 서버에서 클라이언트를 호출해야 하는 경우, 직접 호출할 수 있도록 해주는 구글 서비스이다[5]. 일반적으로 서버로부터 신호를 받은 클라이언트는 필요시 서버에 접속하여 DB를 조회한 후 ID를 찾는다. 이 서비스는 메시지를 큐로 관리하며, 특정 클라이언트의 해당 애플리케이션으로 데이터를 전송하기 위한 모든 처리를 수행한다.

    서버는 메시지를 보내는 곳으로 구글 클라우드에 요청을 보낼 수 있으면 서버 역할이 가능하다. GCM서비스는 해당 사용자의 ID를 등록받으면 서버에서 신호를 받고 사용자에게 메세지를 보내는 형식이다. 클라이언트는 App으로 GCM을 받는 코드를 추가하여 작동한다. GCM 구조도는 그림 1과 같다.

       2.3. JSON(Java Script Object Notation)

    JSON은 경량화 된 데이터 교환 형식이다. 사람이 읽고 쓰기에 용이하고 기계가 분석 생성함과 네트워크상에서 데이터를 주고받을 시에도 용이하다[6].

    자료의 종류에 큰 제한이 없고, 프로그램의 변수 값을 표현하는데 적합하여, 이 기종간 데이터 교환을 위하여 사용되던 XML보다 경량화 되어 JSON으로 대체되고 있다[7]. 본 논문에서는 디바이스의 정보를 서버에 보낼 때 JSON 타입으로 전송하며, JSON 타입의 정보를 서버가 연산하여 되돌려주는 방식을 사용하였다.

       2.4. OpenWrt

    OpenWrt는 무선 랜 라우터를 위한 비실시간 리눅스 기반의 오픈 소스 운영체제이다. 무선 랜 라우터 기능을 지원하는 임베디드 보드들은 대게 제한된 처리 능력과 메모리를 가진다. 일반 PC에서와 같이 리눅스의 모든 기능을 구현하는 것이 불가능하며 라우터로서 반드시 필요한 기능들만 선택적으로 설치되어야 한다. OpenWrt는 무선 랜 라우터에 필요한 리눅스의 기능들을 패키지 형태로 제공함으로써 사용자들에게 편의를 제공한다[8].

    Ⅲ. 안드로이드 기기 제어시스템 설계

    본 장에서는 웹을 이용한 안드로이드 기기 제어 시스템 설계에 대해 기술한다.

    전체 시스템은 사용자가 지닌 Master Device, 유무선 공유기(AP), GCM서비스, 클라이언트로 설계한다. 그림 2는 GCM 3rd party 애플리케이션 동작을 나타낸 구성도이다.

    사용자가 AP에 서버를 두고 있는 웹에 접속을 하면 DB에 저장되어있는 특정 공간의 클라이언트의 정보에 대해 공유기를 통하여 데이터를 송신하고, 공유기는 다시 클라이언트들에게 데이터를 전송하여 각각의 클라이언트들을 관리하는 방식이다. 또한, 공유기에서 클라이언트로 데이터가 수신될 때, GCM 서비스를 사용하여 사용자에게 PUSH 메세지를 보내 클라이언트가 데이터를 전달받았다는 것을 알린다.

    AP는 네트워크 공유뿐만 아니라, 임베디드 컴퓨터로서 CPU와 메인메모리 등을 갖추고 있다. 이러한 AP에 서버를 두어 기기들의 Device_ID, MODEL_NAME 등을 관리하며, 사용자의 단말기에서 모든 기기들의 제어가 가능하도록 한다. 또한, 상황 별 시나리오를 만들어서 상황에 따라 여러 기기들을 순차적으로 작동시킬 수 있다. 애플리케이션에서의 시퀀스 다이어그램은 그림 3과 같다.

    본 논문에서는 OpenWrt에 서버를 두고 GCM과 연 동하여 JSON으로 안드로이드 운영체제 기반의 기기들의 데이터를 전달하는 방법으로 효과적인 전력제어가 가능하도록 하였다. AP를 이용하여 접속하는 방법은, 디바이스가 다른 디바이스를 제어하기 위한 필수적인 요인이다. AP에 있는 기기정보를 사용함으로 인해 사용자는 언제어디서든 인터넷이 가능한 곳이라면, AP 웹 서버에 접속하여 등록되어있는 기기들을 관리, 제어할 수 있다.

    Ⅳ. 제어 시스템의 구현

    본 장에서는 웹을 이용한 안드로이드 기기 제어 시스템의 구현에 대해 기술한다.

    본 시스템은 안드로이드 운영체제기반으로 설계하였으며, 실험에 총 2대의 디바이스와 1대의 공유기를 사용하였다. 모바일 네트워크를 지원하는 갤럭시 S3 2대, OpenWrt를 지원하는 Tp-Link n430 1대를 이용하여 실험을 하였다. 모바일 폰 2대중 1대는 사용자용 디바이스, 다른 한 대는 기기의 플래쉬를 이용한 조명 디바이스로 사용하였다. 진행방식은 조명 역할 모바일 폰의 기기정보를 AP에 등록시키고 사용자의 폰에서 제어를 하는 방식으로 진행하였다. 시스템 개발환경은 표 1과 같고, 그림 4는 본 시스템의 전체적인 구성도를 나타낸다.

    [표 1.] 기기제어시스템 개발환경

    label

    기기제어시스템 개발환경

    시스템에서는 각각의 기기제어가 아닌 사용자가 한 디바이스로 AP에 등록되어있는 모든 기기를 제어하는 형태로 구현하였고, 안드로이드 운영체제뿐만이 아닌 다양한 운영체제 및 이 기종 간 애플리케이션의 호환을 위하여 웹을 이용하여 시스템을 구현하였다. 그리고 사용자에게 기기가 작동했는지 알려주게끔 GCM 서비스를 접목시켰다. AP에 기기의 정보를 등록하기 위해 조명역할의 디바이스 정보를 PHP에서 XML파일을 생성한 뒤, 각각의 엘리먼트에 따라 AP에 저장한다. XML로 저장된 파일은 사용자가 정보를 불러올 때, PHP로 읽은 뒤 JSON으로 변환하여 불러온다. 그림 5는 XML을 JSON으로 변환하는 명령문을 나타낸다.

    구글의 API서비스에 있는 GCM서비스를 사용하기 위하여 사용자의 디바이스의 regId와 APIkey, project Id를 OpenWrt가 설치된 AP에 등록하고 기기에 명령을 보내게 되면 사용자의 기기에 PUSH 메시지가 오게 된다. 실질적으로 GCM에서 메시지를 받는 부분은 onMessage(), 메시지를 받았을 때 액션을 onMessage 메소드 안에 정의한다. 사용자의 단말기에 나타나는 PUSH 알림은 그림 6 과 같다.

    사용자가 기기를 사용하여 웹에 접속하고 제어할 기기를 선택하면 기기의 플래시 제어가 가능하다. 이 러한 방법으로 AP에 등록되어 있고, 네트워크에 연결되어있는 기기라면 사용자가 언제 어디서든 제어가 가능하다. 그림 7은 사용자가 웹에 접속하여 AP에 등록되어 있는 기기를 선택하여 플래쉬를 제어하는 것을 나타내고, 그림 8은 사용자가 기기의 정보를 검색한 것을 나타낸다.

    Ⅴ. 결론 및 향후연구과제

    본 논문에서는 유무선공유기에 웹 서버를 두고 안드로이드 운영체제 기반 스마트 기기의 정보를 등록시켜 사용자가 언제 어디서든 웹으로 서버에 접속하여 기기들을 제어하는 시스템을 제안하였다. 기존의 제어방법은 단일 기기만을 제어하는 리모컨이나 애플리케이션들로 여러 기기들을 제어하지 못하는 문제점이 있었다. 논문에서 제안하는 제어방법은 공유기에 서버를 내장하고 사용자가 외부에서 웹으로 접속하여 서버에 등록된 기기를 제어하는 방식이다. 이러한 방식을 통해 가정에서 흔히 사용하는 유무선 공유기에 다양한 모듈과 센서를 등록시켜 활용할 수 있는 가능성을 보였다. 그리고 GCM의 PUSH 메시지 기능으로 AP에서 기기에게 데이터를 전달할 때 사용자에게 팝업 메시지가 출력되어 사물의 동작을 확인 할 수 있다.

    논문에서 제안하는 제어기기를 사용하면 사용자는 장소에 상관없이 인터넷만 접속이 가능하면 어디서든 공유기의 서버에 등록되어 있는 모든 기기들의 제어가 가능하여 휴대성과 편리함을 제공한다. 그리고 웹 서버제어는 스마트 기기들을 많이 사용하는 가정에서 생활에 많은 편리함을 줄 것으로 예상된다. 또한, 논문에서 제안하는 기법을 활용하면 IoT 배경 기술에 활용 될 수 있을 것으로 사료된다.

    향후 과제로는 기기들 간의 데이터를 주고받는 방식을 능동적으로 만들어 사용자의 행동 없이 스스로 사물이 상황에 맞게 작동하는 IoT에 대한 연구가 필요하다.

참고문헌
  • 1. Van Den Nieuwenhuizen John, Lee Seungheon 2012 "Case for a mobile computing device." google
  • 2. Um R. W. 2011 "Technology trends in smartphone service platform," [Korean Institute Of Information Technology] Vol.9 P.91-105 google
  • 3. Braberg Hannes 2012 "SALIGN: a web server for alignment of multiple protein sequences and structures." [Bioinformatics] Vol.28 P.2072-2073 google cross ref
  • 4. Hopfner H., Schad J., Wendland S., Mansour E. 2009 "MyMIDP: An JDBC driver for accessing MySQL from mobile devices," [Advances in Databases, Knowledge, and Data Applications, 2009. DBKDA'09. First International Conference on] P.74-80 google
  • 5. Kumar Sundeep, Kumar Manoj (2013) "Implementation of GCM for Mobile Cloud Computing in Android Devices." [International Journal of Advanced Research in Computer Science] Vol.4 google
  • 6. Son M. S., Ko S. G., Lee J. H., Lee D. H. 2012 "Mobile cloud Virtual terminal collaboration technologies and provisioning," [Journal of Security Engineerin] Vol.9 P.77-86 google
  • 7. Maeda Kazuaki 2012 "Performance evaluation of object serialization libraries in XML, JSON and binary formats." [Digital Information and Communication Technology and it's Applications (DICTAP), 2012 Second International Conference on.] google
  • 8. Kim Cheong Ghil, Kim Kuinam J. 2014 "Implementation of a cost-effective home lighting control system on embedded Linux with OpenWrt." [Personal and ubiquitous computing] Vol.18 P.535-542 google cross ref
OAK XML 통계
이미지 / 테이블
  • [ 그림 1. ]  GCM 구조도
    GCM 구조도
  • [ 그림 2. ]  GCM 3rd party 애플리케이션 구성도
    GCM 3rd party 애플리케이션 구성도
  • [ 그림 3. ]  애플리케이션 시퀀스 다이어그램
    애플리케이션 시퀀스 다이어그램
  • [ 표 1. ]  기기제어시스템 개발환경
    기기제어시스템 개발환경
  • [ 그림 4. ]  제어 시스템 구성도
    제어 시스템 구성도
  • [ 그림 5. ]  XML을 JSON으로 변환하는 명령문
    XML을 JSON으로 변환하는 명령문
  • [ 그림 6. ]  GCM PUSH 메시지
    GCM PUSH 메시지
  • [ 그림 7. ]  웹에서 플래쉬 제어 테스트
    웹에서 플래쉬 제어 테스트
  • [ 그림 8. ]  기기 정보 검색
    기기 정보 검색
(우)06579 서울시 서초구 반포대로 201(반포동)
Tel. 02-537-6389 | Fax. 02-590-0571 | 문의 : oak2014@korea.kr
Copyright(c) National Library of Korea. All rights reserved.