KR20170078459A - 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법 - Google Patents

사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법 Download PDF

Info

Publication number
KR20170078459A
KR20170078459A KR1020150188996A KR20150188996A KR20170078459A KR 20170078459 A KR20170078459 A KR 20170078459A KR 1020150188996 A KR1020150188996 A KR 1020150188996A KR 20150188996 A KR20150188996 A KR 20150188996A KR 20170078459 A KR20170078459 A KR 20170078459A
Authority
KR
South Korea
Prior art keywords
program
iot
iot device
user
user terminal
Prior art date
Application number
KR1020150188996A
Other languages
English (en)
Inventor
이태영
이상현
Original Assignee
주식회사 아이디어피스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아이디어피스 filed Critical 주식회사 아이디어피스
Priority to KR1020150188996A priority Critical patent/KR20170078459A/ko
Publication of KR20170078459A publication Critical patent/KR20170078459A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법으로서, 사용자에게 IoT 기기를 제어하기 위한 프로그램 개발 툴을 제공하여 사용자가 직접 작성한 프로그램을 통해 다양한 IoT 기기들을 제어할 수 있도록 지원하는 IoT 플랫폼과 이를 이용하여 사용자에게 IoT 기기 제어용 프로그램 개발 환경을 제공하는 방법을 제시한다.

Description

사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법 {IoT platform for providing program development environment for user and method of developing program for controlling IoT device}
본 발명은 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법에 대한 것으로서, 보다 상세하게는 사용자에게 IoT 기기를 제어하기 위한 프로그램 개발 툴을 제공하여 사용자가 직접 작성한 프로그램을 통해 다양한 IoT 기기들을 제어할 수 있도록 지원하는 IoT 플랫폼과 이를 이용하여 사용자에게 IoT 기기 제어용 프로그램 개발 환경을 제공하는 방법에 관한 것이다.
정보 통신 기술(ICT; Information & Communication Technology)의 발전에 따라 주변에 존재하는 대다수의 기기들은 통신 네트워크를 통해 상호 연결되어 연동하는 구조로 변화하고 있다.
특히, ICT의 급속한 발전을 통해 만물이 모바일과 인터넷을 통해 연결되어 서로 소통하는 사회로서, 사물과 사람이 네트워크로 연결되는 초연결사회(Hyper Connected Society)로 언제든지(anytime)와 어디든지(anyplace)라는 연결 세계에 무엇이든지(anything)라는 연결 차원을 추가하는 새로운 연결 생태계인 사물인터넷(IoT; Internet of Things)을 구축해가고 있는 상황이다.
이와 같은 IoT 환경에서 사용자는 장소와 시간에 대한 제한없이 언제 어디서든 자신이 원하는 IoT 기기에 대한 제어가 가능한데, IoT 기기들은 사전에 제어 기능들에 대한 프로그램이 설정된 상태로 출시되고 있어 사용자는 설정된 프로그램에 한정된 기능으로만 IoT 기기들을 제어할 수 있다.
따라서 사용자 자신이 필요에 따라 각종 IoT 기기들을 자신의 취향과 습관에 기반하여 제어할 수 있도록 IoT 기기들에 대한 제어 프로그램을 변경하거나 또는 직접 자신이 IoT 기기들을 제어할 수 있는 프로그램을 작성할 수 있도록 프로그램 개발 환경을 지원할 수 있다면 IoT 기기들의 사용에 대한 사용자의 만족도는 더욱 향상될 수 있을 것이다.
나아가서 프로그램에 관심을 갖는 사용자들에게 직접 프로그램을 보다 쉽게 개발할 수 잇는 툴을 제공함으로써 프로그램 개발을 위한 교육 환경을 제공할 수 있을 것이다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하고자 하는 것으로서, IoT 기기들은 사전에 제어 기능들에 대한 프로그램이 설정된 상태로 출시되고 있어 사용자는 설정된 프로그램에 한정된 기능으로만 IoT 기기들을 제어할 수 있는 불편함을 해결하고자 한다.
특히, 사용자 자신이 필요에 따라 각종 IoT 기기들을 자신의 취향과 습관에 기반하여 제어할 수 있도록 IoT 기기들에 대한 제어 프로그램을 변경하거나 또는 직접 자신이 IoT 기기들을 제어할 수 있는 프로그램을 작성할 수 있도록 프로그램 개발 환경을 지원함으로써 IoT 기기들의 사용에 대한 사용자의 만족도는 더욱 향상시키고자 한다.
나아가서 프로그램에 관심을 갖는 사용자들에게 직접 프로그램을 보다 쉽게 개발할 수 잇는 툴을 제공함으로써 프로그램 개발을 위한 교육 환경을 제공하고자 한다.
상기 기술적 과제를 달성하고자 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼은, IoT 기기를 인식하고 인식된 IoT 기기에 대한 정보를 수집하여 등록하여 관리하는 IoT 기기 관리부; 사용자 단말기로 프로그램 작성을 위한 툴을 제공하고, 상기 툴을 통해 작성된 프로그램의 실행파일을 생성하는 프로그램 작성 지원부; 및 상기 프로그램 작성 지원부가 생성한 실행파일을 실행하여 상기 프로그램을 프로세스에 따라 해당 IoT 기기를 제어하는 프로그램 구동부를 포함할 수 있다.
나아가서 IoT 기기에 대한 제어 프로그램을 저장하고 관리하는 프로그램 관리부를 더 포함할 수도 있다.
바람직하게는 상기 프로그램 작성 지원부는, 상기 IoT 기기 관리부에 등록된 IoT 기기에 대한 정보를 기초로 IoT 기기별 기능에 대한 프로그램 가이드 정보를 제공할 수 있다.
보다 바람직하게는 상기 프로그램 관리부는, 각 IoT 기기별 기능 프로그램을 저장하며, 상기 프로그램 작성 지원부는, 상기 프로그램 관리부에 저장된 각 IoT 기기별 기능 프로그램을 상기 프로그램 가이드 정보를 제공할 수도 있다.
나아가서 상기 프로그램 작성 지원부는, 상기 사용자 단말기로 프로그램 에디터 GUI를 제공할 수 있다.
한걸음 더 나아가서 상기 프로그램 작성 지원부는, 상기 사용자 단말기로 프로그램 작성을 위한 툴을 제공 에디터 GUI; 상기 사용자 단말기에서 상기 에디터 GUI로 작성된 소스 코드를 컴파일하는 컴파일러; 및 컴파일된 소스 코드에 대한 실행파일을 생성하는 링커를 포함할 수 있다.
그리고 상기 프로그램 작성 지원부는, 상기 실행파일을 디버깅하는 디버거; 및 상기 실행파일에 대한 설정, 빌드 및 루트파일을 설치하는 빌더를 더 포함할 수도 있다.
또한 본 발명에 따른 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법은, IoT 플랫폼이 사용자 단말기로 프로그램 작성을 위한 툴을 제공하여 프로그램 작성 환경을 제공하고, 상기 사용자 단말기로부터 사용자가 작성한 프로그램을 전송받는 프로그램 작성 단계; 상기 IoT 플랫폼이 상기 프로그램의 프로세스에 따라 해당 IoT 기기를 제어하고 프로그램 구동 결과 정보를 생성하는 프로그램 구동 결과 생성 단계; 및 상기 IoT 플랫폼이 상기 사용자 단말기로부터의 상기 프로그램에 대한 설치 요청에 따라 상기 프로그램을 설치하는 프로그램 설치 단계를 포함할 수 있다.
바람직하게는 상기 IoT 플랫폼이 IoT 기기를 인식하여 상기 IoT 기기에 대한 정보를 등록하는 IoT 기기 인식 단계를 더 포함하며, 상기 프로그램 작성 단계는, 상기 사용자 단말기로 상기 IoT 기기에 대한 정보를 더 제공할 수도 있다.
나아가서 상기 프로그램 작성 단계는, 상기 IoT 플랫폼이 상기 사용자 단말기로 프로그램 에디터 GUI를 제공하는 단계; 상기 IoT 플랫폼이 상기 사용자 단말기로부터 사용자가 작성한 프로그램의 소스 코드를 전송받는 단계; 및 상기 IoT 플랫폼이 상기 소스 코드를 컴파일하고 실행 파일을 생성하는 단계를 더 포함할 수도 있다.
바람직하게는 상기 IoT 플랫폼은 각 IoT 기기별 기능에 대한 기능 프로그램을 보유하며, 상기 프로그램 작성 단계는, 상기 사용자 단말기로 각 IoT 기기별 기능에 대한 기능 프로그램을 제공하며, 상기 사용자 단말기로부터 각 IoT 기기별 기능에 대한 기능 프로그램이 조합된 프로그램을 전송받을 수도 있다.
나아가서 상기 IoT 플랫폼이 복수의 IoT 기기를 상기 프로그램의 프로세스에 따라 제어하는 단계를 더 포함할 수도 있다.
한걸음 더 나아가서 상기 프로그램 설치 단계는, 상기 IoT 플랫폼이 해당 IoT 기기에 상기 프로그램을 설치할 수 있다.
이와 같은 본 발명에 의하면, 사용자 자신이 필요에 따라 각종 IoT 기기들을 자신의 취향과 습관에 기반하여 제어할 수 있도록 IoT 기기들에 대한 제어 프로그램을 변경하거나 또는 직접 자신이 IoT 기기들을 제어할 수 있는 프로그램을 작성할 수 있도록 프로그램 개발 환경을 지원할 수 있게 된다.
특히, IoT 기기들에 대하여 사전에 설정된 프로그램에 따른 제어 기능들에 한정되지 않고, 사용자 자신이 필요로 하는 기능을 추가적으로 설정하여 IoT 기기들이 사용자가 작성한 프로그램에 따라 제어됨으로써 IoT 기기들의 사용에 대한 사용자의 만족도를 더욱 향상시킬 수 있게 된다.
나아가서 프로그램에 관심을 갖는 사용자들에게 직접 프로그램을 보다 쉽게 개발할 수 있는 툴을 제공함으로써 프로그램 개발을 위한 교육 환경을 제공할 수 있게 된다.
도 1은 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼을 채용한 IoT 시스템의 실시예에 대한 구성도를 도시하며,
도 2는 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼의 실시예에 대한 구성도를 도시하며,
도 3은 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼의 프로그램 작성 지원부에 대한 실시예의 구성도를 도시하며,
도 4는 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼을 통해 프로그램 작성을 지원하는 사용자 단말기에 탑재된 프로그램 지원 어플리케이션의 실시예에 대한 구성도를 도시하며,
도 5는 본 발명에 따른 IoT 기기 제어용 프로그램 개발 방법의 실시예에 대한 흐름도를 도시한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 설명하기 위하여 이하에서는 본 발명의 바람직한 실시예를 예시하고 이를 참조하여 살펴본다.
먼저, 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명은 사용자에게 IoT 기기를 제어하기 위한 프로그램 개발 툴을 제공하여 사용자가 직접 작성한 프로그램을 통해 다양한 IoT 기기들을 제어할 수 있도록 지원하는 IoT 플랫폼과 이를 이용하여 사용자에게 IoT 기기 제어용 프로그램 개발 환경을 제공하는 방법을 제시한다.
도 1은 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼을 채용한 IoT 시스템의 실시예에 대한 구성도를 도시한다.
본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼을 채용한 IoT 시스템은, 사용자 프로그램 작성 지원 IoT 플랫폼(100)을 중심으로 사용자 단말기(200), IoT 기기(300) 등을 포함하여 구성될 수 있으며, 필요에 따라 IoT 제어용 프로그램이 보유된 클라우드 서버(400)를 더 포함할 수도 있다.
IoT 플랫폼(100)은 다양한 IoT 기기(300)들이 접속되어 IoT 기기(300)들 각각에 대한 기능 제어 프로그램을 통해 IoT 기기(300)들을 제어할 수 있는데, 이를 위해 IoT 플랫폼(100)은 각종 IoT 기기(300)들과 IoT 전용망이나 인터넷망 등을 통해 연결될 수 있으며, 또는 IoT 플랫폼(100)이 제한된 일정 영역에 위치된 IoT 기기(300)들과 연결되는 경우에는 블루투스나 지그비 등의 근거리 통신망으로 IoT 플랫폼(100)과 IoT 기기(300)들이 연결될 수도 있다.
IoT 플랫폼(100)은 기본적으로 사용자가 직접 IoT 기기(300)들에 대한 프로그램을 작성할 수 있는 환경을 제공하는데, 이를 위해 IoT 플랫폼(100)에는 프로그램 에디터, 컴파일러, 빌더 등의 프로그램 작성부터 구동 및 설치까지의 일련의 과정을 수행할 수 있는 구성들이 탑재될 수 있다.
또한 IoT 플랫폼(100)은 원격지에 위치한 사용자에게 프로그램 작성 지원 환경을 제공할 수 있도록 사용자가 보유한 사용자 단말기(200)와 유무선 통신망을 통해 연결될 수 있어, 사용자는 자신의 사용자 단말기(200)를 통해 IoT 플랫폼(100)에 접속하여 IoT 플랫폼(100)에서 제공되는 프로그램 개발 환경을 이용할 수 있다.
사용자 단말기(200)는 사용자가 보유한 통신 단말기로서, 기본적으로 프로그램 작성 기능을 수행할 수 있는 구성 등이 포함될 수 있는데, 바람직하게는 IoT 플랫폼(100)에서 제공하는 프로그램 지원 어플리케이션이 탑재될 수 있다. 여기서 프로그램 지원 어플리케이션은 사용자가 직접 프로그램을 작성할 수 있도록 지원하는 프로그램 에디터를 포함하고 IoT 플랫폼(100)을 통해 사용자가 작성한 프로그램의 실행과 설치를 지원할 수 있다.
사용자 단말기(200)는 본 발명의 적용을 위해 최적화된 전용 단말기가 적용될 수 있으나 바람직하게는 일반적으로 보급된 통신 단말로서, 스마트폰(200a), 노트북(200b), PC(300n) 등이 적용될 수 있으며, 사용자는 이와 같은 통신 단말을 통해 IoT 플랫폼(100)에 접속하여 본 발명에 따른 IoT 기기용 프로그램 개발 환경을 제공받을 수 있다.
IoT 기기(300)는 IoT 플랫폼(100)과 연결되어 IoT 기능을 지원하는 기기들로서, 가령 스마트 계량기, 통신 센서, 온도 센서 등 가정이나 사무실 등에 설치된 다양한 IoT 센서(310)와 스마트 가전기기, 전등, 냉난방 장치, 방범 장치 등 다양한 IoT 디바이스(350)를 필요에 따라 선택적으로 포함할 수 있다.
본 발명에서는 이와 같은 IoT 시스템에서 IoT 플랫폼(100)을 기반으로 사용자가 직접 IoT 기기(300)들에 대한 프로그램을 개발할 수 있는 환경을 제공하는데, 이하에서는 본 발명에 따른 IoT 시스템의 각 구성에 대하여 그 실시예를 통해 세부적으로 살펴보기로 한다.
도 2는 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼의 실시예에 대한 구성도를 도시한다.
IoT 플랫폼(100)은 개략적으로 프로그램 작성 지원부(110), 프로그램 관리부(120), 프로그램 구동부(130), IoT 기기 관리부(140), 통신부(150) 등을 포함하여 구성될 수 있다.
프로그램 작성 지원부(110)는 사용자 단말기(200)에 프로그램 작성을 위한 에디터 등을 제공하고, 사용자가 에디터를 통해 작성한 프로그램을 해당 IoT 기기(300)에 적용하는 테스트를 수행하여 그 결과 정보를 제공할 수 있다. 나아가서 프로그램 작성 지원부(110)는 이후 살펴볼 IoT 기기 관리부(140)에 등록된 IoT 기기(300)들에 대한 정보를 기초로 해당 IoT 기기별 기능에 대한 프로그램 가이드 정보를 제공하여 사용자의 프로그램 작성을 보다 쉽도록 지원할 수도 있다. 이때 각 IoT 기기별 기능에 대한 기능이 사전에 프로그램으로 보유되어 사용자가 기능 프로그램을 조합함으로써 프로그램이 작성될 수도 있다.
도 3은 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼의 프로그램 작성 지원부에 대한 실시예의 구성도를 도시하는데, 상기 도 3을 참고하여 본 발명에 따른 IoT 플랫폼의 프로그램 작성 지원부에 대하여 좀더 자세히 살펴보기로 한다.
프로그램 작성 지원부(110)는 에디터 GUI(111), 컴파일러(113), 링커(115), 디버거(117), 빌더(119) 등을 포함할 수 있다.
에디터 GUI(111)는 사용자 단말기(200)로 프로그램 작성을 위한 툴을 제공하는데, 보다 편리한 프로그램 작성을 지원할 수 있도록 그래픽 유저 인터페이스(GUI) 형태의 툴이 제공될 수 있으며, 사용자는 에디터 GUI(111)를 통해 소스 코드 편집을 수행할 수 있다.
컴파일러(113)는 사용자가 에디터 GUI(111)를 통해 작성한 소스 코드를 컴파일하며, 링커(115)는 컴파일된 소스 코드에 대한 실행 파일을 생성한다.
또한, 필요에 따라서는 디버거(117)를 통해 사용자가 작성한 프로그램에 대한 디버깅 수행을 지원하고, 나아가서 빌더(119)를 통해 사용자가 작성한 프로그램에 대한 설정, 빌드 및 루트파일 설치 기능을 수행할 수 있다.
이와 같이 프로그램 작성 지원부(110)는 사용자가 소스 코드를 입력할 수 있는 에디터부터 사용자가 작성한 소스 코드에 대한 컴파일과 디버깅을 제공함으로써 프로그램 개발 환경을 제공할 수 있다.
다시 상기 도 2로 회귀하여 본 발명에 따른 IoT 플랫폼(100)에 대하여 계속 살펴본다.
프로그램 관리부(120)는 사용자가 작성한 프로그램을 저장하고 관리하며, 사용자의 선택에 따라 저장된 프로그램을 추출하여 제공한다. 바람직하게는 프로그램 관리부(120)는 외부의 클라우드 서버(400)와 연동하여 프로그램을 관리할 수도 있다. 나아가서 프로그램 관리부(120)는 사전에 각 IoT 기기(300)별 기능에 대한 기능 프로그램을 보유할 수도 있으며, 앞서 살펴본 프로그램 작성 지원부(110)가 프로그램 관리부(120)에 저장된 각 IoT 기기(300)별 기능에 대한 기능 프로그램을 사용자에게 제공함으로써 사용자는 단순히 각 IoT 기기(300)별 기능에 대한 기능 프로그램을 조합하여 프로그램을 작성할 수도 있다.
프로그램 구동부(130)는 사용자가 작성한 프로그램을 설치하고 프로그램에 따라 해당 IoT 기기(300)를 제어한다. 이때 프로그램 구동부(130)가 프로그램을 실행하여 다수의 IoT 기기(300)들을 복합적으로 프로그램의 프로세스에 따라 제어할 수 있는데, 가령, IoT 센서(310)들의 측정치를 기초로 프로그램에 따라 IoT 기기(350)들을 제어할 수 있다.
IoT 기기 관리부(140)는 IoT 플랫폼(100)과 연동되는 각종 IoT 기기(300)들을 인식하고 IoT 기기(300)들에 대한 정보를 등록하며, 필요시에 프로그램 작성 지원부(110)나 프로그램 구동부(130)에 해당 IoT 기기(300)에 대한 등록 정보를 제공한다.
통신부(150)는 IoT 플랫폼(100)이 각종 IoT 기기(300)들과 연동할 수 있는 통신 환경을 지원하는데, IoT 전용망이나 인터넷 망 등의 원거리 통신방식을 지원할 수도 있고 또는 블루투스나 지그비 등의 근거리 통신방식을 지원할 수도 있다 또한 통신부(150)는 사용자 단말기(200)에 프로그램 개발 환경을 제공하기 위한 통신을 지원하는데, 유무선 인터넷 통신망이나 이동통신망 등 사용자가 이용 가능한 다양한 통신 방식을 지원할 수 있다.
IoT 플랫폼(100)은 이와 같은 구성을 선택적으로 포함함으로써, 다양한 IoT 기기(300)들과 연계되어 사용자 단말기(200)로 프로그램 개발을 위한 환경을 제공할 수 있는데, IoT 플랫폼(100)으로 본 발명에 최적화된 별도의 전용 장치가 구성될 수도 있으나 상황에 따라서는 연산 기능과 저장 기능이 보유한 PC나 서버 등이 IoT 플랫폼(100)으로 적용될 수도 있다.
사용자는 상기에서 살펴본 IoT 플랫폼(100)을 통해 다양한 IoT 기기(300)들을 제어하는 프로그램을 작성할 수 있는데, 이를 위해 사용자 단말기(200)에는 프로그램 지원 어플리케이션이 탑재될 수 있다.
도 4는 본 발명에 따른 사용자 프로그램 작성 지원 IoT 플랫폼을 통해 프로그램 작성을 지원하는 사용자 단말기에 탑재된 프로그램 지원 어플리케이션의 실시예에 대한 구성도를 도시한다.
본 발명에서 사용자 단말기는 일반적으로 보급된 통신 단말에 본 발명을 적용하기 위한 어플리케이션이 탑재될 수도 있고, 또는 본 발명을 위한 전용 단말기가 적용될 수도 있기에 상기 도 4의 실시예에서는 설명의 편의를 위해 사용자 단말기 자체를 프로그램 지원 어플리케이션으로 설명하기로 한다.
프로그램 지원 어플리케이션(200)은 프로그램 에디터(210)와 IoT 플랫폼 연동부(250)를 포함할 수 있다.
프로그램 에디터(210)는 사용자가 소스 코드를 입력할 수 있도록 지원하는 프로그램 작성 툴로서, 바람직하게는 IoT 플랫폼(100)으로부터 제공될 수 있는데, 초보 프로그래머 등의 사용자가 보다 쉽게 프로그램을 작성할 수 있도록 그래픽 유저 인터페이스(GUI) 형태의 프로그램 작성 툴로서 제공될 수 있다.
IoT 플랫폼 연동부(250)는 사용자가 프로그램 에디터(210)로 작성한 프로그램을 IoT 플랫폼(100)을 통해 해당 IoT 기기(300)들에 적용하는 기능을 수행하는데, 가령 사용자가 작성한 소스 코드를 IoT 플랫폼(100)에 전송하고 IoT 플랫폼(100)이 소스 코드에 대한 실행 파일을 생성하여 해당 IoT 기기(300)를 제어한 결과 정보를 IoT 플랫폼(100)으로부터 전달받아 사용자에게 제공한다.
이와 같이 본 발명에서는 상기에서 살펴본 IoT 플랫폼(100)을 중심으로 사용자 단말기(200)와 IoT 기기(300)들로 구성된 IoT 시스템을 이용하여 사용자가 직접 프로그램을 개발하는 환경을 제공하는데, 도 5는 본 발명에 따른 IoT 기기 제어용 프로그램 개발 방법의 실시예에 대한 흐름도를 도시한다.
먼저 IoT 플랫폼(100)은 다양한 IoT 기기(300)들과 접속(S10)하여 각각의 IoT 기기(300)들에 대한 다양한 정보를 수집(S20)하여 등록한다.
그리고 IoT 플랫폼(100)은 사용자가 IoT 기기(300)들을 제어하는 프로그램을 직접 작성할 수 있도록 프로그램 개발 환경을 제공하기 위한 프로그램 지원 플리케이션(S30)을 사용자 단말기(200)로 지원(S30)하고, 사용자 단말기(200)의 프로그램 지원 어플리케이션으로부터의 IoT 기기 정보 요청에 따라 사용자 단말기(200)로 각종 IoT 기기(300)들에 대한 정보를 제공(S40)한다.
사용자는 사용자 단말기(200)를 통해 각종 IoT 기기(300)들에 대한 정보를 기반으로 소스 코드를 입력하여 프로그램을 작성(S110)하는데, 이때 사용자의 프로그램 작성을 보다 쉽게 지원할 수 있도록 그래픽 유저 인터페이스(GUI) 형태의 프로그램 에디터가 제공될 수 있다.
나아가서 IoT 플랫폼(100)은 사전에 각 IoT 기기(300)별 기능에 대한 기능 프로그램을 보유할 수도 있고, 저장된 각 IoT 기기(300)별 기능에 대한 기능 프로그램을 프로그램 가이드로서 사용자 단말기(200)로 제공함으로써 사용자는 단순히 각 IoT 기기(300)별 기능에 대한 기능 프로그램을 조합하여 프로그램을 작성할 수도 있다.
사용자가 프로그램을 작성한 후 그에 대한 실행을 요청하면, 사용자 단말기(200)는 작성된 소스 코드를 IoT 플랫폼(100)으로 전송하여 프로그램 구동을 요청(S120)하며, IoT 플랫폼(100)은 컴파일, 링커, 빌더 등을 통해 해당 프로그램에 대한 실행 파일을 생성하여 프로그램을 구동(S130)시킨다.
그리고 IoT 플랫폼(100)은 프로그램의 구동에 따른 프로세스에 따라 IoT 기기(300)들을 제어(S140)하고 해당 IoT 기기(300)에 대한 제어 결과를 전송(S150)받아 프로그램 구동 결과 정보를 생성(S160)한다.
IoT 플랫폼(100)은 생성된 프로그램 구동 결과 정보를 사용자 단말기(200)로 전송(S170)하여 사용자에게 자신이 작성한 프로그램의 구동 결과를 제공하며, 사용자는 제공된 프로그램 구동 결과 정보를 사용자 단말기(200)를 통해 확인(S180)한다.
만약 프로그램 구동 결과에 대한 수정이 필요한 경우 사용자는 소스 코드를 수정(S190)한 후 다시 앞서 프로그램 작성(S110)부터 프로그램 구동 결과 확인(S180)까지의 일련의 과정이 재차 수행된다.
사용자가 자신이 작성한 프로그램을 해당 IoT 기기(300)들의 제어에 적용하고자 하는 경우, 사용자 단말기(200)를 통해 해당 프로그램 설치를 요청(S210)하며, IoT 플랫폼(100)은 사용자 단말기(200)로부터의 프로그램 설치 요청에 따라 해당 프로그램을 설치(S220)하고, 설치된 프로그램의 프로세스를 기반으로 해당 IoT 기기(300)들을 제어(S320)하게 된다.
상기 도 5에서는 프로그램이 IoT 플랫폼(100)에 설치되는 것으로 도시되었는데, 프로그램 자체가 다양한 IoT 기기(300)들을 복합적으로 제어하는 프로세스인 경우, 필요한 설정만 해당 IoT 기기(300)에 설치될 수 있고 프로그램 자체는 IoT 플랫폼(100)에서 구동되어 다양한 IoT 기기(300)들이 복합적으로 제어될 수 있으며, 또한 프로그램이 단일 IoT 기기(300)를 제어하는 프로세스인 경우, 프로그램 자체가 해당 IoT 기기(300)에 설치되어 해당 IoT 기기(300)에서 프로그램이 동작될 수 있으며, IoT 플랫폼(100)은 그 동작 결과만을 모니터링할 수도 있다.
이와 같이 본 발명은, 사용자 자신이 필요에 따라 각종 IoT 기기들을 자신의 취향과 습관에 기반하여 제어할 수 있도록 IoT 기기들에 대한 제어 프로그램을 변경하거나 또는 직접 자신이 IoT 기기들을 제어할 수 있는 프로그램을 작성할 수 있도록 프로그램 개발 환경을 지원할 수 있게 된다.
특히, IoT 기기들에 대하여 사전에 설정된 프로그램에 따른 제어 기능들에 한정되지 않고, 사용자 자신이 필요로하는 기능을 추가적으로 설정하여 IoT 기기들이 사용자가 작성한 프로그램에 따라 제어됨으로써 IoT 기기들의 사용에 대한 사용자의 만족도를 더욱 향상시킬 수 있게 된다.
나아가서 프로그램에 관심을 갖는 사용자들에게 직접 프로그램을 보다 쉽게 개발할 수 잇는 툴을 제공함으로써 프로그램 개발을 위한 교육 환경을 제공할 수 있게 된다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상이 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : IoT 플랫폼,
110 : 프로그램 작성 지원부,
111 : 에디터 GUI, 113 : 컴파일러,
115 : 링커, 117 : 디버거,
119 : 빌더,
120 : 프로그램 관리부,
130 : 프로그램 구동부,
140 : IoT 기기 관리부,
150 : 통신부,
200, 200a, 200b,...200n : 사용자 단말기,
210 : 프로그램 에디터, 250 : IoT 플랫폼 연동부,
300 : IoT 기기,
310 : IoT 센서, 350 : IoT 디바이스.

Claims (13)

  1. IoT 기기를 인식하고 인식된 IoT 기기에 대한 정보를 수집하여 등록하여 관리하는 IoT 기기 관리부;
    사용자 단말기로 프로그램 작성을 위한 툴을 제공하고, 상기 툴을 통해 작성된 프로그램의 실행파일을 생성하는 프로그램 작성 지원부; 및
    상기 프로그램 작성 지원부가 생성한 실행파일을 실행하여 상기 프로그램을 프로세스에 따라 해당 IoT 기기를 제어하는 프로그램 구동부를 포함하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  2. 제 1 항에 있어서,
    IoT 기기에 대한 제어 프로그램을 저장하고 관리하는 프로그램 관리부를 더 포함하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  3. 제 2 항에 있어서,
    상기 프로그램 작성 지원부는,
    상기 IoT 기기 관리부에 등록된 IoT 기기에 대한 정보를 기초로 IoT 기기별 기능에 대한 프로그램 가이드 정보를 제공하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  4. 제 3 항에 있어서,
    상기 프로그램 관리부는, 각 IoT 기기별 기능 프로그램을 저장하며,
    상기 프로그램 작성 지원부는, 상기 프로그램 관리부에 저장된 각 IoT 기기별 기능 프로그램을 상기 프로그램 가이드 정보를 제공하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  5. 제 1 항에 있어서,
    상기 프로그램 작성 지원부는,
    상기 사용자 단말기로 프로그램 에디터 GUI를 제공하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  6. 제 1 항에 있어서,
    상기 프로그램 작성 지원부는,
    상기 사용자 단말기로 프로그램 작성을 위한 툴을 제공 에디터 GUI;
    상기 사용자 단말기에서 상기 에디터 GUI로 작성된 소스 코드를 컴파일하는 컴파일러; 및
    컴파일된 소스 코드에 대한 실행파일을 생성하는 링커를 포함하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  7. 제 5 항에 있어서,
    상기 프로그램 작성 지원부는,
    상기 실행파일을 디버깅하는 디버거; 및
    상기 실행파일에 대한 설정, 빌드 및 루트파일을 설치하는 빌더를 더 포함하는 것을 특징으로 하는 사용자 프로그램 작성 지원 IoT 플랫폼.
  8. IoT 플랫폼이 사용자 단말기로 프로그램 작성을 위한 툴을 제공하여 프로그램 작성 환경을 제공하고, 상기 사용자 단말기로부터 사용자가 작성한 프로그램을 전송받는 프로그램 작성 단계;
    상기 IoT 플랫폼이 상기 프로그램의 프로세스에 따라 해당 IoT 기기를 제어하고 프로그램 구동 결과 정보를 생성하는 프로그램 구동 결과 생성 단계; 및
    상기 IoT 플랫폼이 상기 사용자 단말기로부터의 상기 프로그램에 대한 설치 요청에 따라 상기 프로그램을 설치하는 프로그램 설치 단계를 포함하는 것을 특징으로 하는 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법.
  9. 제 8 항에 있어서,
    상기 IoT 플랫폼이 IoT 기기를 인식하여 상기 IoT 기기에 대한 정보를 등록하는 IoT 기기 인식 단계를 더 포함하며,
    상기 프로그램 작성 단계는, 상기 사용자 단말기로 상기 IoT 기기에 대한 정보를 더 제공하는 것을 특징으로 하는 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법.
  10. 제 8 항에 있어서,
    상기 프로그램 작성 단계는,
    상기 IoT 플랫폼이 상기 사용자 단말기로 프로그램 에디터 GUI를 제공하는 단계;
    상기 IoT 플랫폼이 상기 사용자 단말기로부터 사용자가 작성한 프로그램의 소스 코드를 전송받는 단계; 및
    상기 IoT 플랫폼이 상기 소스 코드를 컴파일하고 실행 파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법.
  11. 제 8 항에 있어서,
    상기 IoT 플랫폼은 각 IoT 기기별 기능에 대한 기능 프로그램을 보유하며,
    상기 프로그램 작성 단계는,
    상기 사용자 단말기로 각 IoT 기기별 기능에 대한 기능 프로그램을 제공하며, 상기 사용자 단말기로부터 각 IoT 기기별 기능에 대한 기능 프로그램이 조합된 프로그램을 전송받는 것을 특징으로 하는 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법.
  12. 제 8 항에 있어서,
    상기 IoT 플랫폼이 복수의 IoT 기기를 상기 프로그램의 프로세스에 따라 제어하는 단계를 더 포함하는 것을 특징으로 하는 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법.
  13. 제 8 항에 있어서,
    상기 프로그램 설치 단계는,
    상기 IoT 플랫폼이 해당 IoT 기기에 상기 프로그램을 설치하는 것을 특징으로 하는 IoT 플랫폼을 이용한 IoT 기기 제어용 프로그램 개발 방법.
KR1020150188996A 2015-12-29 2015-12-29 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법 KR20170078459A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150188996A KR20170078459A (ko) 2015-12-29 2015-12-29 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150188996A KR20170078459A (ko) 2015-12-29 2015-12-29 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법

Publications (1)

Publication Number Publication Date
KR20170078459A true KR20170078459A (ko) 2017-07-07

Family

ID=59353859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150188996A KR20170078459A (ko) 2015-12-29 2015-12-29 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법

Country Status (1)

Country Link
KR (1) KR20170078459A (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190036671A (ko) * 2017-09-28 2019-04-05 에스케이 주식회사 모바일 단말 원격제어 시스템을 활용한 IoT 서비스 애플리케이션 테스트 방법 및 시스템
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치
US11042398B2 (en) 2018-07-09 2021-06-22 Samsung Electronics Co., Ltd. System and method for guest operating system using containers
KR20210156896A (ko) * 2020-06-18 2021-12-28 (주)디아이앤씨 스마트팩토리를 위한 근로자 주도 서비스 시스템
KR20220051046A (ko) * 2020-10-16 2022-04-26 (주)디아이앤씨 안전한 생산자원 수집 및 제어시스템
KR20220058246A (ko) * 2020-10-30 2022-05-09 나모웹비즈주식회사 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버
US11363522B2 (en) 2018-07-11 2022-06-14 Samsung Electronics Co., Ltd. Method of controlling electronic apparatus and computer-readable recording medium
KR20220161753A (ko) * 2021-05-31 2022-12-07 김종문 조립가공 제조산업의 스마트 공장용 데이터 수집 및 제어 장치
US11792269B2 (en) 2021-01-28 2023-10-17 Samsung Electronics Co., Ltd. Method for generating application for controlling external electronic device and electronic apparatus for supporting the same

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190036671A (ko) * 2017-09-28 2019-04-05 에스케이 주식회사 모바일 단말 원격제어 시스템을 활용한 IoT 서비스 애플리케이션 테스트 방법 및 시스템
US11042398B2 (en) 2018-07-09 2021-06-22 Samsung Electronics Co., Ltd. System and method for guest operating system using containers
US11363522B2 (en) 2018-07-11 2022-06-14 Samsung Electronics Co., Ltd. Method of controlling electronic apparatus and computer-readable recording medium
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치
KR20210156896A (ko) * 2020-06-18 2021-12-28 (주)디아이앤씨 스마트팩토리를 위한 근로자 주도 서비스 시스템
KR20220051046A (ko) * 2020-10-16 2022-04-26 (주)디아이앤씨 안전한 생산자원 수집 및 제어시스템
KR20220058246A (ko) * 2020-10-30 2022-05-09 나모웹비즈주식회사 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 라이브러리 관리 방법 및 통합 개발 클라우드 서버
US11792269B2 (en) 2021-01-28 2023-10-17 Samsung Electronics Co., Ltd. Method for generating application for controlling external electronic device and electronic apparatus for supporting the same
KR20220161753A (ko) * 2021-05-31 2022-12-07 김종문 조립가공 제조산업의 스마트 공장용 데이터 수집 및 제어 장치

Similar Documents

Publication Publication Date Title
KR20170078459A (ko) 사용자 프로그램 작성 지원 IoT 플랫폼 및 이를 이용한 IoT 기기 제어용 프로그램 개발 방법
EP3398062B1 (en) Generation of a device application
Raj et al. A study on approaches to build cross-platform mobile applications and criteria to select appropriate approach
Nebeling et al. Interactive development of cross-device user interfaces
CA2866180A1 (en) Systems and methods for building a universal intelligent assistant with learning capabilities
CN110716510A (zh) 用于自动化应用的抽象层
JP2007157165A (ja) 自律的なシステム構成を支援する状況認知基盤システム及び運用方法
KR20140054948A (ko) 임베디드 시스템을 위한 오픈씨엘 응용 소프트웨어 개발 지원 도구 구성 및 방법
US20190138299A1 (en) Software development lifecycle as a service
WO2015183276A1 (en) Isolating production environment debugging sessions
Kamaludeen et al. Guideline-based approach for IoT home application development
Zibula et al. Cross-platform development using HTML5, jQuery mobile, and phonegap: realizing a smart meter application
KR102113757B1 (ko) 웹 기반 로봇 프로그래밍 시스템 및 방법
CN113709243A (zh) 设备远程控制方法及装置、电子设备和存储介质
CN110825370B (zh) 移动端应用开发方法、装置及系统
EP3812884A1 (en) Information presentation method and apparatus
Dutta et al. Web based integrated development environment
KR20140026815A (ko) 하이브리드 앱 제공 시스템 및 제공 방법
KR102214060B1 (ko) IoT (Internet of Things) 서비스 인프라와의 연동을 지원하는 초소형 IoT 디바이스용 소프트웨어의 개발을 위한 클라우드 기반 통합 개발 환경을 제공하는 통합 개발 클라우드 서버 및 방법
KR102150545B1 (ko) 웹 앱 개발 장치, 방법 및 컴퓨터로 판독 가능한 기록 매체
KR20140045643A (ko) 어플리케이션 테스트 지원 시스템 및 방법, 이를 지원하는 장치
Zibula et al. Developing a Cross-platform Mobile Smart Meter Application using HTML5, jQuery Mobile and PhoneGap.
KR20150080053A (ko) 스마트 기기가 주변 장치를 제어하는 서비스 제공 장치, 서비스 제공 시스템 및 서비스 제공 방법
Sato et al. WWW-based Remote Controller for LEGO robots
Saeedi The Jetson Artificial Intelligence Tool Chain (JAI-TC)

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2016101005856; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20161010

Effective date: 20180821