KR102555796B1 - System and method for accurately detecting user location in IoT system - Google Patents

System and method for accurately detecting user location in IoT system Download PDF

Info

Publication number
KR102555796B1
KR102555796B1 KR1020177031056A KR20177031056A KR102555796B1 KR 102555796 B1 KR102555796 B1 KR 102555796B1 KR 1020177031056 A KR1020177031056 A KR 1020177031056A KR 20177031056 A KR20177031056 A KR 20177031056A KR 102555796 B1 KR102555796 B1 KR 102555796B1
Authority
KR
South Korea
Prior art keywords
iot
signal strength
user
wireless device
delete delete
Prior art date
Application number
KR1020177031056A
Other languages
Korean (ko)
Other versions
KR20170132263A (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
Priority claimed from US14/673,582 external-priority patent/US9704318B2/en
Priority claimed from US14/673,551 external-priority patent/US10045150B2/en
Application filed by 어페로, 인크. filed Critical 어페로, 인크.
Publication of KR20170132263A publication Critical patent/KR20170132263A/en
Application granted granted Critical
Publication of KR102555796B1 publication Critical patent/KR102555796B1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0252Radio frequency fingerprinting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0252Radio frequency fingerprinting
    • G01S5/02521Radio frequency fingerprinting using a radio-map
    • G01S5/02524Creating or updating the radio-map
    • G01S5/02525Gathering the radio frequency fingerprints
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/175Controlling the light source by remote control
    • H05B47/19Controlling the light source by remote control via wireless transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Signal Processing (AREA)
  • Selective Calling Equipment (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

무선 디바이스의 위치를 정확하게 검출하기 위한 시스템 및 방법이 설명된다. 예를 들어, 방법의 일 실시예는 무선 디바이스와 사용자의 집 내의 복수의 IoT 디바이스 및/또는 IoT 허브 사이의 신호 강도를 나타내는 신호 강도 데이터를 수집하는 단계; 신호 강도 데이터를 사용자 집 내의 위치들과 관련시키고 관련을 위치 데이터베이스 내에 저장하는 단계; 및 데이터베이스 내의 신호 강도 데이터를, 무선 디바이스와 복수의 IoT 디바이스 및/또는 IoT 허브 사이의 현재 신호 강도를 나타내는 현재 신호 강도 데이터와 비교함으로써 무선 디바이스의 현재 위치를 결정하는 단계를 포함한다.Systems and methods for accurately detecting the location of a wireless device are described. For example, one embodiment of a method may include collecting signal strength data indicative of signal strength between a wireless device and a plurality of IoT devices and/or IoT hubs within a user's home; associating the signal strength data with locations within the user's home and storing the association in a location database; and determining the current location of the wireless device by comparing signal strength data in the database with current signal strength data representing current signal strength between the wireless device and a plurality of IoT devices and/or IoT hubs.

Description

IoT 시스템에서 사용자 위치를 정확하게 감지하기 위한 시스템 및 방법System and method for accurately detecting user location in IoT system

본 발명은 일반적으로 컴퓨터 시스템의 분야에 관한 것이다. 더 구체적으로는, 본 발명은 IoT 시스템에서 사용자 위치를 정확하게 감지하기 위한 시스템 및 방법에 관한 것이다.The present invention relates generally to the field of computer systems. More specifically, the present invention relates to a system and method for accurately detecting a user location in an IoT system.

"사물 인터넷"은 인터넷 기반구조 내의 고유하게 식별 가능한 임베디드 디바이스들의 상호접속을 지칭한다. 궁극적으로, IoT는, 사실상 임의의 타입의 물리적인 물건이 그 자체 또는 그의 주변에 대한 정보를 제공할 수 있고 그리고/또는 인터넷을 통하여 클라이언트 디바이스를 통해 원격으로 제어될 수 있는 새로운 광범위한 타입의 애플리케이션을 생성할 것으로 예상된다.“Internet of Things” refers to the interconnection of uniquely identifiable embedded devices within the Internet infrastructure. Ultimately, the IoT will open up a new and widespread type of application in which virtually any type of physical object can provide information about itself or its surroundings and/or be remotely controlled via a client device over the Internet. expected to create

IoT 개발 및 채택은 접속성, 전력, 및 표준화의 결여에 관련된 이슈로 인해 느렸다. 예를 들어, IoT 개발 및 채택에 대한 하나의 장애물은 개발자가 새로운 IoT 디바이스 및 서비스를 설계 및 제공하도록 허용하기 위한 어떠한 표준 플랫폼도 존재하지 않는다는 것이다. IoT 시장에 진입하기 위해, 개발자는 원하는 IoT 구현을 지원하는 데 요구되는 네트워크 프로토콜 및 기반구조, 하드웨어, 소프트웨어 및 서비스를 포함하여 처음부터 끝까지 전체 IoT 플랫폼을 설계해야 한다. 결과적으로, IoT 디바이스의 각각의 제공자는 IoT 디바이스를 설계하고 접속하기 위한 독점적인 기법을 사용하여, 다수의 타입의 IoT 디바이스의 채택을 최종 사용자에게 부담이 되게 한다. IoT 채택에 대한 다른 장애물은 IoT 디바이스들을 접속하고 전력공급하는 것과 연관된 어려움이다. 예를 들어, 냉장고, 차고 도어 오프너, 환경 센서, 집 보안 센서/제어기 등과 같은 기기를 접속시키는 것은, 각각의 접속된 IoT 디바이스에 전력공급하기 위한 전기 소스를 요구하고, 그러한 전기 소스는 종종 편리하게 위치되어 있지 않다.IoT development and adoption has been slow due to issues related to connectivity, power, and lack of standardization. For example, one obstacle to IoT development and adoption is the lack of any standard platform to allow developers to design and deliver new IoT devices and services. To enter the IoT market, developers must design an entire IoT platform from start to finish, including network protocols and infrastructure, hardware, software and services required to support a desired IoT implementation. As a result, each provider of IoT devices uses proprietary techniques for designing and connecting IoT devices, making adoption of multiple types of IoT devices a burden on end users. Another obstacle to IoT adoption is the difficulty associated with connecting and powering IoT devices. For example, connecting appliances such as refrigerators, garage door openers, environmental sensors, home security sensors/controllers, etc. requires an electrical source to power each connected IoT device, and such an electrical source is often convenient. not located

존재하는 다른 문제는 블루투스 LE와 같은 IoT 디바이스들을 상호접속하는 데 사용되는 무선 기술들이 일반적으로 단거리 기술들이라는 점이다. 따라서, IoT 구현을 위한 데이터 수집 허브가 IoT 디바이스의 범위 밖에 있는 경우, IoT 디바이스는 데이터를 IoT 허브로 전송할 수 없을 것이다(그리고 그 반대도 마찬가지다). 그 결과, IoT 디바이스가 범위 밖에 있는 IoT 허브(또는 다른 IoT 디바이스)에 데이터를 제공하는 것을 가능하게 하는 기술들이 필요하다.Another problem that exists is that the radio technologies used to interconnect IoT devices, such as Bluetooth LE, are generally short-range technologies. Thus, if the data collection hub for the IoT implementation is out of range of the IoT device, the IoT device will not be able to transmit data to the IoT hub (and vice versa). As a result, techniques are needed that enable an IoT device to provide data to an IoT hub (or other IoT device) that is out of range.

아래의 도면들과 관련된 아래의 상세한 설명으로부터 본 발명의 더 양호한 이해가 얻어질 수 있다.
도 1a 및 도 1b는 IoT 시스템 아키텍처의 상이한 실시예들을 예시한다.
도 2는 본 발명의 일 실시예에 따른 IoT 디바이스를 예시한다.
도 3은 본 발명의 일 실시예에 따른 IoT 허브를 예시한다.
도 4a 및 도 4b는 IoT 디바이스들로부터 데이터를 제어 및 수집하고 통지를 생성하기 위한 본 발명의 실시예들을 예시한다.
도 5는 IoT 디바이스들로부터 데이터를 수집하고 IoT 허브 및/또는 IoT 서비스로부터 통지를 생성하기 위한 본 발명의 실시예들을 예시한다.
도 6은 현재의 무선 록 시스템들에서 사용자를 식별하는 것과 관련된 문제들을 예시한다.
도 7은 IoT 디바이스들 및/또는 IoT 허브들이 무선 록 시스템의 사용자의 위치를 정확하게 검출하는 데 사용되는 시스템을 예시한다.
도 8은 IoT 디바이스들 및/또는 IoT 허브들이 무선 록 시스템의 사용자의 위치를 정확하게 검출하는 데 사용되는 다른 실시예를 예시한다.
도 9는 위치 검출 시스템을 교정하고, 신호 강도 값들에 기초하여 사용자의 위치를 검출하기 위한 일 실시예를 예시한다.
도 10은 IoT 디바이스들 및/또는 IoT 허브들을 사용하여 무선 록 시스템을 구현하기 위한 방법을 예시한다.
도 11은 무선 록 시스템을 교정하기 위한 방법의 일 실시예를 예시한다.
도 12는 신호 강도 값들로 사용자의 위치를 결정하기 위한 본 발명의 일 실시예를 예시한다.
도 13은 위치 검출 시스템을 교정하고, 신호 강도 값들에 기초하여 사용자의 위치를 검출하기 위한 다른 실시예를 예시한다.
도 14는 암호화 및 디지털 서명과 같은 개선된 보안 기술들을 구현하는 본 발명의 실시예들을 예시한다.
도 15는 IoT 디바이스 상에 키를 저장하기 위해 가입자 식별 모듈(SIM)이 사용되는 아키텍처의 일 실시예를 예시한다.
도 16a는 IoT 디바이스가 바코드 또는 QR 코드를 사용하여 등록되는 일 실시예를 예시한다.
도 16b는 바코드 또는 QR 코드를 사용하여 페어링이 수행되는 일 실시예를 예시한다.
도 17은 IoT 허브를 사용하여 SIM을 프로그래밍하는 방법의 일 실시예를 예시한다.
도 18은 IoT 디바이스를 IoT 허브 및 IoT 서비스에 등록하는 방법의 일 실시예를 예시한다.
도 19는 IoT 디바이스로 전송될 데이터를 암호화하는 방법의 일 실시예를 예시한다.
A better understanding of the present invention may be obtained from the following detailed description in conjunction with the drawings below.
1A and 1B illustrate different embodiments of an IoT system architecture.
2 illustrates an IoT device according to an embodiment of the present invention.
3 illustrates an IoT hub according to an embodiment of the present invention.
4A and 4B illustrate embodiments of the present invention for controlling and collecting data from IoT devices and generating notifications.
5 illustrates embodiments of the present invention for collecting data from IoT devices and generating notifications from an IoT hub and/or IoT service.
6 illustrates the problems associated with identifying a user in current wireless lock systems.
7 illustrates a system in which IoT devices and/or IoT hubs are used to accurately detect the location of a user of a wireless lock system.
8 illustrates another embodiment in which IoT devices and/or IoT hubs are used to accurately detect the location of a user of a wireless lock system.
9 illustrates one embodiment for calibrating a location detection system and detecting a user's location based on signal strength values.
10 illustrates a method for implementing a wireless lock system using IoT devices and/or IoT hubs.
11 illustrates one embodiment of a method for calibrating a wireless lock system.
12 illustrates one embodiment of the present invention for determining a user's location from signal strength values.
13 illustrates another embodiment for calibrating a location detection system and detecting a user's location based on signal strength values.
14 illustrates embodiments of the present invention that implement advanced security techniques such as encryption and digital signatures.
15 illustrates one embodiment of an architecture in which a Subscriber Identity Module (SIM) is used to store keys on an IoT device.
16A illustrates an embodiment in which an IoT device is registered using a barcode or QR code.
16B illustrates an embodiment in which pairing is performed using a barcode or QR code.
17 illustrates one embodiment of a method for programming a SIM using an IoT hub.
18 illustrates an embodiment of a method of registering an IoT device to an IoT hub and an IoT service.
19 illustrates an embodiment of a method of encrypting data to be transmitted to an IoT device.

아래의 설명에서, 설명의 목적으로, 아래에 설명되는 본 발명의 실시예의 완전한 이해를 제공하기 위해 다수의 특정 상세들이 기재된다. 그러나, 본 발명의 실시예는 이러한 특정 상세들 중 일부 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에서, 잘 알려진 구조 및 디바이스는 본 발명의 실시예의 기본 원리를 불명확하게 하는 것을 피하기 위해 블록도 형태로 도시된다.In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the invention described below. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the basic principles of the embodiments of the present invention.

본 발명의 일 실시예는 새로운 IoT 디바이스 및 애플리케이션을 설계 및 구축하기 위해 개발자에 의해 이용될 수 있는 사물 인터넷(IoT) 플랫폼을 포함한다. 특히, 일 실시예는 IoT 디바이스들이 그것을 통해 인터넷에 결합되는 미리 정의된 네트워킹 프로토콜 스택 및 IoT 허브를 포함한 IoT 디바이스들을 위한 기반 하드웨어/소프트웨어 플랫폼을 포함한다. 부가적으로, 일 실시예는 IoT 허브들 및 접속된 IoT 디바이스들이 그것을 통해 아래에 설명되는 바와 같이 액세스 및 관리될 수 있는 IoT 서비스를 포함한다. 부가적으로, IoT 플랫폼의 일 실시예는 IoT 서비스, 허브 및 접속된 디바이스들에 액세스하고 그들을 구성하기 위한 (예를 들어, 클라이언트 디바이스 상에서 실행되는) IoT 앱 또는 웹 애플리케이션을 포함한다. 기존의 온라인 소매상 및 다른 웹사이트 운영자는 고유 IoT 기능을 기존의 사용자 기반에 쉽게 제공하기 위해 본 명세서에 설명된 IoT 플랫폼을 레버리징할 수 있다.One embodiment of the present invention includes an Internet of Things (IoT) platform that can be used by developers to design and build new IoT devices and applications. In particular, one embodiment includes an underlying hardware/software platform for IoT devices including an IoT hub and a predefined networking protocol stack through which IoT devices are coupled to the Internet. Additionally, one embodiment includes an IoT service through which IoT hubs and connected IoT devices can be accessed and managed as described below. Additionally, one embodiment of the IoT platform includes an IoT app or web application (eg, running on a client device) to access and configure IoT services, hubs, and connected devices. Existing online retailers and other website operators can leverage the IoT platform described herein to easily provide unique IoT capabilities to their existing user base.

도 1a는 본 발명의 실시예가 구현될 수 있는 아키텍처 플랫폼의 개요를 예시한다. 특히, 예시된 실시예는 그 자체가 인터넷(220)을 통해 IoT 서비스(120)에 통신 가능하게 결합된 중앙 IoT 허브(110)에 로컬 통신 채널(130)을 통해 통신 가능하게 결합된 복수의 IoT 디바이스(101 내지 105)를 포함한다. IoT 디바이스(101 내지 105) 각각은 로컬 통신 채널들(130) 각각을 인에이블하기 위해 (예를 들어, 아래에 설명되는 페어링 기법을 사용하여) IoT 허브(110)에 초기에 페어링될 수 있다. 일 실시예에서, IoT 서비스(120)는 각각의 사용자의 IoT 디바이스로부터 수집된 사용자 계정 정보 및 데이터를 유지하기 위한 최종 사용자 데이터베이스(122)를 포함한다. 예를 들어, IoT 디바이스가 센서(예를 들어, 온도 센서, 가속도계, 열 센서, 모션 검출기 등)를 포함하면, 데이터베이스(122)는 IoT 디바이스(101 내지 105)에 의해 수집된 데이터를 저장하도록 계속 업데이트될 수 있다. 이어서, 데이터베이스(122)에 저장된 데이터는 사용자의 디바이스(135) 상에 설치된 IoT 앱 또는 브라우저를 통해(또는 데스크톱 또는 다른 클라이언트 컴퓨터 시스템을 통해) 최종 사용자에 의해 그리고 (예를 들어, IoT 서비스(120)에 가입한 웹사이트(130)와 같은) 웹 클라이언트에 의해 액세스 가능하게 될 수 있다.1A illustrates an overview of an architectural platform on which embodiments of the present invention may be implemented. In particular, the illustrated embodiment provides a plurality of IoT devices communicatively coupled via a local communication channel 130 to a central IoT hub 110 that is itself communicatively coupled to an IoT service 120 via the Internet 220. It includes devices 101-105. Each of the IoT devices 101 - 105 may be initially paired to the IoT hub 110 (eg, using a pairing technique described below) to enable each of the local communication channels 130 . In one embodiment, the IoT service 120 includes an end user database 122 for maintaining user account information and data collected from each user's IoT device. For example, if the IoT device includes sensors (eg, temperature sensors, accelerometers, thermal sensors, motion detectors, etc.), database 122 continues to store data collected by IoT devices 101-105. can be updated The data stored in the database 122 is then accessed by the end user via an IoT app or browser installed on the user's device 135 (or via a desktop or other client computer system) and (e.g., via the IoT service 120). ) can be made accessible by web clients (such as websites 130 that have subscribed to).

IoT 디바이스(101 내지 105)에는 그들 및 그들의 주변에 대한 정보를 수집하고 수집된 정보를 IoT 허브(110)를 통해 IoT 서비스(120), 사용자 디바이스(135) 및/또는 외부 웹사이트(130)에 제공하기 위한 다양한 타입들의 센서가 탑재될 수 있다. IoT 디바이스(101 내지 105) 중 일부는 IoT 허브(110)를 통해 전송된 제어 커맨드에 응답하여 지정된 기능을 수행할 수 있다. IoT 디바이스(101 내지 105)에 의해 수집된 정보 및 제어 커맨드의 다양한 특정 예가 아래에서 제공된다. 아래에 설명된 일 실시예에서, IoT 디바이스(101)는, 사용자 선택을 기록하고 사용자 선택을 IoT 서비스(120) 및/또는 웹사이트에 전송하도록 설계된 사용자 입력 디바이스이다.The IoT devices 101 to 105 collect information about themselves and their surroundings, and provide the collected information to the IoT service 120, the user device 135, and/or an external website 130 through the IoT hub 110. Various types of sensors to provide may be mounted. Some of the IoT devices 101 to 105 may perform designated functions in response to a control command transmitted through the IoT hub 110 . Various specific examples of information and control commands collected by the IoT devices 101 - 105 are provided below. In one embodiment described below, IoT device 101 is a user input device designed to record user selections and transmit user selections to IoT services 120 and/or websites.

일 실시예에서, IoT 허브(110)는 4G(예를 들어, 모바일 WiMAX, LTE) 또는 5G 셀룰러 데이터 서비스와 같은 셀룰러 서비스(115)를 통해 인터넷(220)에 대한 접속을 설정하기 위한 셀룰러 라디오를 포함한다. 대안적으로 또는 부가적으로, IoT 허브(110)는 (예를 들어, 인터넷 서비스를 최종 사용자에게 제공하는 인터넷 서비스 제공자를 통해) IoT 허브(110)를 인터넷에 결합시키는 WiFi 액세스 포인트 또는 라우터(116)를 통해 WiFi 접속을 설정하기 위한 WiFi 라디오를 포함할 수 있다. 물론, 본 발명의 기본 원리는 임의의 특정 타입의 통신 채널 또는 프로토콜로 제한되지 않는다는 것에 유의하여야 한다.In one embodiment, IoT hub 110 uses a cellular radio to establish a connection to Internet 220 via cellular service 115 such as 4G (eg, mobile WiMAX, LTE) or 5G cellular data service. include Alternatively or additionally, IoT hub 110 may be a WiFi access point or router 116 that couples IoT hub 110 to the Internet (eg, via an Internet service provider that provides Internet services to end users). ) may include a WiFi radio for establishing a WiFi connection. Of course, it should be noted that the basic principles of the present invention are not limited to any particular type of communication channel or protocol.

일 실시예에서, IoT 디바이스(101 내지 105)는 배터리 전력으로 장기간(예를 들어, 수년) 동안 동작할 수 있는 초 저전력 디바이스이다. 전력을 보전하기 위해, 로컬 통신 채널(130)은 블루투스 저에너지(LE)와 같은 저전력 무선 통신 기술을 사용하여 구현될 수 있다. 이러한 실시예에서, IoT 디바이스(101 내지 105) 각각 및 IoT 허브(110)에는 블루투스 LE 라디오 및 프로토콜 스택이 탑재된다.In one embodiment, the IoT devices 101-105 are ultra-low power devices that can operate for long periods of time (eg, several years) on battery power. To conserve power, the local communication channel 130 may be implemented using a low power wireless communication technology such as Bluetooth Low Energy (LE). In this embodiment, each of the IoT devices 101 to 105 and the IoT hub 110 are equipped with a Bluetooth LE radio and protocol stack.

언급된 바와 같이, 일 실시예에서, IoT 플랫폼은 사용자가 접속된 IoT 디바이스(101 내지 105), IoT 허브(110), 및/또는 IoT 서비스(120)에 액세스하고 그들을 구성하도록 허용하기 위해 사용자 디바이스(135) 상에서 실행되는 IoT 앱 또는 웹 애플리케이션을 포함한다. 일 실시예에서, 앱 또는 웹 애플리케이션은 IoT 기능을 그의 사용자 기반에 제공하도록 웹사이트(130)의 운영자에 의해 설계될 수 있다. 예시된 바와 같이, 웹사이트는 각각의 사용자에 관련된 계정 기록을 포함하는 사용자 데이터베이스(131)를 유지할 수 있다.As noted, in one embodiment, the IoT platform is a user device to allow a user to access and configure connected IoT devices 101 - 105 , IoT hub 110 , and/or IoT service 120 . (135) includes IoT apps or web applications running on it. In one embodiment, an app or web application may be designed by the operator of website 130 to provide IoT functionality to its user base. As illustrated, the website may maintain a user database 131 containing account records associated with each user.

도 1b는 복수의 IoT 허브(110, 111, 190)에 대한 추가의 접속 옵션들 예시한다. 이러한 실시예에서, 단일 사용자는 단일 사용자 구내(premises)(180)(예를 들어, 사용자의 집 또는 사업체)에 현장 설치된 다수의 허브(110, 111)를 가질 수 있다. 이것은 예를 들어 IoT 디바이스(101 내지 105) 모두를 접속시키기 위해 필요한 무선 범위를 확장시키기 위해 행해질 수 있다. 표시된 바와 같이, 사용자가 다수의 허브(110, 111)를 갖는 경우, 그것들은 로컬 통신 채널(예를 들어, Wifi, 이더넷, 전력 라인 네트워킹 등)을 통해 접속될 수 있다. 일 실시예에서, 허브(110, 111) 각각은 (도 1b에 명시적으로 도시되지 않은) 셀룰러(115) 또는 WiFi(116) 접속을 통해 IoT 서비스(120)에 대한 직접 접속을 설정할 수 있다. 대안적으로 또는 부가적으로, IoT 허브(110)와 같은 IoT 허브들 중 하나는 (IoT 허브(110)와 IoT 허브(111)를 연결하는 점선에 의해 표시된 바와 같이) IoT 허브(111)와 같은, 사용자 구내(180) 상의 다른 IoT 허브들 모두에 접속 및/또는 로컬 서비스를 제공하는 "마스터" 허브로서 동작할 수 있다. 예를 들어, 마스터 IoT 허브(110)는 IoT 서비스(120)에 대한 직접 접속을 설정하기 위한 유일한 IoT 허브일 수 있다. 일 실시예에서, "마스터" IoT 허브(110)에만 IoT 서비스(120)에 대한 접속을 설정하기 위한 셀룰러 통신 인터페이스가 탑재된다. 그렇기 때문에, IoT 서비스(120)와 다른 IoT 허브(111) 사이의 모든 통신은 마스터 IoT 허브(110)를 통해 흐를 것이다. 이러한 역할에서, 마스터 IoT 허브(110)는 다른 IoT 허브(111)와 (예를 들어, 가능한 경우 로컬식으로 일부 데이터 요청들을 서비스하는) IoT 서비스(120) 사이에서 교환되는 데이터에 대해 필터링 동작을 수행하기 위한 부가적인 프로그램 코드를 제공받을 수 있다.1B illustrates additional connectivity options for a plurality of IoT hubs 110, 111, 190. In such an embodiment, a single user may have multiple hubs 110, 111 field-installed on a single user premises 180 (eg, the user's home or business). This can be done, for example, to extend the wireless range needed to connect all of the IoT devices 101-105. As indicated, if a user has multiple hubs 110, 111, they may be connected via local communication channels (eg Wifi, Ethernet, power line networking, etc.). In one embodiment, each of the hubs 110, 111 may establish a direct connection to the IoT service 120 via a cellular 115 or WiFi 116 connection (not explicitly shown in FIG. 1B). Alternatively or additionally, one of the IoT hubs, such as IoT hub 110 (as indicated by the dotted line connecting IoT hub 110 and IoT hub 111), such as IoT hub 111 , can act as a “master” hub providing access and/or local service to all of the other IoT hubs on the user premises 180. For example, master IoT hub 110 may be the only IoT hub to establish a direct connection to IoT service 120 . In one embodiment, only the “master” IoT hub 110 is equipped with a cellular communication interface for establishing a connection to the IoT service 120. As such, all communication between the IoT service 120 and other IoT hubs 111 will flow through the master IoT hub 110. In this role, the master IoT hub 110 performs filtering operations on data exchanged between the other IoT hubs 111 and the IoT service 120 (eg servicing some data requests locally, if possible). You may be provided with additional program code to perform.

IoT 허브(110, 111)가 어떻게 접속되는지에 관계없이, 일 실시예에서, IoT 서비스(120)는 앱이 설치된 사용자 디바이스(135)를 통해 액세스 가능한 단일의 포괄적인 사용자 인터페이스 (및/또는 브라우저-기반 인터페이스)하에서 허브를 사용자와 논리적으로 연관시키고 부착된 IoT 디바이스(101 내지 105) 모두를 결합시킬 것이다.Regardless of how the IoT hubs 110, 111 are connected, in one embodiment, the IoT service 120 provides a single, comprehensive user interface (and/or browser- base interface) will logically associate the hub with the user and bind all of the attached IoT devices 101 to 105.

이러한 실시예에서, 마스터 IoT 허브(110) 및 하나 이상의 슬레이브 IoT 허브(111)는 WiFi 네트워크(116), 이더넷 네트워크, 및/또는 사용 전력-라인 통신(PLC) 네트워킹일 수 있는 로컬 네트워크를 통해 접속될 수 있다(예를 들어, 여기서 네트워크의 전부 또는 일부가 사용자의 전력 라인을 통해 구동됨). 부가적으로, IoT 허브(110, 111)에 대해, IoT 디바이스(101 내지 105) 각각은, 몇몇 예를 들자면, WiFi, 이더넷, PLC 또는 블루투스 LE와 같은 임의의 타입의 로컬 네트워크 채널을 사용하여 IoT 허브(110, 111)와 상호접속될 수 있다.In this embodiment, the master IoT hub 110 and one or more slave IoT hubs 111 are connected via a local network, which may be a WiFi network 116, an Ethernet network, and/or using power-line communications (PLC) networking. (eg, where all or part of the network is powered via the user's power line). Additionally, for the IoT hub 110, 111, each of the IoT devices 101 to 105 can connect to the IoT using any type of local network channel, such as WiFi, Ethernet, PLC or Bluetooth LE, to name a few. Hubs 110 and 111 may be interconnected.

도 1b는 또한 제2 사용자 구내(181)에 설치된 IoT 허브(190)를 도시한다. 사실상 제한되지 않는 수의 그러한 IoT 허브(190)가 전세계의 사용자 구내에서 IoT 디바이스(191, 192)로부터 데이터를 수집하도록 설치 및 구성될 수 있다. 일 실시예에서, 2개의 사용자 구내(180, 181)가 동일한 사용자에 대해 구성될 수 있다. 예를 들어, 하나의 사용자 구내(180)는 사용자의 주된 집일 수 있고, 다른 사용자 구내(181)는 사용자의 별장일 수 있다. 그러한 경우에, IoT 서비스(120)는 앱이 설치된 사용자 디바이스(135)를 통해 액세스 가능한 단일의 포괄적인 사용자 인터페이스 (및/또는 브라우저-기반 인터페이스)하에서 IoT 허브(110, 111, 190)를 사용자와 논리적으로 연관시키고 부착된 IoT 디바이스(101 내지 105, 191, 192) 모두를 결합시킬 것이다.FIG. 1B also shows the IoT hub 190 installed in the second user premises 181 . A virtually unlimited number of such IoT hubs 190 may be installed and configured to collect data from IoT devices 191 and 192 at user premises around the world. In one embodiment, two user premises 180, 181 may be configured for the same user. For example, one user premises 180 may be the user's main home and another user premises 181 may be the user's vacation home. In such a case, the IoT service 120 connects the IoT hub 110, 111, 190 with the user under a single comprehensive user interface (and/or browser-based interface) accessible through the user device 135 on which the app is installed. It will logically associate and combine all of the attached IoT devices (101 to 105, 191, 192).

도 2에 예시된 바와 같이, IoT 디바이스(101)의 예시적인 실시예는 프로그램 코드 및 데이터(201 내지 203)를 저장하기 위한 메모리(210) 및 프로그램 코드를 실행하고 데이터를 처리하기 위한 저전력 마이크로제어기(200)를 포함한다. 메모리(210)는 동적 랜덤 액세스 메모리(DRAM)와 같은 휘발성 메모리일 수 있거나, 플래시 메모리와 같은 비-휘발성 메모리일 수 있다. 일 실시예에서, 비-휘발성 메모리는 영속적인 저장을 위해 사용될 수 있고, 휘발성 메모리는 런타임 시에 프로그램 코드 및 데이터의 실행을 위해 사용될 수 있다. 또한, 메모리(210)는 저전력 마이크로제어기(200) 내에 통합될 수 있거나, 버스 또는 통신 패브릭(fabric)을 통해 저전력 마이크로제어기(200)에 결합될 수 있다. 본 발명의 기본 원리는 메모리(210)의 임의의 특정 구현으로 제한되지 않는다.As illustrated in FIG. 2 , an exemplary embodiment of an IoT device 101 includes a memory 210 for storing program code and data 201-203 and a low-power microcontroller for executing the program code and processing the data. Includes (200). Memory 210 may be volatile memory, such as dynamic random access memory (DRAM), or may be non-volatile memory, such as flash memory. In one embodiment, non-volatile memory may be used for persistent storage, and volatile memory may be used for execution of program codes and data at runtime. Memory 210 may also be integrated within low power microcontroller 200 or coupled to low power microcontroller 200 via a bus or communication fabric. The basic principles of the present invention are not limited to any particular implementation of memory 210 .

예시된 바와 같이, 프로그램 코드는 IoT 디바이스(201)에 의해 수행될 기능들의 애플리케이션-특정 세트를 정의하는 애플리케이션 프로그램 코드(203), 및 IoT 디바이스(101)의 애플리케이션 개발자에 의해 이용될 수 있는 미리 정의된 빌딩 블록(building block)들의 세트를 포함하는 라이브러리 코드(202)를 포함할 수 있다. 일 실시예에서, 라이브러리 코드(202)는 각각의 IoT 디바이스(101)와 IoT 허브(110) 사이의 통신을 인에이블하기 위한 통신 프로토콜 스택(201)과 같은, IoT 디바이스를 구현하는 데 요구되는 기본 기능들의 세트를 포함한다. 언급된 바와 같이, 일 실시예에서, 통신 프로토콜 스택(201)은 블루투스 LE 프로토콜 스택을 포함한다. 이러한 실시예에서, 블루투스 LE 라디오 및 안테나(207)는 저전력 마이크로제어기(200) 내에 통합될 수 있다. 그러나, 본 발명의 기본 원리는 임의의 특정 통신 프로토콜로 제한되지 않는다.As illustrated, the program code includes application program code 203 that defines an application-specific set of functions to be performed by IoT device 201 , and predefined ones that can be used by an application developer of IoT device 101 . library code 202 comprising a set of building blocks. In one embodiment, the library code 202 provides the basics required to implement an IoT device, such as the communication protocol stack 201 for enabling communication between each IoT device 101 and the IoT hub 110. It contains a set of functions. As mentioned, in one embodiment, communication protocol stack 201 includes a Bluetooth LE protocol stack. In this embodiment, the Bluetooth LE radio and antenna 207 may be integrated within the low power microcontroller 200. However, the basic principles of the present invention are not limited to any particular communication protocol.

도 2에 도시된 특정 실시예는 또한 사용자 입력을 수신하고 사용자 입력을 저전력 마이크로제어기에 제공하기 위한 복수의 입력 디바이스 또는 센서(210)를 포함하며, 저전력 마이크로제어기는 애플리케이션 코드(203) 및 라이브러리 코드(202)에 따라 사용자 입력을 처리한다. 일 실시예에서, 입력 디바이스들 각각은 최종 사용자에게 피드백을 제공하기 위한 LED(209)를 포함한다.The particular embodiment shown in FIG. 2 also includes a plurality of input devices or sensors 210 for receiving user input and providing user input to a low-power microcontroller, which includes application code 203 and library code User input is processed according to (202). In one embodiment, each of the input devices includes an LED 209 to provide feedback to the end user.

부가적으로, 예시된 실시예는 저전력 마이크로제어기에 전력을 공급하기 위한 배터리(208)를 포함한다. 일 실시예에서, 비-충전 가능 코인 셀 배터리가 사용된다. 그러나, 대안적인 실시예에서, 통합된 재충전 가능 배터리가 사용될 수 있다(예를 들어, IoT 디바이스를 AC 전력 공급부(도시되지 않음)에 접속시킴으로써 재충전 가능함).Additionally, the illustrated embodiment includes a battery 208 for powering the low power microcontroller. In one embodiment, a non-rechargeable coin cell battery is used. However, in an alternative embodiment, an integrated rechargeable battery may be used (eg rechargeable by connecting the IoT device to an AC power supply (not shown)).

오디오를 생성하기 위한 스피커(205)가 또한 제공된다. 일 실시예에서, 저전력 마이크로제어기(299)는 스피커(205)에서 오디오를 생성하기 위해 (예를 들어, MPEG-4/어드밴스드 오디오 코딩(AAC) 스트림과 같은) 압축된 오디오 스트림을 디코딩하기 위한 오디오 디코딩 로직을 포함한다. 대안적으로, 저전력 마이크로제어기(200) 및/또는 애플리케이션 코드/데이터(203)는 사용자가 입력 디바이스(210)를 통해 선택을 입력할 때 언어 피드백을 최종 사용자에게 제공하기 위한 오디오의 디지털 샘플링된 단편(snippet)을 포함할 수 있다.A speaker 205 for generating audio is also provided. In one embodiment, low-power microcontroller 299 is used to decode audio from a compressed audio stream (e.g., such as an MPEG-4/Advanced Audio Coding (AAC) stream) to generate audio at speaker 205. Contains decoding logic. Alternatively, the low-power microcontroller 200 and/or application code/data 203 may provide a digitally sampled piece of audio to provide language feedback to the end user when the user enters a selection via the input device 210. (snippet) can be included.

일 실시예에서, 하나 이상의 다른/대안적인 I/O 디바이스 또는 센서(250)가, IoT 디바이스(101)가 그것을 위해 설계되는 특정 애플리케이션에 기초하여 IoT 디바이스(101) 상에 포함될 수 있다. 예를 들어, 온도, 압력, 습도 등을 측정하기 위해 환경 센서가 포함될 수 있다. IoT 디바이스가 보안 디바이스로서 사용되는 경우 보안 센서 및/또는 도어록 오프너가 포함될 수 있다. 물론, 이들 예는 단지 예시의 목적으로 제공된다. 본 발명의 기본 원리는 IoT 디바이스의 임의의 특정 타입으로 제한되지 않는다. 사실, 라이브러리 코드(202)가 탑재된 저전력 마이크로제어기(200)의 고도로 프로그래밍 가능한 속성을 고려해 볼 때, 애플리케이션 개발자는 사실상 임의의 타입의 IoT 애플리케이션을 위한 저전력 마이크로제어기와 인터페이싱하기 위해 새로운 애플리케이션 코드(203) 및 새로운 I/O 디바이스(250)를 쉽게 개발할 수 있다.In one embodiment, one or more other/alternative I/O devices or sensors 250 may be included on the IoT device 101 based on the specific application for which the IoT device 101 is designed. For example, environmental sensors may be included to measure temperature, pressure, humidity, and the like. If the IoT device is used as a security device, it may include a security sensor and/or a door lock opener. Of course, these examples are provided for illustrative purposes only. The basic principles of the present invention are not limited to any particular type of IoT device. In fact, given the highly programmable nature of the low-power microcontroller 200 loaded with library code 202, application developers can create new application code 203 to interface with the low-power microcontroller for virtually any type of IoT application. ) and new I/O devices 250 can be easily developed.

일 실시예에서, 저전력 마이크로제어기(200)는 또한 통신을 암호화하고/하거나 서명을 생성하기 위한 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다. 대안적으로, 키는 가입자 식별 모듈(SIM)에서 보안될 수 있다.In one embodiment, the low-power microcontroller 200 also includes a secure key store for storing encryption keys for encrypting communications and/or generating signatures. Alternatively, the key may be secured in a Subscriber Identity Module (SIM).

일 실시예에서, IoT 디바이스가 사실상 어떠한 전력도 소비하고 있지 않은 초 저전력 상태로부터 그 IoT 디바이스를 웨이크하기 위해 웨이크업 수신기(207)가 포함된다. 일 실시예에서, 웨이크업 수신기(207)는 도 3에 도시된 바와 같이 IoT 허브(110) 상에 구성된 웨이크업 송신기(307)로부터 수신된 웨이크업 신호에 응답하여 IoT 디바이스(101)로 하여금 이러한 저전력 상태를 빠져나가게 하도록 구성된다. 특히, 일 실시예에서, 송신기(307) 및 수신기(207)는 테슬라 코일과 같은 전기 공진 변압기 회로를 함께 형성한다. 동작 시에, 허브(110)가 매우 낮은 전력 상태로부터 IoT 디바이스(101)를 웨이크할 필요가 있을 때 에너지가 라디오 주파수 신호를 통해 송신기(307)로부터 수신기(207)로 송신된다. 에너지 전달 때문에, IoT 디바이스(101)는 그것이 그것의 저전력 상태에 있을 때 사실상 어떠한 전력도 소비하지 않도록 구성될 수 있는데, 왜냐하면 (디바이스가 네트워크 신호를 통해 어웨이크되도록 허용하는 네트워크 프로토콜에서 그러한 바와 같이) 그것이 허브로부터의 신호를 계속 "청취"할 필요가 없기 때문이다. 오히려, IoT 디바이스(101)의 마이크로제어기(200)는 송신기(307)로부터 수신기(207)로 전기적으로 송신된 에너지를 사용함으로써 사실상 전력 차단된 후에 웨이크 업하도록 구성될 수 있다.In one embodiment, a wake-up receiver 207 is included to wake the IoT device from a very low power state where the IoT device is consuming virtually no power. In one embodiment, the wake-up receiver 207 causes the IoT device 101 to do this in response to a wake-up signal received from the wake-up transmitter 307 configured on the IoT hub 110 as shown in FIG. and is configured to exit a low power state. In particular, in one embodiment, transmitter 307 and receiver 207 together form an electrical resonant transformer circuit such as a Tesla coil. In operation, energy is transmitted from the transmitter 307 to the receiver 207 via a radio frequency signal when the hub 110 needs to wake the IoT device 101 from a very low power state. Because of the energy transfer, IoT device 101 can be configured to consume virtually no power when it is in its low power state, since (as is the case with network protocols that allow devices to be awake via network signals). Because it doesn't have to constantly "listen" to the signal from the hub. Rather, the microcontroller 200 of the IoT device 101 may be configured to wake up after being effectively powered down by using energy electrically transmitted from the transmitter 307 to the receiver 207 .

도 3에 예시된 바와 같이, IoT 허브(110)는 또한 프로그램 코드 및 데이터(305)를 저장하기 위한 메모리(317), 및 프로그램 코드를 실행하고 데이터를 처리하기 위한 마이크로제어기와 같은 하드웨어 로직(301)을 포함한다. 광역 네트워크(WAN) 인터페이스(302) 및 안테나(310)가 IoT 허브(110)를 셀룰러 서비스(115)에 결합시킨다. 대안적으로, 위에서 언급된 바와 같이, IoT 허브(110)는 또한 근거리 네트워크 통신 채널을 설정하기 위한 WiFi 인터페이스(및 WiFi 안테나) 또는 이더넷 인터페이스와 같은 로컬 네트워크 인터페이스(도시되지 않음)를 포함할 수 있다. 일 실시예에서, 하드웨어 로직(301)은 또한 통신을 암호화하고 서명을 생성/검증하기 위한 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다. 대안적으로, 키는 가입자 식별 모듈(SIM)에서 보안될 수 있다.As illustrated in FIG. 3 , IoT hub 110 also includes hardware logic 301 , such as memory 317 for storing program codes and data 305 , and a microcontroller to execute program codes and process data. ). A wide area network (WAN) interface 302 and antenna 310 couple IoT hub 110 to cellular service 115 . Alternatively, as noted above, IoT hub 110 may also include a local network interface (not shown) such as a WiFi interface (and WiFi antenna) or Ethernet interface for establishing a local area network communication channel. . In one embodiment, hardware logic 301 also includes a secure key store for storing encryption keys for encrypting communications and generating/verifying signatures. Alternatively, the key may be secured in a Subscriber Identity Module (SIM).

로컬 통신 인터페이스(303) 및 안테나(311)가 IoT 디바이스(101 내지 105) 각각과 로컬 통신 채널을 설정한다. 위에서 언급된 바와 같이, 일 실시예에서, 로컬 통신 인터페이스(303)/안테나(311)는 블루투스 LE 표준을 구현한다. 그러나, 본 발명의 기본 원리는 IoT 디바이스(101 내지 105)와 로컬 통신 채널을 설정하기 위한 임의의 특정 프로토콜로 제한되지 않는다. 도 3에서 별개의 유닛으로서 예시되지만, WAN 인터페이스(302) 및/또는 로컬 통신 인터페이스(303)는 하드웨어 로직(301)과 동일한 칩 내에 임베딩될 수 있다.A local communication interface 303 and an antenna 311 establish a local communication channel with each of the IoT devices 101 to 105 . As noted above, in one embodiment, the local communication interface 303/antenna 311 implements the Bluetooth LE standard. However, the basic principles of the present invention are not limited to any particular protocol for establishing a local communication channel with IoT devices 101-105. Although illustrated as separate units in FIG. 3 , WAN interface 302 and/or local communication interface 303 may be embedded within the same chip as hardware logic 301 .

일 실시예에서, 프로그램 코드 및 데이터는 로컬 통신 인터페이스(303) 및 WAN 인터페이스(302)를 통해 통신하기 위한 별개의 스택을 포함할 수 있는 통신 프로토콜 스택(308)을 포함한다. 부가적으로, IoT 허브가 새로운 IoT 디바이스와 페어링하도록 허용하기 위해 디바이스 페어링 프로그램 코드 및 데이터(306)가 메모리에 저장될 수 있다. 일 실시예에서, 각각의 새로운 IoT 디바이스(101 내지 105)는 페어링 프로세스 동안 IoT 허브(110)에 통신되는 고유 코드를 할당받는다. 예를 들어, 고유 코드는 IoT 디바이스 상의 바코드에 임베딩될 수 있으며, 바코드 판독기(106)에 의해 판독될 수 있거나 로컬 통신 채널(130)을 통해 통신될 수 있다. 대안적인 실시예에서, 고유 ID 코드는 IoT 디바이스 상에 자기적으로 임베딩되며, IoT 허브는 IoT 디바이스(101)가 IoT 허브(110)로부터 수 인치 이내로 이동될 때 코드를 검출하기 위한 라디오 주파수 ID(RFID) 또는 근거리장 통신(NFC) 센서와 같은 자기 센서를 갖는다.In one embodiment, the program code and data includes a communication protocol stack 308, which may include separate stacks for communicating over the local communication interface 303 and the WAN interface 302. Additionally, device pairing program code and data 306 may be stored in memory to allow the IoT hub to pair with a new IoT device. In one embodiment, each new IoT device 101 - 105 is assigned a unique code that is communicated to the IoT hub 110 during the pairing process. For example, the unique code may be embedded in a barcode on the IoT device and may be read by barcode reader 106 or communicated via local communication channel 130 . In an alternative embodiment, a unique ID code is magnetically embedded on the IoT device, and the IoT hub has a radio frequency ID (ID) to detect the code when the IoT device 101 is moved within a few inches of the IoT hub 110. RFID) or near field communication (NFC) sensors.

일 실시예에서, 일단 고유 ID가 통신되면, IoT 허브(110)는 로컬 데이터베이스(도시되지 않음)에 질의하고/하거나, 코드가 수용 가능한지를 검증하기 위해 해시(hash)를 수행하고/하거나, ID 코드를 확인하기 위해 IoT 서비스(120), 사용자 디바이스(135) 및/또는 웹사이트(130)와 통신함으로써 고유 ID를 검증할 수 있다. 일단 확인되면, 일 실시예에서, IoT 허브(110)는 IoT 디바이스(101)를 페어링하고, (언급된 바와 같이, 비-휘발성 메모리를 포함할 수 있는) 메모리(317)에 페어링 데이터를 저장한다. 일단 페어링이 완료되면, IoT 허브(110)는 본 명세서에 설명된 다양한 IoT 기능을 수행하기 위해 IoT 디바이스(101)와 접속할 수 있다.In one embodiment, once the unique ID is communicated, the IoT hub 110 queries a local database (not shown), performs a hash to verify that the code is acceptable, and/or The unique ID may be verified by communicating with the IoT service 120, user device 135, and/or website 130 to verify the code. Once verified, in one embodiment, IoT hub 110 pairs IoT device 101 and stores pairing data in memory 317 (which, as noted, may include non-volatile memory). . Once pairing is complete, the IoT hub 110 can connect with the IoT device 101 to perform various IoT functions described herein.

일 실시예에서, IoT 서비스(120)를 구동하는 조직은 개발자가 새로운 IoT 서비스를 용이하게 설계하도록 허용하기 위해 IoT 허브(110) 및 기본적인 하드웨어/소프트웨어 플랫폼을 제공할 수 있다. 특히, IoT 허브(110)에 더하여, 개발자는 허브(110) 내에서 실행되는 프로그램 코드 및 데이터(305)를 업데이트하기 위한 소프트웨어 개발 키트(SDK)를 제공받을 수 있다. 부가적으로, IoT 디바이스(101)에 대해, SDK는 다양한 상이한 타입의 애플리케이션(101)의 설계를 용이하게 하기 위하여 기반 IoT 하드웨어(예를 들어, 도 2에 도시된 저전력 마이크로제어기(200) 및 다른 컴포넌트)에 대해 설계된 광범위한 세트의 라이브러리 코드(202)를 포함할 수 있다. 일 실시예에서, SDK는 개발자가 단지 IoT 디바이스에 대한 입력 및 출력만을 지정할 필요가 있는 그래픽 설계 인터페이스를 포함한다. IoT 디바이스(101)가 허브(110) 및 서비스(120)에 접속하도록 허용하는 통신 스택(201)을 포함한 모든 네트워킹 코드가 이미 개발자를 위해 제 위치에 있다. 부가적으로, 일 실시예에서, SDK는 또한 모바일 디바이스(예를 들어, 아이폰 및 안드로이드 디바이스)를 위한 앱의 설계를 용이하게 하기 위한 라이브러리 코드 기반을 포함한다.In one embodiment, the organization running the IoT service 120 may provide the IoT hub 110 and underlying hardware/software platform to allow developers to easily design new IoT services. In particular, in addition to the IoT hub 110, a developer may be provided with a software development kit (SDK) for updating program codes and data 305 executed in the hub 110. Additionally, for the IoT device 101, the SDK includes the underlying IoT hardware (e.g., the low-power microcontroller 200 shown in FIG. 2 and other Component) may contain an extensive set of library code 202 designed for In one embodiment, the SDK includes a graphical design interface that requires the developer to specify only the inputs and outputs for the IoT device. All the networking code including the communication stack 201 that allows the IoT device 101 to connect to the hub 110 and services 120 is already in place for the developer. Additionally, in one embodiment, the SDK also includes a library code base to facilitate the design of apps for mobile devices (eg, iPhone and Android devices).

일 실시예에서, IoT 허브(110)는 IoT 디바이스(101 내지 105)와 IoT 서비스(120) 사이의 데이터의 연속적인 양방향 스트림을 관리한다. IoT 디바이스(101 내지 105)로의/로부터의 업데이트가 실시간으로 요구되는(예를 들어, 사용자가 보안 디바이스 또는 환경 측정의 현재 상태를 볼 필요가 있는) 상황에서, IoT 허브는 정기 업데이트를 사용자 디바이스(135) 및/또는 외부 웹사이트들(130)에 제공하기 위한 개방형 TCP 소켓을 유지할 수 있다. 업데이트를 제공하는 데 사용되는 특정 네트워킹 프로토콜은 기본 애플리케이션의 필요에 기초하여 미세조정될 수 있다. 예를 들어, 연속적인 양방향 스트림을 갖는 것이 타당하지 않을 수 있는 일부 경우에, 간단한 요청/응답 프로토콜이 필요할 경우 정보를 수집하는 데 사용될 수 있다.In one embodiment, IoT hub 110 manages a continuous bi-directional stream of data between IoT devices 101 - 105 and IoT service 120 . In situations where updates to/from the IoT devices 101 to 105 are required in real time (e.g., the user needs to view the current status of a security device or environmental measurement), the IoT hub sends regular updates to the user device ( 135) and/or maintain an open TCP socket for serving to external websites 130. The specific networking protocol used to provide updates can be fine-tuned based on the needs of the underlying application. For example, in some cases where it may not make sense to have a continuous bi-directional stream, a simple request/response protocol can be used to gather information when needed.

일 실시예에서, IoT 허브(110) 및 IoT 디바이스(101 내지 105) 둘 모두는 네트워크를 통해 자동적으로 업그레이드 가능하다. 특히, 새로운 업데이트가 IoT 허브(110)에게 이용 가능한 경우, 그것은 IoT 서비스(120)로부터 업데이트를 자동적으로 다운로드 및 설치할 수 있다. 그것은 먼저 업데이트된 코드를 로컬 메모리에 복사하고, 구동하고, 구형 프로그램 코드를 교체하기 전에 업데이트를 검증할 수 있다. 유사하게, 업데이트가 IoT 디바이스(101 내지 105) 각각에게 이용 가능한 경우, 업데이트는 초기에 IoT 허브(110)에 의해 다운로드되고 IoT 디바이스(101 내지 105) 각각에 푸시 아웃될 수 있다. 그 후, 각각의 IoT 디바이스(101 내지 105)는 IoT 허브에 대해 위에서 설명된 것과 유사한 방식으로 업데이트를 적용하고 업데이트의 결과를 IoT 허브(110)에 다시 보고할 수 있다. 업데이트가 성공적이면, IoT 허브(110)는 그것의 메모리로부터 업데이트를 삭제하고 (예를 들어, 그것이 각각의 IoT 디바이스에 대한 새로운 업데이트를 계속 체크할 수 있도록) 각각의 IoT 디바이스 상에 설치된 코드의 최신 버전을 기록할 수 있다.In one embodiment, both IoT hub 110 and IoT devices 101-105 are automatically upgradable over the network. In particular, if a new update is available to the IoT hub 110, it may automatically download and install the update from the IoT service 120. It can first copy the updated code to local memory, run it, and verify the update before replacing the old program code. Similarly, if an update is available to each of the IoT devices 101 - 105 , the update may initially be downloaded by the IoT hub 110 and pushed out to each of the IoT devices 101 - 105 . Then, each IoT device 101 to 105 may apply the update in a manner similar to that described above for the IoT hub and report the result of the update back to the IoT hub 110. If the update is successful, the IoT hub 110 deletes the update from its memory (e.g., so that it can keep checking for new updates to each IoT device) and updates the code installed on each IoT device. version can be recorded.

일 실시예에서, IoT 허브(110)는 A/C 전력을 통해 전력공급된다. 특히, IoT 허브(110)는 A/C 전력 코드를 통해 공급된 A/C 전압을 더 낮은 DC 전압으로 변압시키기 위한 변압기를 갖는 전력 유닛(390)을 포함할 수 있다.In one embodiment, IoT hub 110 is powered via A/C power. In particular, the IoT hub 110 may include a power unit 390 having a transformer to transform the A/C voltage supplied through the A/C power cord to a lower DC voltage.

도 4a는 IoT 시스템을 사용하여 범용 원격 제어 동작을 수행하기 위한 본 발명의 일 실시예를 예시한다. 특히, 이 실시예에서, IoT 디바이스들(101 내지 103)의 세트에는 (몇 개만 예로 들자면) 에어컨/히터(430), 조명 시스템(431) 및 시청각 장비(432)를 포함한 다양한 상이한 타입의 전자 장비를 제어하기 위해 원격 제어 코드를 전송하기 위한 적외선(IR) 및/또는 라디오 주파수(RF) 블라스터들(401 내지 403)이 각각 탑재된다. 도 4a에 도시된 실시예에서, IoT 디바이스들(101 내지 103)에는 또한 후술되는 바와 같이 그들이 제어하는 디바이스들의 동작을 검출하기 위한 센서들(404 내지 406)이 각각 탑재된다.4A illustrates one embodiment of the present invention for performing universal remote control operations using an IoT system. In particular, in this embodiment, the set of IoT devices 101 - 103 includes a variety of different types of electronic equipment including an air conditioner/heater 430 , a lighting system 431 and audiovisual equipment 432 (to name just a few). Infrared (IR) and/or radio frequency (RF) blasters 401 to 403 for transmitting a remote control code to control are mounted, respectively. In the embodiment shown in FIG. 4A , the IoT devices 101 - 103 are also equipped with sensors 404 - 406 respectively for detecting the operation of the devices they control, as described below.

예를 들어, IoT 디바이스(101) 내의 센서(404)는 현재의 온도/습도를 감지하고, 그에 응답하여 현재의 원하는 온도에 기초하여 에어컨/히터(430)를 제어하기 위한 온도 및/또는 습도 센서일 수 있다. 이 실시예에서, 에어컨/히터(430)는 원격 제어 디바이스(전형적으로 그 자체가 온도 센서를 내장하고 있는 리모트 컨트롤)를 통해 제어되도록 설계된 것이다. 일 실시예에서, 사용자는 사용자 디바이스(135) 상에 설치된 앱 또는 브라우저를 통해 IoT 허브(110)에 원하는 온도를 제공한다. IoT 허브(110) 상에서 실행되는 제어 로직(412)은 센서(404)로부터 현재 온도/습도 데이터를 수신하고, 그에 응답하여 원하는 온도/습도에 따라 IR/RF 블라스터(401)를 제어하기 위해 IoT 디바이스(101)에 커맨드를 전송한다. 예를 들어, 온도가 원하는 온도보다 낮으면, 제어 로직(412)은 IR/RF 블라스터(401)를 통해 에어컨/히터에 커맨드를 전송하여 (예를 들어, 에어컨을 턴오프하거나 히터를 턴온함으로써) 온도를 높일 수 있다. 커맨드는 IoT 허브(110) 상의 데이터베이스(413) 내에 저장된 필요한 원격 제어 코드를 포함할 수 있다. 대안적으로 또는 추가적으로, IoT 서비스(421)는 지정된 사용자 선호 및 저장된 제어 코드(422)에 기초하여 전자 장비(430 내지 432)를 제어하기 위한 제어 로직(421)을 구현할 수 있다.For example, the sensor 404 in the IoT device 101 is a temperature and/or humidity sensor to sense the current temperature/humidity and in response to control the air conditioner/heater 430 based on the current desired temperature. can be In this embodiment, the air conditioner/heater 430 is designed to be controlled via a remote control device (typically a remote control which itself has a built-in temperature sensor). In one embodiment, the user provides the desired temperature to the IoT hub 110 through an app installed on the user device 135 or a browser. The control logic 412 running on the IoT hub 110 receives the current temperature/humidity data from the sensor 404 and, in response, controls the IR/RF blaster 401 according to the desired temperature/humidity. Send a command to (101). For example, if the temperature is lower than the desired temperature, the control logic 412 sends a command to the air conditioner/heater via the IR/RF blaster 401 (e.g., by turning the air conditioner off or turning the heater on) to temperature can be raised. The command may include the necessary remote control code stored in database 413 on IoT hub 110. Alternatively or additionally, IoT service 421 may implement control logic 421 to control electronic equipment 430 - 432 based on specified user preferences and stored control codes 422 .

예시된 예의 IoT 디바이스(102)는 조명(431)을 제어하는 데 사용된다. 특히, IoT 디바이스(102) 내의 센서(405)는 조명 설비(431)(또는 다른 조명 장치)에 의해 생성되는 광의 현재 밝기를 검출하도록 구성된 광센서 또는 광검출기일 수 있다. 사용자는 사용자 디바이스(135)를 통해 IoT 허브(110)에 원하는 조명 레벨(온 또는 오프의 지시를 포함함)을 지정할 수 있다. 이에 응답하여, 제어 로직(412)은 IR/RF 블라스터(402)에 커맨드를 전송하여, 발광체(431)의 현재 밝기 레벨을 제어할 것이다(예를 들어, 현재 밝기가 너무 낮으면 조명을 높이거나 현재 밝기가 너무 높으면 조명을 낮추거나; 단순히 발광체를 턴온 또는 턴오프함).IoT device 102 of the illustrated example is used to control lighting 431 . In particular, sensor 405 within IoT device 102 may be a photosensor or photodetector configured to detect the current brightness of light produced by lighting fixture 431 (or other lighting device). A user may designate a desired lighting level (including an on or off instruction) to the IoT hub 110 through the user device 135 . In response, the control logic 412 will send a command to the IR/RF blaster 402 to control the current brightness level of the illuminator 431 (e.g., increase the lighting if the current brightness is too low, or Dim the light if the current brightness is too high; simply turn the illuminator on or off).

예시된 예의 IoT 디바이스(103)는 시청각 장비(432)(예를 들어, 텔레비전, A/V 수신기, 케이블/위성 수신기, 애플(Apple)TV™ 등)를 제어하도록 구성된다. IoT 디바이스(103) 내의 센서(406)는 현재의 주위 볼륨 레벨을 검출하기 위한 오디오 센서(예를 들어, 마이크로폰 및 관련 로직) 및/또는 텔레비전에 의해 생성된 광에 기초하여 (예를 들어, 지정된 스펙트럼 내의 광을 측정함으로써) 텔레비전이 온 또는 오프 상태인지를 검출하기 위한 광센서일 수 있다. 대안적으로, 센서(406)는 검출된 온도에 기초하여 오디오 장비가 온 또는 오프 상태인지를 검출하기 위해 시청각 장비에 접속된 온도 센서를 포함할 수 있다. 다시 한번, 사용자 디바이스(135)를 통한 사용자 입력에 응답하여, 제어 로직(412)은 IoT 디바이스(103)의 IR 블라스터(403)를 통해 시청각 장비에 커맨드를 전송할 수 있다.The illustrated example IoT device 103 is configured to control audiovisual equipment 432 (eg, television, A/V receiver, cable/satellite receiver, AppleTV™, etc.). Sensors 406 within the IoT device 103 are audio sensors (e.g., microphones and associated logic) to detect current ambient volume levels and/or based on light generated by the television (e.g., specified light sensor to detect if the television is on or off (by measuring the light in the spectrum). Alternatively, sensor 406 may include a temperature sensor connected to the audiovisual equipment to detect whether the audio equipment is on or off based on the detected temperature. Once again, in response to user input via user device 135 , control logic 412 may send commands to the audiovisual equipment via IR blaster 403 of IoT device 103 .

전술한 내용은 단지 본 발명의 일 실시예의 예시적인 예에 불과하다는 점에 유의해야 한다. 본 발명의 기본 원리는 IoT 디바이스에 의해 제어될 임의의 특정 타입의 센서 또는 장비로 제한되지 않는다.It should be noted that the foregoing is merely an illustrative example of one embodiment of the present invention. The basic principles of the present invention are not limited to any particular type of sensor or equipment to be controlled by an IoT device.

IoT 디바이스들(101 내지 103)이 블루투스 LE 접속을 통해 IoT 허브(110)에 결합되는 실시예에서, 센서 데이터 및 커맨드는 블루투스 LE 채널을 통해 전송된다. 그러나, 본 발명의 기본 원리는 블루투스 LE 또는 임의의 다른 통신 표준으로 제한되지 않는다.In embodiments where IoT devices 101-103 are coupled to IoT hub 110 via a Bluetooth LE connection, sensor data and commands are transmitted over a Bluetooth LE channel. However, the basic principles of the present invention are not limited to Bluetooth LE or any other communication standard.

일 실시예에서, 각각의 전자 장비를 제어하는 데 필요한 제어 코드는 IoT 허브(110) 상의 데이터베이스(413) 및/또는 IoT 서비스(120) 상의 데이터베이스(422)에 저장된다. 도 4b에 예시된 바와 같이, 제어 코드는 IoT 서비스(120) 상에서 유지되는 상이한 장비들에 대한 제어 코드들(422)의 마스터 데이터베이스로부터 IoT 허브(110)에 제공될 수 있다. 최종 사용자는 사용자 디바이스(135) 상에서 실행되는 앱 또는 브라우저를 통해 제어될 전자(또는 다른) 장비의 타입을 지정할 수 있으며, 그에 응답하여 IoT 허브 상의 원격 제어 코드 학습 모듈(491)은 IoT 서비스(120) 상의 원격 제어 코드 데이터베이스(492)에서 (예를 들어, 고유 ID를 갖는 각각의 전자 장비를 식별하는) 필요한 IR/RF 코드를 검색할 수 있다.In one embodiment, control codes required to control each electronic device are stored in database 413 on IoT hub 110 and/or database 422 on IoT service 120 . As illustrated in FIG. 4B , the control code may be provided to IoT hub 110 from a master database of control codes 422 for different equipment maintained on IoT service 120 . The end user can specify the type of electronic (or other) equipment to be controlled through an app or browser running on the user device 135, and in response, the remote control code learning module 491 on the IoT hub provides the IoT service 120 ) in the remote control code database 492 (eg, identifying each electronic device with a unique ID) for the required IR/RF code.

또한, 일 실시예에서, IoT 허브(110)에는 원격 제어 코드 학습 모듈(491)이 전자 장비와 함께 제공된 원래의 리모트 컨트롤(495)로부터 직접 새로운 원격 제어 코드를 "학습"하는 것을 가능하게 하는 IR/RF 인터페이스(490)가 탑재된다. 예를 들어, 에어컨(430)과 함께 제공된 원래의 리모트 컨트롤에 대한 제어 코드가 원격 제어 데이터베이스에 포함되어 있지 않으면, 사용자는 사용자 디바이스(135) 상의 앱/브라우저를 통해 IoT 허브(110)와 상호 작용하여, 원래의 리모트 컨트롤에 의해 생성된 다양한 제어 코드(예를 들어, 온도 증가, 온도 감소 등)를 IoT 허브(110)에게 교시할 수 있다. 원격 제어 코드가 학습되면, 이들은 IoT 허브(110) 상의 제어 코드 데이터베이스(413)에 저장되고/되거나, IoT 서비스(120)로 되돌려 보내져서 중앙 원격 제어 코드 데이터베이스(492)에 포함될 수 있다(그리고 후속하여 동일한 에어컨 유닛(430)을 갖는 다른 사용자에 의해 사용됨).Additionally, in one embodiment, the IoT hub 110 has a remote control code learning module 491 IR that allows it to “learn” new remote control codes directly from the original remote control 495 provided with the electronic equipment. /RF interface 490 is mounted. For example, if the control code for the original remote control provided with the air conditioner 430 is not included in the remote control database, the user interacts with the IoT hub 110 through an app/browser on the user device 135. Thus, various control codes (eg, temperature increase, temperature decrease, etc.) generated by the original remote control may be taught to the IoT hub 110. Once the remote control codes are learned, they can be stored in the control code database 413 on the IoT hub 110 and/or sent back to the IoT service 120 for inclusion in the central remote control code database 492 (and subsequent and used by other users with the same air conditioner unit 430).

일 실시예에서, IoT 디바이스들(101 내지 103) 각각은 극히 작은 폼 팩터를 가지며, 양면 테이프, 작은 못, 자석 부착 등을 사용하여 그들 각자의 전자 장비(430 내지 432) 상에 또는 그 부근에 부착될 수 있다. 에어컨(430)과 같은 장비의 제어를 위해, 센서(404)가 집 안의 주위 온도를 정확하게 측정할 수 있도록 IoT 디바이스(101)를 충분히 멀리 배치하는 것이 바람직할 것이다(예를 들어, 에어컨 상에 직접 IoT 디바이스를 배치하는 것은 에어컨이 작동 중일 때 너무 낮거나 히터가 작동 중일 때 너무 높을 온도 측정치를 초래할 것임). 대조적으로, 조명을 제어하는 데 사용되는 IoT 디바이스(102)는 센서(405)가 현재 조명 레벨을 검출하기 위해 조명 설비(431) 상에 또는 그 부근에 배치될 수 있다.In one embodiment, each of the IoT devices 101-103 has an extremely small form factor and is attached to or near their respective electronic equipment 430-432 using double-sided tape, pegs, magnetic attachments, or the like. can be attached For control of equipment such as the air conditioner 430, it would be desirable to place the IoT device 101 far enough away so that the sensor 404 can accurately measure the ambient temperature in the house (e.g. directly on the air conditioner). Deploying IoT devices will result in temperature readings that are either too low when the air conditioner is running or too high when the heater is running). In contrast, an IoT device 102 used to control lighting may have a sensor 405 placed on or near the lighting fixture 431 to detect the current lighting level.

설명된 바와 같은 일반적인 제어 기능을 제공하는 것 외에도, IoT 허브(110) 및/또는 IoT 서비스(120)의 일 실시예는 각각의 전자 장비의 현재 상태와 관련된 통지를 최종 사용자에게 전송한다. 텍스트 메시지 및/또는 앱 특유 통지일 수 있는 통지는 이어서 사용자의 모바일 디바이스(135)의 디스플레이 상에 표시될 수 있다. 예를 들어, 사용자의 에어컨이 장기간 동안 켜져 있었지만 온도가 변하지 않은 경우, IoT 허브(110) 및/또는 IoT 서비스(120)는 에어컨이 적절히 기능하고 있지 않다는 통지를 사용자에게 전송할 수 있다. 사용자가 집에 있지 않고(이는 모션 센서를 통해 또는 사용자의 현재 검출된 위치에 기초하여 검출될 수 있음), 센서(406)가 시청각 장비(430)가 켜져 있다는 것을 지시하거나, 센서(405)가 발광체가 켜져 있다는 것을 지시하는 경우, 사용자가 시청각 장비(432) 및/또는 발광체(431)를 턴오프하기를 원하는지를 묻는 통지가 사용자에게 전송될 수 있다. 임의의 장비 타입에 대해 동일한 타입의 통지가 전송될 수 있다.In addition to providing general control functions as described, one embodiment of IoT hub 110 and/or IoT service 120 sends notifications related to the current status of each electronic equipment to the end user. The notification, which may be a text message and/or app specific notification, may then be displayed on the display of the user's mobile device 135 . For example, if the user's air conditioner has been turned on for a long period of time but the temperature has not changed, the IoT hub 110 and/or the IoT service 120 may send a notification to the user that the air conditioner is not functioning properly. The user is not at home (which can be detected via a motion sensor or based on the user's current detected location), sensor 406 indicates that audiovisual equipment 430 is on, or sensor 405 indicates that audiovisual equipment 430 is on. If the illuminator indicates that it is turned on, a notification may be sent to the user asking if the user wants to turn off the audiovisual equipment 432 and/or the illuminator 431 . The same type of notification can be sent for any equipment type.

사용자가 통지를 수신하면, 그/그녀는 사용자 디바이스(135) 상의 앱 또는 브라우저를 통해 전자 장비(430 내지 432)를 원격 제어할 수 있다. 일 실시예에서, 사용자 디바이스(135)는 터치 스크린 디바이스이고, 앱 또는 브라우저는 장비(430 내지 432)를 제어하기 위해 사용자가 선택할 수 있는 버튼을 갖는 리모트 컨트롤의 이미지를 표시한다. 통지를 수신하면, 사용자는 그래픽 리모트 컨트롤을 열고 다양한 상이한 장비를 턴오프하거나 조정할 수 있다. IoT 서비스(120)를 통해 접속되는 경우, 사용자의 선택은 IoT 서비스(120)로부터 IoT 허브(110)로 전달될 수 있으며, 이어서 IoT 허브(110)는 제어 로직(412)을 통해 장비를 제어할 것이다. 대안적으로, 사용자 입력은 사용자 디바이스(135)로부터 IoT 허브(110)로 직접 전송될 수 있다.When the user receives the notification, he/she can remotely control the electronic equipment 430 - 432 via an app or browser on the user device 135 . In one embodiment, user device 135 is a touch screen device, and the app or browser displays an image of a remote control with buttons that a user can select to control equipment 430-432. Upon receiving the notification, the user can open the graphic remote control and turn off or adjust a variety of different equipment. When connected through the IoT service 120, the user's selection may be transmitted from the IoT service 120 to the IoT hub 110, and then the IoT hub 110 controls the equipment through the control logic 412. will be. Alternatively, user input may be sent directly from the user device 135 to the IoT hub 110 .

일 실시예에서, 사용자는 전자 장비(430 내지 432)에 대한 다양한 자동 제어 기능을 수행하도록 IoT 허브(110) 상의 제어 로직(412)을 프로그래밍할 수 있다. 전술한 바와 같이 원하는 온도, 밝기 레벨 및 볼륨 레벨을 유지하는 것 이외에, 제어 로직(412)은 소정 조건이 검출되면 전자 장비를 자동으로 턴오프할 수 있다. 예를 들어, 제어 로직(412)이 사용자가 집에 없고 에어컨이 기능하고 있지 않다는 것을 검출하면, 그것은 자동으로 에어컨을 턴오프할 수 있다. 유사하게, 사용자가 집에 없고, 센서(406)가 시청각 장비(430)가 켜져 있음을 나타내거나 센서(405)가 발광체가 켜져 있음을 나타내면, 제어 로직(412)은 IR/RF 블라스터(403, 402)를 통해 커맨드를 자동 전송하여, 시청각 장비 및 발광체를 각각 턴오프할 수 있다.In one embodiment, a user may program control logic 412 on IoT hub 110 to perform various automatic control functions for electronic equipment 430 - 432 . In addition to maintaining the desired temperature, brightness level, and volume level as described above, the control logic 412 may automatically turn the electronic equipment off when certain conditions are detected. For example, if control logic 412 detects that the user is not at home and the air conditioner is not functioning, it can automatically turn the air conditioner off. Similarly, if the user is not at home and sensor 406 indicates that audiovisual equipment 430 is on or sensor 405 indicates that illuminators are on, control logic 412 will activate IR/RF blaster 403; A command may be automatically transmitted through 402) to turn off the audiovisual equipment and the luminous body respectively.

도 5는 전자 장비(530, 531)를 모니터링하기 위한 센서(503, 504)가 탑재된 IoT 디바이스(104, 105)의 추가 실시예를 예시한다. 특히, 이 실시예의 IoT 디바이스(104)는 스토브가 켜진 채로 있을 때를 검출하기 위해 스토브(530) 상에 또는 그 부근에 배치될 수 있는 온도 센서(503)를 포함한다. 일 실시예에서, IoT 디바이스(104)는 온도 센서(503)에 의해 측정된 현재 온도를 IoT 허브(110) 및/또는 IoT 서비스(120)에 전송한다. 스토브가 (예를 들어, 측정된 온도에 기초하여) 임계 기간을 초과하여 켜져 있는 것으로 검출되면, 제어 로직(512)은 사용자에게 스토브(530)가 켜져 있음을 알리는 통지를 최종 사용자의 디바이스(135)에 전송할 수 있다. 또한, 일 실시예에서, IoT 디바이스(104)는, 사용자로부터 지시를 수신하는 것에 응답하여 또는 (제어 로직(512)이 사용자에 의해 그렇게 하도록 프로그래밍된 경우) 자동으로, 스토브를 턴오프하기 위한 제어 모듈(501)을 포함할 수 있다. 일 실시예에서, 제어 로직(501)은 스토브(530)에 대한 전기 또는 가스를 차단하는 스위치를 포함한다. 그러나, 다른 실시예에서, 제어 로직(501)은 스토브 자체 내에 통합될 수 있다.5 illustrates a further embodiment of an IoT device 104 , 105 equipped with sensors 503 , 504 for monitoring electronic equipment 530 , 531 . In particular, the IoT device 104 of this embodiment includes a temperature sensor 503 that can be placed on or near the stove 530 to detect when the stove is left on. In one embodiment, IoT device 104 transmits the current temperature measured by temperature sensor 503 to IoT hub 110 and/or IoT service 120 . If it is detected that the stove has been on for more than a threshold period of time (eg, based on the measured temperature), the control logic 512 sends a notification to the user that the stove 530 is on, to the end user's device 135 ) can be transmitted. Further, in one embodiment, IoT device 104 controls to turn off the stove, either automatically (if control logic 512 is programmed to do so by the user) or in response to receiving an instruction from the user. module 501. In one embodiment, control logic 501 includes a switch that shuts off electricity or gas to stove 530 . However, in other embodiments, the control logic 501 may be integrated within the stove itself.

도 5는 또한 세탁기 및/또는 건조기와 같은 소정 타입의 전자 장비의 모션을 검출하기 위한 모션 센서(504)를 갖는 IoT 디바이스(105)를 예시한다. 사용될 수 있는 다른 센서는 주위 볼륨 레벨을 검출하기 위한 오디오 센서(예를 들어, 마이크로폰 및 로직)이다. 전술한 다른 실시예에서와 같이, 이 실시예는 소정의 지정된 조건이 충족되면(예를 들어, 모션이 장기간 동안 검출되어, 세탁기/건조기가 턴오프되지 않았음을 나타내는 경우) 최종 사용자에게 통지를 전송할 수 있다. 도 5에 도시되지 않지만, IoT 디바이스(105)에는 자동으로 그리고/또는 사용자 입력에 응답하여 (예를 들어, 전기/가스를 스위치 오프함으로써) 세탁기/건조기(531)를 턴오프하는 제어 모듈이 또한 탑재될 수 있다.5 also illustrates an IoT device 105 having a motion sensor 504 for detecting motion of certain types of electronic equipment, such as a washing machine and/or dryer. Another sensor that may be used is an audio sensor (eg, microphone and logic) to detect the ambient volume level. As with the other embodiments described above, this embodiment provides a notification to the end user when some specified condition is met (eg, motion is detected for an extended period of time, indicating that the washer/dryer has not been turned off). can transmit Although not shown in FIG. 5 , IoT device 105 also includes a control module that turns off washer/dryer 531 automatically and/or in response to user input (eg, by switching off electricity/gas). can be mounted.

일 실시예에서, 제어 로직 및 스위치를 갖는 제1 IoT 디바이스는 사용자의 집 안의 모든 전력을 턴오프하도록 구성될 수 있고, 제어 로직 및 스위치를 갖는 제2 IoT 디바이스는 사용자의 집 안의 모든 가스를 턴오프하도록 구성될 수 있다. 이어서, 센서를 갖는 IoT 디바이스가 사용자의 집에 있는 전자 또는 가스 구동 장비 상에 또는 그 부근에 배치될 수 있다. 사용자가 특정 장비(예를 들어, 스토브(530))가 켜진 채로 있다는 통지를 받으면, 사용자는 손상을 방지하기 위해 집 안의 모든 전기 또는 가스를 턴오프하기 위한 커맨드를 전송할 수 있다. 대안적으로, IoT 허브(110) 및/또는 IoT 서비스(120) 내의 제어 로직(512)은 그러한 상황에서 전기 또는 가스를 자동으로 턴오프하도록 구성될 수 있다.In one embodiment, a first IoT device with control logic and switches can be configured to turn off all power in the user's house, and a second IoT device with control logic and switches to turn off all gas in the user's house. can be configured to turn off. The IoT device with the sensor can then be placed on or near electronic or gas powered equipment in the user's home. When a user is notified that certain equipment (eg, stove 530) is left on, the user can send a command to turn off all electricity or gas in the house to prevent damage. Alternatively, control logic 512 within IoT hub 110 and/or IoT service 120 may be configured to automatically turn off electricity or gas in such circumstances.

일 실시예에서, IoT 허브(110) 및 IoT 서비스(120)는 주기적인 간격으로 통신한다. IoT 서비스(120)가 (예를 들어, 지정된 지속 기간 동안 IoT 허브로부터 요청 또는 응답을 수신하지 못함으로써) IoT 허브(110)에 대한 접속이 손실된 것을 검출하면, (예를 들어, 텍스트 메시지 또는 앱 특유 통지를 전송함으로써) 이러한 정보를 최종 사용자의 디바이스(135)로 통신할 것이다.In one embodiment, IoT hub 110 and IoT service 120 communicate at periodic intervals. When the IoT service 120 detects that it has lost connection to the IoT hub 110 (eg, by not receiving a request or response from the IoT hub for a specified duration), (eg, a text message or will communicate this information to the end user's device 135 (by sending an app-specific notification).

IoT 시스템에서 사용자 위치를 정확하게 감지하기 위한 장치 및 방법Apparatus and method for accurately detecting user location in IoT system

현재의 무선 "스마트" 록들 및 차고 도어 오프너들은 최종 사용자가 모바일 디바이스를 통해 록 및/또는 차고 도어를 제어하는 것을 가능케 한다. 이러한 시스템들을 동작시키기 위해, 사용자는 모바일 디바이스 상에서 앱을 열고, 개방/언록 또는 폐쇄/록 옵션을 선택해야 한다. 그에 응답하여, 무선 신호가 원하는 동작을 구현하는 무선 록 또는 차고 도어 상에 있거나 그에 결합된 수신기로 전송된다. 아래의 논의는 무선 "록들"에 집중되지만, 용어 "록"은 본 명세서에서 표준 도어 록들, 무선 차고 도어 오프너들, 및 빌딩 또는 다른 위치에 대한 액세스를 제한하기 위한 임의의 다른 디바이스를 지칭하기 위해 광범위하게 사용된다.Current wireless “smart” locks and garage door openers allow an end user to control the lock and/or garage door via a mobile device. To operate these systems, a user must open an app on a mobile device and select an open/unlock or close/lock option. In response, a radio signal is transmitted to a receiver on or coupled to a radio lock or garage door that implements the desired action. Although the discussion below focuses on wireless “locks,” the term “lock” is used herein to refer to standard door locks, wireless garage door openers, and any other device for limiting access to a building or other location. Used extensively.

몇몇 무선 록들은 사용자가 언제 도어 밖에 있는지를 결정하고, 그에 응답하여 개방/언록 기능을 트리거링하려고 시도한다. 예를 들어 도 6은 무선 디바이스(603)로부터의 신호의 신호 강도에 기초하여 무선 디바이스(603)를 가진 사용자가 도어(601) 밖으로부터 접근하는 것에 응답하여 무선 록(602)이 트리거링되는 예를 예시한다. 예를 들어, 무선 록(602)은 무선 디바이스(603)로부터 수신 신호 강도 지시자(RSSI)를 측정할 수 있고, 그것이 임계치(예컨대, -60 dbm)에 도달할 때 도어(601)를 언록킹할 것이다.Some wireless locks attempt to determine when the user is outside the door and trigger an open/unlock function in response. For example, FIG. 6 illustrates an example in which a wireless lock 602 is triggered in response to a user with a wireless device 603 approaching from outside a door 601 based on the signal strength of the signal from the wireless device 603. foreshadow For example, wireless lock 602 can measure a received signal strength indicator (RSSI) from wireless device 603 and unlock door 601 when it reaches a threshold (eg, -60 dbm). will be.

이러한 기술들에 관한 한 가지 분명한 문제는 RSSI 측정이 비-지향적이라는 점이다. 예를 들어, 사용자가 무선 디바이스(603)를 갖고서 집 주위에서 이동하고 무선 록(602) 또는 차고 도어 오프너 곁을 지나가서, 그것이 트리거링되게 할 수 있다. 이러한 이유로, 사용자 근접 검출에 기초하여 동작하는 무선 록들의 사용이 제한되었다.One obvious problem with these techniques is that RSSI measurements are non-directional. For example, a user may move around the house with wireless device 603 and pass by wireless lock 602 or garage door opener, causing it to be triggered. For this reason, the use of wireless locks that operate based on user proximity detection has been limited.

도 7은 IoT 허브 및/또는 IoT 디바이스(710)가 사용자의 위치를 더 큰 정밀도로 결정하는 데 사용되는 본 발명의 일 실시예를 예시한다. 특히, 본 발명의 이 실시예는 무선 디바이스(703)와 IoT 록 디바이스(702) 사이의 신호 강도를 측정하고 또한 무선 디바이스(703)와 하나 이상의 IoT 디바이스/허브(710) 사이의 신호 강도를 측정하여, 사용자가 집 밖에 있는 경우와 집 안에 있는 경우를 구별한다. 예를 들어, 사용자가 집 안에서 또는 밖에서 IoT 록(702)으로부터 특정 거리에 있는 경우, 집 안의 위치로부터의 신호 강도(761)와 집 밖에서의 신호 강도(760)가 대략 동일할 수 있다. 도 6에 예시된 것과 같은 종래의 시스템들에서는, 이러한 두 가지 경우를 구별할 방법이 없었다. 그러나, 도 7에 도시된 실시예에서, 각각, 사용자가 집 밖에 있을 때와 집 안에 있을 때 IoT 허브/디바이스(710)와 무선 디바이스(703) 사이에서 측정된, 신호 강도 측정치들(750, 751)에 있어서의 차이들은 사용자의 위치를 결정하는 데 사용된다. 예를 들어, 무선 디바이스(703)가 외부 위치에 있을 때, 신호 강도(750)는 무선 디바이스(703)가 내부 위치에 있을 때의 신호 강도(751)와는 눈에 띄게 상이할 수 있다. 대부분의 경우 집 안에서의 신호 강도(751)가 더 강해야 하지만, 신호 강도(751)가 실제로는 더 약한 경우들이 있을 수 있다. 중요한 점은 신호 강도가 2개의 위치를 구별하는 데 사용될 수 있다는 점이다.7 illustrates one embodiment of the present invention in which an IoT hub and/or IoT device 710 is used to determine a user's location with greater precision. In particular, this embodiment of the present invention measures the signal strength between the wireless device 703 and the IoT lock device 702 and also measures the signal strength between the wireless device 703 and one or more IoT devices/hubs 710. Thus, the case where the user is outside the house and the case where the user is inside the house are distinguished. For example, if the user is at a certain distance from the IoT lock 702 either inside or outside the home, the signal strength 761 from the location inside the home and the signal strength 760 outside the home may be approximately the same. In conventional systems, such as the one illustrated in FIG. 6, there is no way to differentiate between these two cases. However, in the embodiment shown in FIG. 7 , the signal strength measurements 750 and 751 measured between the IoT hub/device 710 and the wireless device 703 when the user is outside and inside the home, respectively. ) are used to determine the location of the user. For example, when wireless device 703 is at an outside location, signal strength 750 can be noticeably different from signal strength 751 when wireless device 703 is at an inside location. Although in most cases the signal strength 751 inside the house should be stronger, there may be cases where the signal strength 751 is actually weaker. An important point is that the signal strength can be used to differentiate between the two locations.

신호 강도 값들(760, 761, 750, 751)은 IoT 허브/디바이스(710)에서 또는 IoT 록(702)에서(그것이 이러한 평가를 수행하기 위한 지능을 갖는 경우) 평가될 수 있다. 본 논의의 나머지는 신호 강도 평가가 IoT 허브(710)에 의해 수행되고, 이어서 IoT 허브(710)가 평가의 결과들에 기초하여 무선 통신 채널(770)(예컨대, BTLE)을 통해 록 또는 언록 커맨드를 IoT 록(702)으로 전송할 수 있는 것으로(또는 이미 록킹/언록킹된 경우에는 커맨드를 전송하지 않을 수 있는 것으로) 가정할 것이다. 그러나, IoT 록(702)이 평가를 수행하기 위한 로직을 갖도록 구성되면(예를 들어, 신호 강도 값들이 IoT 록(702)에 제공되는 경우) 동일한 기본 평가 및 결과가 IoT 록(702)에 의해 직접 수행될 수 있다는 점에 유의해야 한다.The signal strength values 760, 761, 750, 751 may be evaluated at the IoT hub/device 710 or at the IoT lock 702 (if it has the intelligence to perform this evaluation). The remainder of this discussion is that signal strength evaluation is performed by IoT hub 710, and then IoT hub 710 issues a lock or unlock command via wireless communication channel 770 (e.g., BTLE) based on the results of the evaluation. will be assumed to be able to send to the IoT lock 702 (or not send a command if it is already locked/unlocked). However, if the IoT lock 702 is configured with logic to perform the evaluation (eg, when signal strength values are provided to the IoT lock 702), then the same basic evaluation and result is performed by the IoT lock 702. It should be noted that this can be done directly.

도 8은 2개의 IoT 허브/디바이스(710, 711)로부터의 신호 강도 값들을 이용하기 때문에, 더 큰 정밀도를 제공할 수 있는 다른 실시예를 예시한다. 이 실시예에서, 신호 강도(805)는 무선 디바이스(703)와 (1) IoT 허브/디바이스(711); (2) IoT 허브/디바이스(710); 및 (3) IoT 록(702) 사이에서 측정된다. 무선 디바이스는 도 8에서는 간략함을 위해 단일 위치에 도시된다.8 illustrates another embodiment that can provide greater precision because it uses signal strength values from two IoT hubs/devices 710 and 711. In this embodiment, signal strength 805 is measured between wireless device 703 and (1) IoT hub/device 711; (2) IoT hub/device 710; and (3) the IoT lock 702. The wireless device is shown in a single location in FIG. 8 for simplicity.

일 실시예에서, 수집된 신호 강도 값들 모두가 IoT 허브 디바이스들(710, 711) 중 하나에 제공되며, 이어서 그것은 값들을 평가하여 사용자의 위치(예를 들어, 내부 또는 외부)를 결정한다. 사용자가 외부에 있는 것으로 결정되면, IoT 허브/디바이스(710)는 커맨드를 IoT 록(702)으로 전송하여 도어를 언록킹할 수 있다. 대안적으로, IoT 록(702)이 평가를 수행하기 위한 로직을 갖는 경우, IoT 허브들/디바이스들(710, 711)은 신호 강도 값들을 IoT 록(702)으로 전송할 수 있고, 그것은 신호 강도 값들을 평가하여 사용자의 위치를 결정한다.In one embodiment, all of the collected signal strength values are provided to one of the IoT hub devices 710, 711, which then evaluates the values to determine the user's location (eg, inside or outside). If it is determined that the user is outside, the IoT hub/device 710 may send a command to the IoT lock 702 to unlock the door. Alternatively, if IoT lock 702 has logic to perform the evaluation, IoT hubs/devices 710, 711 can send signal strength values to IoT lock 702, which are evaluated to determine the user's location.

도 9에 예시된 바와 같이, 일 실시예에서, IoT 허브(710) 상의 교정 모듈(910)이 무선 디바이스(703) 상의 앱 또는 브라우저 기반 코드와 통신하여 신호 강도 측정들을 교정한다. 교정 동안, 시스템 교정 모듈(910) 및/또는 교정 앱은 사용자에게 도어 밖의 소정 위치 및 도어 안의 소정 위치에(예를 들어, 도어 1의 6 피트 밖에, 도어 1의 6 피트 안에, 도어 2의 6 피트 밖에 등) 서 있도록 지시할 수 있다. 사용자는 사용자 인터페이스 상의 그래픽을 선택함으로써 그/그녀가 요구되는 위치에 있다는 것을 나타낼 수 있다. 이어서, 시스템 교정 앱 및/또는 시스템 교정 모듈(910)은 수집된 신호 강도 값들(900)을 IoT 허브/디바이스(710) 상의 위치 데이터베이스(901) 내의 각각의 위치와 관련시킬 것이다.As illustrated in FIG. 9 , in one embodiment, calibration module 910 on IoT hub 710 communicates with an app or browser-based code on wireless device 703 to calibrate signal strength measurements. During calibration, the system calibration module 910 and/or the calibration app prompts the user at a location outside the door and within the door (e.g., 6 feet outside of door 1, within 6 feet of door 1, 6 feet of door 2). out of the pits, etc.). The user can indicate that he/she is at the desired location by selecting a graphic on the user interface. The system calibration app and/or system calibration module 910 will then associate the collected signal strength values 900 with each location in the location database 901 on the IoT hub/device 710 .

일단 사용자의 상이한 알려진 위치들에 대한 신호 강도 값들이 수집되어 데이터베이스(901) 내에 저장되면, 신호 강도 분석 모듈(911)이 이러한 값들을 사용하여, 검출된 신호 강도 값들에 기초하여 도어를 록킹/언록킹하기 위한 IoT 록 커맨드들(950)을 전송할지를 결정한다. 도 9에 도시된 실시예에서, 2개의 상이한 도어에 대한 4개의 예시적인 위치: 도어 1 외부, 도어 1 내부, 도어 2 외부 및 도어 2 내부가 도시된다. RSSI1 값은 무선 록과 관련되며, -60 dbm의 임계치로 설정된다. 따라서, 일 실시예에서, 신호 강도 분석 모듈(911)은 RSSI1 값이 적어도 -60 dbm이 아닌 한 사용자의 위치를 결정하기 위한 그의 평가를 수행하지 않을 것이다. RSSI2 및 RSSI3 값들은 사용자의 무선 디바이스와 2개의 상이한 IoT 허브/디바이스 사이에서 측정된 신호 강도 값들이다.Once signal strength values for different known locations of the user are collected and stored in database 901, signal strength analysis module 911 uses these values to lock/unlock the door based on the detected signal strength values. Determines whether to transmit IoT lock commands 950 for locking. In the embodiment shown in FIG. 9 , four exemplary locations for two different doors are shown: door 1 outside, door 1 inside, door 2 outside and door 2 inside. The RSSI1 value is related to radio lock and is set to a threshold of -60 dbm. Thus, in one embodiment, the signal strength analysis module 911 will not perform its evaluation to determine the user's location unless the RSSI1 value is at least -60 dbm. The RSSI2 and RSSI3 values are the signal strength values measured between the user's wireless device and two different IoT hubs/devices.

RSSI1 임계치에 도달함을 가정하면, 신호 강도 분석 모듈(911)은 IoT 허브들/디바이스들과 사용자의 무선 디바이스 사이에서 측정된 현재의 신호 강도 값들(900)을 위치 데이터베이스(901)로부터의 RSSI2/RSSI3 값들과 비교한다. 현재의 RSSI 값들이 (예를 들어, IoT 허브/디바이스(710)에 대한) RSSI2 및 (예를 들어, IoT 허브/디바이스(711)에 대한) RSSI3에 대해 데이터베이스 내에 지정된 값들의 지정된 범위 내에 있는 경우, 무선 디바이스는 관련된 위치에 또는 그 근처에 있는 것으로 결정된다. 예를 들어, (예컨대, 교정 동안 행해진 측정에 기초하여) "도어 1 외부" 위치와 관련된 RSSI2 값이 -90 dbm이기 때문에, RSSI2에 대한 현재 측정된 신호 강도가 -93 dbm 내지 -87 dbm인 경우, RSSI2 비교는 (±3 dbm의 지정된 범위를 가정하여) 검증될 수 있다. 유사하게, (예를 들어, 교정 동안 행해진 측정에 기초하여) "도어 1 외부" 위치와 관련된 RSSI3 값이 -85 dbm이기 때문에, RSSI3에 대한 현재 측정된 신호 강도가 -88 dbm 내지 -82 dbm인 경우, RSSI3 비교는 검증될 수 있다. 따라서, 사용자가 IoT 록에 대해 -60 dbm 값 내에 그리고 RSSI2 및 RSSI3에 대해 위에서 지정된 범위들 내에 있는 경우, 신호 강도 분석 모듈(911)은 록을 개방하기 위한 커맨드(950)를 전송할 것이다. 이러한 방식으로 상이한 RSSI 값들을 비교함으로써, 시스템은 사용자가 집 안으로부터 IoT 록의 -60 dbm 이내에서 지나갈 때 바람직하지 않은 "언록" 이벤트들을 피하게 되는데, 이는 RSSI2 및 RSSI3에 대한 RSSI 측정치들이 내부 및 외부 사례들을 구별하는 데 사용되기 때문이다.Assuming that the RSSI1 threshold is reached, the signal strength analysis module 911 converts the current signal strength values 900 measured between the IoT hubs/devices and the user's wireless device to the RSSI2/RSSI2/ Compare with RSSI3 values. If the current RSSI values are within the specified range of values specified in the database for RSSI2 (e.g., for IoT hub/device 710) and RSSI3 (e.g., for IoT hub/device 711) , the wireless device is determined to be at or near the relevant location. For example, if the current measured signal strength for RSSI2 is -93 dbm to -87 dbm, since the RSSI2 value associated with the "Outside Door 1" location is -90 dbm (e.g., based on measurements made during calibration) , RSSI2 comparisons can be verified (assuming a specified range of ±3 dbm). Similarly, since the RSSI3 value associated with the "Outside Door 1" location is -85 dbm (e.g., based on measurements made during calibration), the current measured signal strength for RSSI3 is -88 dbm to -82 dbm. If so, the RSSI3 comparison can be verified. Thus, if the user is within the -60 dbm value for the IoT lock and within the ranges specified above for RSSI2 and RSSI3, the signal strength analysis module 911 will send a command 950 to open the lock. By comparing different RSSI values in this way, the system avoids undesirable "unlock" events when the user passes within -60 dbm of the IoT lock from inside the house, since RSSI measurements for RSSI2 and RSSI3 are internal and This is because it is used to distinguish between external instances.

일 실시예에서, 신호 강도 분석 모듈(911)은 내부 사례와 외부 사례 사이의 가장 큰 양의 구별을 제공하는 RSSI 값들에 의존한다. 예를 들어, (예컨대, 각각, 도어 2 내부 및 도어 2 외부에 대한 -96 dbm 및 -97 dbm의 RSSI3 값들과 같이) 내부 및 외부 사례들에 대한 RSSI 값들이 동등하거나 매우 유사한 몇몇 예들이 있을 수 있다. 그러한 경우, 신호 강도 분석 모듈은 다른 RSSI 값을 사용하여 2개의 사례를 구별할 것이다. 게다가, 일 실시예에서, 신호 강도 분석 모듈(911)은 기록된 RSSI 값들이 유사할 때 비교를 위해 사용되는 RSSI 범위들을 동적으로 조정할 수 있다(예를 들어, 측정된 RSSI 값들이 더 유사할 때 범위들을 더 작게 함). 따라서, ±3 dbm이 위의 예에 대한 비교 범위로 사용되지만, RSSI 측정치들이 얼마나 유사한지에 기초하여 다양한 상이한 범위들이 비교를 위해 설정될 수 있다.In one embodiment, the signal strength analysis module 911 relies on the RSSI values that provide the greatest positive distinction between inner and outer cases. For example, there may be some examples where the RSSI values for the inside and outside cases are equivalent or very similar (e.g., RSSI3 values of -96 dbm and -97 dbm for door 2 inside and door 2 outside, respectively). there is. In such a case, the signal strength analysis module will use different RSSI values to distinguish the two cases. Additionally, in one embodiment, the signal strength analysis module 911 may dynamically adjust the RSSI ranges used for comparison when the recorded RSSI values are similar (e.g., when the measured RSSI values are more similar). make ranges smaller). Thus, while ±3 dbm is used as the comparison range for the example above, a variety of different ranges can be set for comparison based on how similar the RSSI measurements are.

일 실시예에서, 시스템 교정 모듈(910) 시스템은 사용자가 도어를 통해 들어올 때마다 dbm 값들을 측정함으로써 시스템을 계속 훈련시킨다. 예를 들어, 초기 교정 후에 사용자가 집에 성공적으로 들어오는 것에 응답하여, 시스템 교정 모듈(910)은 RSSI2 및 RSSI3에 대한 추가적인 RSSI 값들을 저장할 수 있다. 이러한 방식으로, 다양한 RSSI 값들이 각각의 사례에 대해 위치/신호 강도 데이터베이스(901) 내에 저장되어 내부 사례와 외부 사례를 더욱 구별할 수 있다. 최종 결과는 현재 이용 가능한 것보다 훨씬 더 정밀한 무선 록 시스템이다.In one embodiment, the system calibration module 910 system continuously trains the system by measuring dbm values each time a user enters through a door. For example, in response to a user successfully entering home after initial calibration, system calibration module 910 may store additional RSSI values for RSSI2 and RSSI3. In this way, various RSSI values can be stored in the location/signal strength database 901 for each instance to further differentiate the inner case from the outer case. The end result is a wireless lock system that is far more precise than currently available.

본 발명의 일 실시예에 따른 방법이 도 10에 예시된다. 방법은 상기에 기술된 시스템 아키텍처의 맥락 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method according to one embodiment of the present invention is illustrated in FIG. 10 . The method may be implemented within the context of the system architecture described above, but is not limited to any particular system architecture.

1001에서, 사용자 디바이스와 IoT 록 사이의 무선 신호 강도가 측정된다. 1002에서, 신호 강도가 지정된 임계치를 초과하면(즉, 사용자가 도어 근처에 있음을 지시함), 1002에서, 사용자 디바이스와 하나 이상의 IoT 허브/디바이스 사이의 무선 신호 강도가 측정된다. 1003에서, 수집된 무선 신호 강도 값들을 이전에 수집 및 저장된 신호 강도 값들과 비교하여 사용자의 위치를 결정한다. 예를 들어, RSSI 값들이 사용자가 이전에 도어 밖에 있었을 때의 RSSI 값들의 지정된 범위 내에 있는 경우, 사용자가 현재 도어 밖에 있는 것으로 결정될 수 있다. 1004에서, 평가에 기초하여, 사용자가 도어 밖에 있는지에 대한 결정이 행해진다. 그렇다면, 1005에서, 도어가 IoT 록을 사용하여 자동으로 언록킹된다.At 1001, wireless signal strength between a user device and an IoT lock is measured. At 1002, if the signal strength exceeds a specified threshold (ie indicating that the user is near a door), at 1002, the wireless signal strength between the user device and one or more IoT hubs/devices is measured. At 1003, the collected wireless signal strength values are compared to previously collected and stored signal strength values to determine the location of the user. For example, if the RSSI values are within a specified range of RSSI values when the user was previously out of the door, it may be determined that the user is currently out of the door. At 1004, based on the evaluation, a determination is made as to whether the user is out of the door. If so, at 1005 the door is automatically unlocked using the IoT lock.

IoT 록 시스템을 교정하기 위한 방법이 도 11에 예시된다. 1101에서, 사용자는 도어 밖에 서 있도록 요청되고, 1102에서, 사용자 디바이스와 하나 이상의 IoT 디바이스/허브 사이에서 무선 신호 강도 데이터가 수집된다. 언급된 바와 같이, 사용자의 무선 디바이스 상에 설치된 사용자 앱을 통해 사용자에게 요청이 전송될 수 있다. 1103에서, 사용자는 도어 안에 서 있도록 요청되고, 1104에서, 사용자 디바이스와 IoT 디바이스들/허브들 사이에서 무선 신호 강도 데이터가 수집된다. 1105에서, 신호 강도 데이터가 데이터베이스 내에 저장되며, 따라서 그것은 사용자의 현재 위치를 결정하기 위해 본 명세서에서 설명되는 바와 같이 신호 강도 값들을 비교하는 데 사용될 수 있다.A method for calibrating an IoT lock system is illustrated in FIG. 11 . At 1101, the user is requested to stand outside the door, and at 1102, wireless signal strength data is collected between the user device and one or more IoT devices/hubs. As mentioned, the request may be sent to the user via a user app installed on the user's wireless device. At 1103, the user is requested to stand in the door, and at 1104, wireless signal strength data is collected between the user device and the IoT devices/hubs. At 1105, the signal strength data is stored in the database, so it can be used to compare signal strength values as described herein to determine the user's current location.

본 명세서에서는 사용자의 집이 예시적인 실시예로서 사용되지만, 본 발명의 실시예들은 소비자 응용으로 제한되지 않는다는 점에 유의한다. 예를 들어, 이러한 동일 기술들이 사업체들 또는 다른 타입의 빌딩들에 대한 액세스를 제공하는 데 사용될 수 있다.Note that although a user's home is used herein as an exemplary embodiment, embodiments of the present invention are not limited to consumer applications. For example, these same technologies could be used to provide access to businesses or other types of buildings.

일 실시예에서, 전술한 것과 유사한 기술들이 사용자의 집 전반에 걸쳐 사용자를 추적하는 데 사용된다. 예를 들어, 사용자의 무선 디바이스와 사용자의 집 안의 다양한 IoT 디바이스들/허브들 사이의 RSSI 측정치들을 추적함으로써, 상이한 사용자 위치들의 "맵"이 집계될 수 있다. 이어서, 이러한 맵은 사용자 현재 위치하는 방 안의 스피커들로 오디오를 지향시키는 것과 같은 서비스들을 최종 사용자에게 제공하는 데 사용될 수 있다.In one embodiment, techniques similar to those described above are used to track the user throughout the user's home. For example, by tracking RSSI measurements between a user's wireless device and various IoT devices/hubs within the user's home, a “map” of different user locations can be aggregated. This map can then be used to provide services to the end user, such as directing audio to speakers in the room in which the user is currently located.

도 12는 무선 디바이스(703)와 복수의 IoT 디바이스(1101 내지 1105) 및 IoT 허브(1110) 사이에서 측정된 RSSI 값들이 사용자가 방 A 안에 있는지, 방 B 안에 있는지, 또는 방 C 안에 있는지를 결정하는 데 사용되는 예시적인 시스템의 개요를 제공한다. 특히, 무선 디바이스(703)와 IoT 허브(1110), IoT 디바이스(1103) 및 IoT 디바이스(1102) 사이에서 측정된 RSSI 값들(1121 내지 1123)에 기초하여, IoT 허브(1110)는 예시된 바와 같이 사용자가 현재 방 B 안에 있는 것으로 결정할 수 있다. 유사하게, 사용자가 방 C 안으로 이동할 때, 무선 디바이스(703)와 IoT 디바이스들(1104, 1105) 및 IoT 허브(1110) 사이의 RSSI 측정치들이 이어서 사용자가 방 C 안에 있는 것으로 결정하는 데 사용될 수 있다. 도 12에는 3개의 RSSI 측정(1121 내지 1123)만이 도시되지만, 더 큰 정밀도를 제공하기 위해 무선 디바이스(703)의 범위 내에 있는 임의의 IoT 디바이스 또는 IoT 허브 사이에서 RSSI 측정들이 행해질 수 있다.12 shows RSSI values measured between the wireless device 703 and the plurality of IoT devices 1101 to 1105 and the IoT hub 1110 to determine whether the user is in room A, room B, or room C. An overview of an exemplary system used to do so is provided. In particular, based on RSSI values 1121 to 1123 measured between wireless device 703 and IoT hub 1110, IoT device 1103 and IoT device 1102, IoT hub 1110, as illustrated, It may be determined that the user is currently in room B. Similarly, when a user moves into room C, RSSI measurements between wireless device 703 and IoT devices 1104, 1105 and IoT hub 1110 can then be used to determine that the user is in room C. . Although only three RSSI measurements 1121-1123 are shown in FIG. 12, RSSI measurements can be made between any IoT device or IoT hub within range of wireless device 703 to provide greater precision.

일 실시예에서, IoT 허브(1110)는 그 자신과 다양한 IoT 디바이스들(1101 내지 1105) 및 무선 디바이스(703) 사이의 RSSI 값들에 기초하여 삼각 측량 기술들을 이용하여 사용자의 위치를 삼각 측량할 수 있다. 예를 들어, IoT 디바이스(1102), IoT 허브(1110) 및 무선 디바이스(703) 사이에 형성된 RSSI 삼각형을 사용하여, 삼각형의 각각의 변에 대한 RSSI 값들에 기초하여 무선 디바이스(703)의 현재 위치를 결정할 수 있다.In one embodiment, IoT hub 1110 may triangulate the user's location using triangulation techniques based on RSSI values between itself and various IoT devices 1101 - 1105 and wireless device 703. there is. For example, using an RSSI triangle formed between IoT device 1102, IoT hub 1110, and wireless device 703, the current location of wireless device 703 based on the RSSI values for each side of the triangle. can decide

일 실시예에서, 전술한 것들과 유사한 교정 기술들을 사용하여 각각의 방 안에서 신호 강도 값들을 수집할 수 있다. 도 13은, 전술한 실시예들에서와 같이, 무선 디바이스(703) 상의 앱 또는 브라우저 기반 코드와 통신하여 신호 강도 측정들을 교정하는 시스템 교정 모듈(910)을 예시한다. 교정 동안, 시스템 교정 모듈(910) 및/또는 교정 앱은 IoT 시스템이 사용되고 있는 응용들에 따라 사용자에게 상이한 방들 안에 그리고 각 방 안의 소정 위치들에 서 있도록 지시할 수 있다. 전술한 바와 같이, 사용자는 사용자 인터페이스 상의 그래픽을 선택함으로써 그/그녀가 요구되는 위치에 있다는 것을 나타낼 수 있다. 이어서, 시스템 교정 앱 및/또는 시스템 교정 모듈(910)은 수집된 신호 강도 값들(900)을 IoT 허브/디바이스(710) 상의 위치 데이터베이스(1301) 내의 각각의 위치와 관련시킬 것이다.In one embodiment, signal strength values can be collected within each room using calibration techniques similar to those described above. 13 illustrates a system calibration module 910 that communicates with app or browser-based code on the wireless device 703 to calibrate signal strength measurements, as in the preceding embodiments. During calibration, the system calibration module 910 and/or the calibration app may instruct the user to stand in different rooms and at certain locations within each room depending on the applications for which the IoT system is being used. As mentioned above, the user can indicate that he/she is at the desired location by selecting a graphic on the user interface. The system calibration app and/or system calibration module 910 will then associate the collected signal strength values 900 with each location in the location database 1301 on the IoT hub/device 710 .

일단 사용자의 상이한 알려진 위치들에 대한 신호 강도 값들이 수집되어 데이터베이스(1301) 내에 저장되면, 신호 강도 분석 모듈(911)이 이러한 값들을 사용하여 사용자의 집 주위의 다양한 IoT 디바이스들(1101 내지 1105)을 제어한다. 예를 들어, IoT 디바이스들(1101 내지 1105)이 홈 오디오 시스템을 위한 스피커들 또는 증폭기들을 포함하는 경우, 신호 강도 분석 모듈(911)은 오디오가 재생되고 있는 방들을 제어하기 위해 IoT 디바이스 커맨드들(1302)을 전송할 수 있다(예를 들어, 사용자가 존재하는 방 안의 스피커들을 턴온하고, 다른 방들 안의 스피커들을 턴오프함). 유사하게, IoT 디바이스들(1101 내지 1105)이 조명 제어 유닛들을 포함하는 경우, 신호 강도 분석 모듈(911)은 사용자가 존재하는 방 안의 발광체들을 턴온하고 다른 방들 안의 발광체들을 턴오프하기 위해 IoT 디바이스 커맨드들(1302)을 전송할 수 있다. 물론, 본 발명의 기본 원리들은 임의의 특정 최종 사용자 응용들로 제한되지 않는다.Once the signal strength values for the user's different known locations are collected and stored in the database 1301, the signal strength analysis module 911 uses these values to analyze the various IoT devices 1101-1105 around the user's home. to control For example, if the IoT devices 1101 to 1105 include speakers or amplifiers for a home audio system, the signal strength analysis module 911 provides IoT device commands ( 1302) may be transmitted (eg, turning on speakers in the room where the user is present and turning off speakers in other rooms). Similarly, if the IoT devices 1101 to 1105 include lighting control units, the signal strength analysis module 911 will use IoT device commands to turn on lights in the room where the user is present and turn off lights in other rooms. s 1302 can be transmitted. Of course, the basic principles of the present invention are not limited to any particular end user applications.

언급된 바와 같이, 시스템 교정 모듈(910)의 일 실시예는 응용에 기초하여 방 안의 상이한 지점들에 대한 RSSI 데이터를 수집할 것이다. 도 13에서, 사용자에게 방 안의 상이한 위치들에 서 있도록 지시함으로써 각각의 방에 대한 RSSI 범위들이 수집된다. 예를 들어, 사용자의 거실의 경우, -99 dbm 내지 -93 dbm, -111 dbm 내지 -90 dbm, 및 -115 dbm 내지 -85 dbm의 RSSI 범위들이, 각각, RSSI1, RSSI2 및 RSSI3에 대해 수집된다(즉, 3개의 상이한 IoT 디바이스/허브로부터 수집된다). 무선 디바이스(703)의 현재 위치가 이러한 범위들 각각에 속할 때, 신호 강도 분석 모듈(911)은 사용자가 거실 안에 있는 것으로 결정하고 잠재적으로 IoT 디바이스 커맨드들(1302)을 전송하여 지정된 세트의 기능들(예를 들어, 발광체 턴온, 오디오의 턴온 등)을 수행할 것이다. 게다가, 방 안의 특정 지점들에 대해, 특정 RSSI 값들이 수집될 수 있다. 예를 들어, 도 13에서, 사용자가 거실 안의 소파에 앉아 있을 때 -88 dbm, -99 dbm 및 -101 dbm의 값들이 수집되었다. 전술한 실시예들에서와 같이, 신호 강도 분석 모듈(911)은 RSSI 값들이 저장된 RSSI 값들의 지정된 범위 내에(예를 들어, ±3 dbm 내에) 있는 경우에 사용자가 카우치(couch) 위에 있는 것으로 결정할 수 있다. 게다가, 이전의 실시예들에서와 같이, 시스템 교정 모듈(910)은 RSSI 값들이 현재 상태로 유지되는 것을 보장하기 위해 상이한 위치들에 대한 데이터를 계속 수집할 수 있다. 예를 들어, 사용자가 거실을 재배열하는 경우, 카우치의 위치가 바뀔 수 있다. 이 경우, 시스템 교정 모듈(910)은 (예를 들어, 데이터베이스 내에 저장된 것들로부터의 RSSI 값들의 유사성이 주어지는 경우) 사용자가 현재 카우치에 앉아 있는지를 사용자에게 묻고, 신호 강도 데이터베이스(1301)를 새로운 값들로 업데이트할 수 있다.As mentioned, one embodiment of system calibration module 910 will collect RSSI data for different points in the room based on the application. In FIG. 13, RSSI ranges for each room are collected by instructing the user to stand at different locations within the room. For example, for a user's living room, RSSI ranges of -99 dbm to -93 dbm, -111 dbm to -90 dbm, and -115 dbm to -85 dbm are collected for RSSI1, RSSI2 and RSSI3, respectively (i.e. collected from 3 different IoT devices/hubs). When the current location of wireless device 703 falls within each of these ranges, signal strength analysis module 911 determines that the user is in a living room and potentially sends IoT device commands 1302 to perform a specified set of functions. (eg lights turn on, audio turn on, etc.). Moreover, for specific points in the room, specific RSSI values may be collected. For example, in FIG. 13 , values of -88 dbm, -99 dbm, and -101 dbm were collected when the user was sitting on a sofa in the living room. As in the foregoing embodiments, signal strength analysis module 911 may determine that a user is on the couch if the RSSI values are within a specified range of stored RSSI values (eg, within ±3 dbm). can Additionally, as in previous embodiments, system calibration module 910 may continue to collect data for different locations to ensure that RSSI values remain current. For example, if the user rearranges the living room, the location of the couch may change. In this case, the system calibration module 910 asks the user if the user is currently sitting on the couch (eg, given the similarity of RSSI values from those stored in the database) and returns the signal strength database 1301 to the new values. can be updated with

일 실시예에서, 다양한 타입의 IoT 디바이스들과의 사용자의 상호작용을 이용하여 사용자의 위치를 결정할 수 있다. 예를 들어, 사용자의 냉장고가 IoT 디바이스를 갖추고 있는 경우, 시스템은 사용자가 냉장고 도어를 개방한 것을 검출한 때 RSSI 측정치들을 취할 수 있다. 유사하게, 조명 시스템이 IoT 시스템을 포함하는 경우, 사용자가 집 또는 사업체의 상이한 방들 내의 발광체들을 조정할 때, 시스템은 RSSI 측정치들을 자동으로 취할 수 있다. 다른 예로서, 사용자가 다양한 기기들(예를 들어, 세탁기, 건조기, 식기 건조기), 시청각 장비(예컨대, 텔레비전, 오디오 장비 등) 또는 HVAC 시스템들(예컨대, 서모스탯 조정)과 상호작용할 때, 시스템은 RSSI 측정치들을 획득하고 측정치들을 이러한 위치들과 관련시킬 수 있다.In one embodiment, the user's location may be determined using the user's interactions with various types of IoT devices. For example, if a user's refrigerator is equipped with an IoT device, the system can take RSSI measurements when it detects that the user has opened the refrigerator door. Similarly, if the lighting system includes an IoT system, the system can automatically take RSSI measurements when a user adjusts lights in different rooms of a home or business. As another example, when a user interacts with various appliances (eg, washer, dryer, dish dryer), audiovisual equipment (eg, television, audio equipment, etc.) or HVAC systems (eg, thermostat adjustment), the system can obtain RSSI measurements and relate the measurements to these locations.

전술한 실시예들에서는 단일 사용자 설명되지만, 본 발명의 실시예들은 다수의 사용자에 대해 구현될 수 있다. 예를 들어, 시스템 교정 모듈(910)은 신호 강도 데이터베이스(1301) 내에 저장될 사용자 A 및 사용자 B 둘 모두에 대한 신호 강도 값들을 수집할 수 있다. 이어서, 신호 강도 분석 모듈(911)은 신호 강도 측정치들의 비교들에 기초하여 사용자 A 및 사용자 B의 현재 위치를 식별하고 IoT 커맨드들(1302)을 전송하여 사용자 A 및 사용자 B의 집 주위의 IoT 디바이스들을 제어할 수 있다(예를 들어, 사용자 A 및 사용자 B가 존재하는 방들 안의 발광체들/스피커들을 온 상태로 유지함).Although described as a single user in the above embodiments, embodiments of the present invention may be implemented for multiple users. For example, system calibration module 910 may collect signal strength values for both user A and user B to be stored in signal strength database 1301 . The signal strength analysis module 911 then identifies the current location of user A and user B based on the comparisons of the signal strength measurements and sends IoT commands 1302 to IoT devices around the home of users A and user B. (e.g. keep lights/speakers on in rooms where user A and user B are present).

본 명세서에서 설명되는 본 발명의 실시예들에서 사용되는 무선 디바이스(703)는 스마트폰, 태블릿, 웨어러블 디바이스(예컨대, 스마트워치, 목걸이 또는 팔찌 상의 토큰), 또는 RSSI 값들을 검출할 수 있는 임의의 다른 형태의 무선 디바이스(703)일 수 있다. 일 실시예에서, 무선 디바이스(703)는 블루투스 LE(BTLE)와 같은 단거리, 저전력 무선 통신 프로토콜을 통해 IoT 디바이스들(1101 내지 1105) 및 IoT 허브(1110)와 통신한다. 게다가, 일 실시예에서, 무선 디바이스(703)는 Wifi와 같은 장거리 무선 프로토콜을 통해 IoT 허브(1110)와 통신한다. 따라서, 이 실시예에서, RSSI 값들은 무선 디바이스(703)에 의해 수집되고 장거리 프로토콜을 이용하여 다시 IoT 허브(1110)로 통신될 수 있다. 게다가, 개별 IoT 디바이스들(1101 내지 1105) 각각은 RSSI 값들을 수집하고 이러한 값들을 단거리 무선 프로토콜을 통해 다시 IoT 허브(1110)로 통신할 수 있다. 본 발명의 기본 원리들은 RSSI 값들을 수집하는 데 사용되는 임의의 특정 프로토콜 또는 기술로 제한되지 않는다.The wireless device 703 used in the embodiments of the invention described herein may be a smartphone, tablet, wearable device (e.g., a smartwatch, a token on a necklace or bracelet), or any device capable of detecting RSSI values. It may be another type of wireless device 703 . In one embodiment, wireless device 703 communicates with IoT devices 1101 - 1105 and IoT hub 1110 via a short range, low power wireless communication protocol such as Bluetooth LE (BTLE). Additionally, in one embodiment, the wireless device 703 communicates with the IoT hub 1110 via a long range wireless protocol such as Wifi. Thus, in this embodiment, RSSI values may be collected by wireless device 703 and communicated back to IoT hub 1110 using a long range protocol. Moreover, each of the individual IoT devices 1101 - 1105 can collect RSSI values and communicate these values back to the IoT hub 1110 via a short range wireless protocol. The basic principles of the present invention are not limited to any particular protocol or technology used to collect RSSI values.

본 발명의 일 실시예는 본 명세서에서 설명되는 기술들을 이용하여 단거리 무선 프로토콜을 사용하여 무선 확장기가 IoT 허브(1110)의 범위를 확장하기 위한 이상적인 위치를 찾는다. 예를 들어, 일 실시예에서, 새로운 확장기를 구매한 때, 시스템 교정 모듈(910)은 (예를 들어, 무선 디바이스(703) 상의 앱에 지시를 전송함으로써) 무선 확장기 디바이스를 갖는 사용자의 집의 방들 각각 안으로 사용자가 이동하도록 지시를 전송할 것이다. 접속 마법사가 또한 무선 디바이스(703) 상에서 실행되어 사용자가 프로세스를 통과하게 할 수 있다. 시스템 교정 모듈(910)에 의해 또는 마법사로부터 지시가 전송된 후, 사용자는 각각의 방 안으로 걸어 들어가서 무선 디바이스(703) 상의 버튼을 누를 것이다. 이어서, IoT 허브(1110)는 그 자신과 확장기 사이의 신호 강도를, 그리고 또한 확장기와 시스템 내의 모든 다른 IoT 디바이스들 사이의 신호 강도를 측정할 것이다. 이어서, 시스템 교정 모듈(910) 또는 무선 디바이스 마법사는 무선 확장기를 배치할 최상의 위치들의 우선순위화된 리스트를 사용자에게 제공할 수 있다(즉, 무선 확장기와 IoT 허브(1110) 사이 및/또는 무선 확장기와 IoT 디바이스들(1101 내지 1105) 사이에서 최고의 신호 강도를 갖는 그러한 위치들을 선택함).One embodiment of the present invention uses the techniques described herein to find an ideal location for a wireless extender to extend the range of the IoT hub 1110 using a short-range wireless protocol. For example, in one embodiment, when a new expander is purchased, the system calibration module 910 (eg, by sending an instruction to an app on the wireless device 703) determines the user's home health status with the wireless expander device. It will send instructions to move the user into each of the rooms. A connection wizard may also be run on the wireless device 703 to allow the user to go through the process. After instructions are sent by the system calibration module 910 or from the wizard, the user will walk into each room and press a button on the wireless device 703. The IoT hub 1110 will then measure the signal strength between itself and the expander, and also between the expander and all other IoT devices in the system. The system calibration module 910 or wireless device wizard may then provide the user with a prioritized list of the best locations to place the wireless extender (i.e., between the wireless extender and IoT hub 1110 and/or the wireless extender). and the IoT devices 1101 to 1105 choose those locations with the highest signal strength).

전술한 본 발명의 실시예들은 현재의 IoT 시스템들에서 발견되지 않는 IoT 시스템 내에서의 미세 조정 위치 인식을 제공한다. 게다가, 위치 정밀도를 개선하기 위해, 일 실시예에서, 무선 디바이스(703) 상의 GPS 시스템이 GPS 데이터뿐만 아니라 각각의 위치에 대한 RSSI 데이터를 포함할 사용자의 집의 정밀한 맵을 제공하는 데 사용될 정밀한 GPS 데이터를 통신할 수 있다.Embodiments of the invention described above provide fine-tuned positional awareness within an IoT system not found in current IoT systems. Additionally, to improve location accuracy, the GPS system on the wireless device 703, in one embodiment, will be used to provide a precise map of the user's home that will include GPS data as well as RSSI data for each location. data can be communicated.

개선된 보안을 위한 실시예들Embodiments for Improved Security

일 실시예에서, 각각의 IoT 디바이스(101)의 저전력 마이크로제어기(200) 및 IoT 허브(110)의 저전력 로직/마이크로제어기(301)는 후술되는 실시예에 의해 사용되는 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다(예를 들어, 도 14 내지 도 19 및 관련 텍스트 참조). 대안적으로, 키는 아래에서 논의되는 바와 같이 가입자 식별 모듈(SIM)에서 보안될 수 있다.In one embodiment, the low-power microcontroller 200 of each IoT device 101 and the low-power logic/microcontroller 301 of the IoT hub 110 are secured to store encryption keys used by the embodiments described below. Includes a key store (see, eg, FIGS. 14-19 and associated text). Alternatively, the key may be secured in a Subscriber Identity Module (SIM) as discussed below.

도 14는 IoT 서비스(120), IoT 허브(110) 및 IoT 디바이스(101, 102) 간의 통신을 암호화하기 위해 공개 키 기반구조(PKI) 기술 및/또는 대칭 키 교환/암호화 기술을 사용하는 고레벨 아키텍처를 예시한다.14 is a high-level architecture that uses public key infrastructure (PKI) technology and/or symmetric key exchange/encryption technology to encrypt communications between IoT service 120, IoT hub 110, and IoT devices 101, 102. exemplify

공개/비공개 키 쌍을 사용하는 실시예가 먼저 설명될 것이고, 이어서 대칭 키 교환/암호화 기술을 사용하는 실시예가 설명될 것이다. 특히, PKI를 사용하는 실시예에서는, 고유 공개/비공개 키 쌍이 각각의 IoT 디바이스(101, 102), 각각의 IoT 허브(110) 및 IoT 서비스(120)와 관련된다. 일 실시예에서, 새로운 IoT 허브(110)가 설정될 때, 그것의 공개 키가 IoT 서비스(120)에 제공되고, 새로운 IoT 디바이스(101)가 설정될 때, 그것의 공개 키가 IoT 허브(110) 및 IoT 서비스(120) 둘 모두에 제공된다. 디바이스들 사이에서 공개 키를 안전하게 교환하기 위한 다양한 기술이 아래에서 설명된다. 일 실시예에서, 임의의 수신 디바이스가 서명을 확인함으로써 공개 키의 유효성을 검증할 수 있도록 모든 수신 디바이스에 알려진(즉, 인증서 형태의) 마스터 키에 의해 모든 공개 키가 서명된다. 따라서, 단지 원시 공개 키만을 교환하기보다는 이러한 인증서가 교환될 것이다.An embodiment using a public/private key pair will be described first, followed by an embodiment using a symmetric key exchange/encryption technique. In particular, in embodiments using PKI, a unique public/private key pair is associated with each IoT device 101, 102, each IoT hub 110 and IoT service 120. In one embodiment, when a new IoT hub 110 is set up, its public key is provided to the IoT service 120, and when a new IoT device 101 is set up, its public key is provided to the IoT hub 110. ) and the IoT service 120 are both provided. Various techniques for securely exchanging public keys between devices are described below. In one embodiment, all public keys are signed by a master key that is known (ie, in the form of a certificate) to all receiving devices so that any receiving device can verify the validity of the public key by verifying the signature. Thus, rather than just exchanging the raw public key, these certificates will be exchanged.

예시된 바와 같이, 일 실시예에서, 각각의 IoT 디바이스(101, 102)는 각각의 디바이스의 비공개 키를 보안 저장하기 위한 보안 키 저장소(1401, 1403)를 각각 포함한다. 이어서, 보안 로직(1402, 1304)은 안전하게 저장된 비공개 키를 사용하여 본 명세서에 설명된 암호화/해독 동작을 수행한다. 유사하게, IoT 허브(110)는 IoT 허브 비공개 키 및 IoT 디바이스(101, 102) 및 IoT 서비스(120)의 공개 키를 저장하기 위한 보안 저장소(1411)뿐만 아니라, 키를 사용하여 암호화/해독 동작을 수행하기 위한 보안 로직(1412)을 포함한다. 마지막으로, IoT 서비스(120)는 그 자신의 비공개 키, 다양한 IoT 디바이스 및 IoT 허브의 공개 키를 보안 저장하기 위한 보안 저장소(1421), 및 키를 사용하여 IoT 허브 및 디바이스와의 통신을 암호화/해독하기 위한 보안 로직(1413)을 포함할 수 있다. 일 실시예에서, IoT 허브(110)가 IoT 디바이스로부터 공개 키 인증서를 수신할 때, IoT 허브는 (예를 들어, 전술한 바와 같이 마스터 키를 사용하여 서명을 확인함으로써) 그것을 검증할 수 있고, 이어서 그것 내부로부터 공개 키를 추출하여 그 공개 키를 그것의 보안 키 저장소(1411)에 저장할 수 있다.As illustrated, in one embodiment, each IoT device 101, 102 includes a secure key store 1401, 1403, respectively, for securely storing the respective device's private key. Security logic 1402, 1304 then uses the securely stored private key to perform the encryption/decryption operations described herein. Similarly, IoT hub 110 has a secure storage 1411 for storing IoT hub private keys and public keys of IoT devices 101, 102 and IoT services 120, as well as encryption/decryption operations using keys. and security logic 1412 for performing. Finally, the IoT service 120 uses a secure storage 1421 for securely storing its own private key, the public keys of various IoT devices and IoT hubs, and the keys to encrypt/encrypt communications with the IoT hubs and devices. Security logic 1413 to decrypt. In one embodiment, when the IoT hub 110 receives the public key certificate from the IoT device, the IoT hub can verify it (eg, by verifying the signature using a master key as described above); It can then extract the public key from within it and store the public key in its secure key storage 1411 .

예로서, 일 실시예에서, IoT 서비스(120)가 커맨드 또는 데이터(예를 들어, 도어를 열기 위한 커맨드, 센서를 판독하기 위한 요청, IoT 디바이스에 의해 처리/표시될 데이터 등)를 IoT 디바이스(101)로 전송할 필요가 있을 때, 보안 로직(1413)은 IoT 디바이스(101)의 공개 키를 사용하여 데이터/커맨드를 암호화하여 암호화된 IoT 디바이스 패킷을 생성한다. 일 실시예에서, 보안 로직은 이어서 IoT 허브(110)의 공개 키를 사용하여 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성하고 IoT 허브 패킷을 IoT 허브(110)로 전송한다. 일 실시예에서, 서비스(120)는 암호화된 메시지를 그것의 비공개 키 또는 상기에 언급된 마스터 키로 서명하여, 디바이스(101)는 그것이 신뢰 소스로부터 변경되지 않은 메시지를 수신하고 있는지를 검증할 수 있다. 이어서, 디바이스(101)는 비공개 키 및/또는 마스터 키에 대응하는 공개 키를 사용하여 서명을 확인할 수 있다. 전술한 바와 같이, 공개/비공개 키 암호화 대신에 대칭 키 교환/암호화 기술이 사용될 수 있다. 이들 실시예에서, 하나의 키를 비공개적으로 저장하고 대응하는 공개 키를 다른 디바이스에 제공하기보다는, 디바이스들은 각각 암호화에 사용되고 서명을 확인하는 데 사용되는 동일한 대칭 키의 사본을 제공받을 수 있다. 대칭 키 알고리즘의 일례는 진보된 암호화 표준(AES)이지만, 본 발명의 기본 원리는 임의의 타입의 특정 대칭 키로 제한되지 않는다.As an example, in one embodiment, the IoT service 120 sends a command or data (eg, a command to open a door, a request to read a sensor, data to be processed/displayed by the IoT device, etc.) to an IoT device ( When necessary to transmit to 101), the security logic 1413 encrypts the data/commands using the public key of the IoT device 101 to create an encrypted IoT device packet. In one embodiment, the security logic then encrypts the IoT device packet using the public key of the IoT hub 110 to create an IoT hub packet and transmits the IoT hub packet to the IoT hub 110 . In one embodiment, service 120 signs the encrypted message with its private key or the aforementioned master key, so device 101 can verify that it is receiving an unaltered message from a trusted source. . Then, the device 101 can verify the signature using the public key corresponding to the private key and/or the master key. As described above, a symmetric key exchange/encryption technique may be used instead of public/private key encryption. In these embodiments, rather than privately storing one key and providing the corresponding public key to other devices, the devices may each be provided with a copy of the same symmetric key used for encryption and for verifying signatures. One example of a symmetric key algorithm is the Advanced Encryption Standard (AES), but the principles underlying the present invention are not limited to any type of specific symmetric key.

대칭 키 구현을 사용하여, 각각의 디바이스(101)는 IoT 허브(110)와 대칭 키를 교환하기 위해 보안 키 교환 프로토콜에 들어간다. 동적 대칭 키 프로비저닝 프로토콜(DSKPP)과 같은 보안 키 프로비저닝 프로토콜이 보안 통신 채널을 통해 키를 교환하는 데 사용될 수 있다(예를 들어, RFC(Request for Comments) 6063 참조). 그러나, 본 발명의 기본 원리는 임의의 특정 키 프로비저닝 프로토콜로 제한되지 않는다.Using a symmetric key implementation, each device 101 enters into a secure key exchange protocol to exchange a symmetric key with the IoT hub 110 . A secure key provisioning protocol, such as Dynamic Symmetric Key Provisioning Protocol (DSKPP), may be used to exchange keys over a secure communication channel (see, for example, Request for Comments (RFC) 6063). However, the basic principles of the present invention are not limited to any particular key provisioning protocol.

일단 대칭 키가 교환되면, 대칭 키는 통신을 암호화하기 위해 각각의 디바이스(101) 및 IoT 허브(110)에 의해 사용될 수 있다. 유사하게, IoT 허브(110) 및 IoT 서비스(120)는 보안 대칭 키 교환을 수행 한 다음, 교환된 대칭 키를 사용하여 통신을 암호화할 수 있다. 일 실시예에서, 새로운 대칭 키가 디바이스(101)와 허브(110) 사이에서 그리고 허브(110)와 IoT 서비스(120) 사이에서 주기적으로 교환된다. 일 실시예에서, 새로운 대칭 키가 디바이스(101), 허브(110) 및 서비스(120) 사이에서 각각의 새로운 통신 세션을 이용하여 교환된다(예를 들어, 새로운 키가 생성되고 각각의 통신 세션 동안 안전하게 교환된다). 일 실시예에서, IoT 허브 내의 보안 모듈(1412)이 신뢰되는 경우, 서비스(120)는 허브 보안 모듈(1312)과 세션 키를 협상할 수 있고, 이어서 보안 모듈(1412)은 각각의 디바이스(120)와 세션 키를 협상할 것이다. 이어서, 서비스(120)로부터의 메시지가 디바이스(101)로의 전송을 위해 재암호화되기 전에 허브 보안 모듈(1412)에서 해독 및 검증될 것이다.Once the symmetric key is exchanged, the symmetric key can be used by each device 101 and IoT hub 110 to encrypt communications. Similarly, IoT hub 110 and IoT service 120 may perform a secure symmetric key exchange and then use the exchanged symmetric key to encrypt communications. In one embodiment, new symmetric keys are periodically exchanged between device 101 and hub 110 and between hub 110 and IoT service 120 . In one embodiment, a new symmetric key is exchanged between device 101, hub 110 and service 120 with each new communication session (e.g., a new key is generated and during each communication session safely exchanged). In one embodiment, if the security module 1412 in the IoT hub is trusted, the service 120 can negotiate a session key with the hub security module 1312, and then the security module 1412 can ) to negotiate a session key. Messages from service 120 will then be decrypted and verified in hub security module 1412 before being re-encrypted for transmission to device 101 .

일 실시예에서, 허브 보안 모듈(1412) 상의 타협(compromise)을 방지하기 위해, 설치 시에 1회(영구) 설치 키가 디바이스(101)와 서비스(120) 사이에서 협상될 수 있다. 메시지를 디바이스(101)로 전송할 때, 서비스(120)는 먼저 이 디바이스 설치 키로 암호화/MAC하고, 이어서 허브의 세션 키로 암호화/MAC할 수 있다. 이어서, 허브(110)는 암호화된 디바이스 블롭(device blob)을 검증 및 추출하여, 이를 디바이스로 전송할 것이다.In one embodiment, a one-time (permanent) installation key may be negotiated between device 101 and service 120 at installation time to prevent compromise on hub security module 1412 . When sending a message to device 101, service 120 may first encrypt/MAC with this device installed key and then encrypt/MAC with the hub's session key. Hub 110 will then verify and extract the encrypted device blob and send it to the device.

본 발명의 일 실시예에서, 재생 공격을 방지하기 위해 카운터 메커니즘이 구현된다. 예를 들어, 디바이스(101)로부터 허브(110)로의(또는 그 반대로의) 각각의 연속적인 통신이 계속 증가하는 카운터 값을 할당받을 수 있다. 허브(110) 및 디바이스(101) 둘 모두는 이 값을 추적하고 이 값이 디바이스들 간의 각각의 연속적인 통신에서 정확한지를 검증할 것이다. 동일한 기술이 허브(110)와 서비스(120) 사이에서 구현될 수 있다. 이러한 방식으로 카운터를 사용하는 것은 (카운터 값이 부정확할 것이기 때문에) 각각의 디바이스들 간의 통신을 스푸핑(spoofing)하는 것을 더 어렵게 할 것이다. 그러나, 이것 없이도, 서비스와 디바이스 간의 공유 설치 키가 모든 디바이스에 대한 네트워크(허브) 전반적 공격을 방지할 것이다.In one embodiment of the invention, a counter mechanism is implemented to prevent replay attacks. For example, each successive communication from device 101 to hub 110 (or vice versa) may be assigned an ever-increasing counter value. Both hub 110 and device 101 will track this value and verify that this value is correct at each successive communication between devices. The same technique may be implemented between hub 110 and service 120 . Using a counter in this way will make it more difficult to spoof the communication between the respective devices (because the counter value will be inaccurate). However, even without this, a shared installation key between service and device would prevent network (hub) wide attacks on all devices.

일 실시예에서, 공개/비공개 키 암호화를 사용할 때, IoT 허브(110)는 그것의 비공개 키를 사용하여 IoT 허브 패킷을 해독하고 암호화된 IoT 디바이스 패킷을 생성하여, 이것을 관련 IoT 디바이스(101)로 전송한다. 이어서, IoT 디바이스(101)는 그것의 비공개 키를 사용하여 IoT 디바이스 패킷을 해독하여, IoT 서비스(120)로부터 시작되는 커맨드/데이터를 생성한다. 이어서, IoT 디바이스는 데이터를 처리하고/하거나 커맨드를 실행할 수 있다. 대칭 암호화를 사용하여, 각각의 디바이스는 공유 대칭 키를 사용하여 암호화하고 해독할 것이다. 어느 경우에나, 각각의 송신 디바이스는 또한 메시지를 그것의 비공개 키로 서명할 수 있어서, 수신 디바이스는 그것의 진정성을 검증할 수 있다.In one embodiment, when using public/private key encryption, IoT hub 110 uses its private key to decrypt IoT hub packets and generate encrypted IoT device packets, which are sent to associated IoT devices 101. send. The IoT device 101 then decrypts the IoT device packet using its private key to generate commands/data originating from the IoT service 120 . The IoT device may then process data and/or execute commands. With symmetric encryption, each device will encrypt and decrypt using a shared symmetric key. In either case, each sending device can also sign the message with its private key, so the receiving device can verify its authenticity.

IoT 디바이스(101)로부터 IoT 허브(110)로의 그리고 IoT 서비스(120)로의 통신을 암호화하기 위해 상이한 키 세트가 사용될 수 있다. 예를 들어, 공개/비공개 키 배열을 사용하여, 일 실시예에서, IoT 디바이스(101) 상의 보안 로직(1402)은 IoT 허브(110)의 공개 키를 사용하여, IoT 허브(110)로 전송되는 데이터 패킷을 암호화한다. 이어서, IoT 허브(110) 상의 보안 로직(1412)은 IoT 허브의 비공개 키를 사용하여 데이터 패킷을 해독할 수 있다. 유사하게, IoT 디바이스(101) 상의 보안 로직(1402) 및/또는 IoT 허브(110) 상의 보안 로직(1412)은 IoT 서비스(120)의 공개 키를 사용하여 IoT 서비스(120)로 전송되는 데이터 패킷을 암호화할 수 있다(데이터 패킷은 이어서 IoT 서비스(120) 상의 보안 로직(1413)에 의해 서비스의 비공개 키를 사용하여 해독될 수 있다). 대칭 키를 사용하는 경우, 디바이스(101) 및 허브(110)는 하나의 대칭 키를 공유할 수 있는 반면, 허브 및 서비스(120)는 상이한 대칭 키를 공유할 수 있다.A different set of keys may be used to encrypt the communication from the IoT device 101 to the IoT hub 110 and to the IoT service 120 . For example, using a public/private key arrangement, in one embodiment, the security logic 1402 on the IoT device 101 uses the public key of the IoT hub 110 to transmit to the IoT hub 110. Encrypt data packets. Security logic 1412 on IoT hub 110 can then use the IoT hub's private key to decrypt the data packet. Similarly, security logic 1402 on IoT device 101 and/or security logic 1412 on IoT hub 110 use the public key of IoT service 120 to transmit data packets to IoT service 120. can be encrypted (the data packet can then be decrypted by the security logic 1413 on the IoT service 120 using the service's private key). When using symmetric keys, device 101 and hub 110 can share one symmetric key, while hub and service 120 can share different symmetric keys.

소정의 특정 상세가 위의 설명에서 기재되지만, 본 발명의 기본 원리는 다양한 상이한 암호화 기술을 사용하여 구현될 수 있다는 점에 유의해야 한다. 예를 들어, 상기에 논의된 일부 실시예는 비대칭 공개/비공개 키 쌍을 사용하지만, 대안적인 실시예는 다양한 IoT 디바이스(101, 102), IoT 허브(110) 및 IoT 서비스(120) 사이에서 안전하게 교환되는 대칭 키를 사용할 수 있다. 더욱이, 일부 실시예에서, 데이터/커맨드 그 자체가 암호화되는 것이 아니라, 키가 데이터/커맨드(또는 다른 데이터 구조)에 대한 서명을 생성하는 데 사용된다. 이어서, 수신자는 그것의 키를 사용하여 서명을 확인할 수 있다.Although certain specific details have been set forth in the above description, it should be noted that the basic principles of the present invention may be implemented using a variety of different cryptographic techniques. For example, while some of the embodiments discussed above use asymmetric public/private key pairs, alternative embodiments can securely connect various IoT devices (101, 102), IoT hubs (110) and IoT services (120). You can use symmetric keys that are exchanged. Moreover, in some embodiments, the data/commands themselves are not encrypted, but a key is used to create a signature for the data/commands (or other data structures). The recipient can then verify the signature using its key.

도 15에 예시된 바와 같이, 일 실시예에서, 각각의 IoT 디바이스(101) 상의 보안 키 저장소는 프로그래밍 가능 가입자 식별 모듈(SIM)(1501)을 사용하여 구현된다. 이 실시예에서, IoT 디바이스(101)는 처음에, IoT 디바이스(101) 상의 SIM 인터페이스(1500) 내에 안착되는 프로그래밍되지 않은 SIM 카드(1501)와 함께 최종 사용자에게 제공될 수 있다. 하나 이상의 암호화 키의 세트를 갖도록 SIM을 프로그래밍하기 위해, 사용자는 SIM 인터페이스(500)로부터 프로그래밍 가능 SIM 카드(1501)를 취하여, 그것을 IoT 허브(110) 상의 SIM 프로그래밍 인터페이스(1502) 안에 삽입한다. 이어서, IoT 허브 상의 프로그래밍 로직(1525)은 SIM 카드(1501)를 안전하게 프로그래밍하여, IoT 디바이스(101)를 IoT 허브(110) 및 IoT 서비스(120)에 대해 등록/페어링한다. 일 실시예에서, 공개/비공개 키 쌍이 프로그래밍 로직(1525)에 의해 무작위로 생성될 수 있고, 이어서 그 쌍의 공개 키는 IoT 허브의 보안 저장 디바이스(411)에 저장될 수 있는 반면, 비공개 키는 프로그래밍 가능 SIM(1501) 내에 저장될 수 있다. 게다가, 프로그래밍 로직(525)은 IoT 허브(110), IoT 서비스(120) 및/또는 임의의 다른 IoT 디바이스(101)의 공개 키를 (IoT 디바이스(101) 상의 보안 로직(1302)에 의해 발신 데이터를 암호화하는 데 사용되도록) SIM 카드(1401) 상에 저장할 수 있다. 일단 SIM(1501)이 프로그래밍되면, 새로운 IoT 디바이스(101)는 SIM을 보안 식별자로서 사용하여(예를 들어, SIM을 사용하여 디바이스를 등록하기 위한 기존 기술을 사용하여) IoT 서비스(120)로 프로비저닝될 수 있다. 프로비저닝 후에, IoT 허브(110) 및 IoT 서비스(120) 둘 모두는 IoT 디바이스(101)와의 통신을 암호화할 때 사용될 IoT 디바이스의 공개 키의 사본을 안전하게 저장할 것이다.As illustrated in FIG. 15 , in one embodiment, secure key storage on each IoT device 101 is implemented using a programmable subscriber identity module (SIM) 1501 . In this embodiment, the IoT device 101 may initially be provided to an end user with an unprogrammed SIM card 1501 seated within a SIM interface 1500 on the IoT device 101 . To program a SIM with one or more sets of cryptographic keys, a user takes a programmable SIM card 1501 from SIM interface 500 and inserts it into SIM programming interface 1502 on IoT hub 110. The programming logic 1525 on the IoT hub then securely programs the SIM card 1501 to register/pair the IoT device 101 to the IoT hub 110 and the IoT service 120 . In one embodiment, a public/private key pair may be randomly generated by programming logic 1525, and then the public key of the pair may be stored in the secure storage device 411 of the IoT hub, while the private key may be may be stored within the programmable SIM 1501. In addition, the programming logic 525 can store the public key of the IoT hub 110, the IoT service 120 and/or any other IoT device 101 (by the security logic 1302 on the IoT device 101 the outgoing data can be stored on the SIM card 1401 so that it can be used to encrypt . Once the SIM 1501 is programmed, the new IoT device 101 can be provisioned with the IoT service 120 using the SIM as a secure identifier (eg, using existing techniques for registering devices using the SIM). It can be. After provisioning, both IoT hub 110 and IoT service 120 will securely store a copy of the IoT device's public key to be used when encrypting communications with IoT device 101 .

도 15와 관련하여 전술한 기술은 새로운 IoT 디바이스를 최종 사용자에게 제공할 때 엄청난 유연성을 제공한다. 사용자가 (현재 행해지고 있는 바와 같이) 판매/구매 시에 각각의 SIM을 특정 서비스 제공자에 직접 등록할 것을 요구하기보다는, SIM은 IoT 허브(110)를 통해 최종 사용자에 의해 직접 프로그래밍될 수 있고 프로그래밍의 결과는 IoT 서비스(120)로 안전하게 통신될 수 있다. 결과적으로, 새로운 IoT 디바이스(101)는 온라인 또는 로컬 소매상으로부터 최종 사용자에게 판매될 수 있고, 나중에 IoT 서비스(120)로 안전하게 프로비저닝될 수 있다.The techniques described above with respect to FIG. 15 provide tremendous flexibility when providing new IoT devices to end users. Rather than requiring users to register each SIM directly with a specific service provider at the time of sale/purchase (as is currently done), SIMs can be directly programmed by the end user via the IoT hub 110 and require less programming. The result can be securely communicated to the IoT service 120. As a result, the new IoT device 101 can be sold to an end user either online or from a local retailer, and later securely provisioned with the IoT service 120 .

등록 및 암호화 기술이 SIM(가입자 식별 모듈)의 특정 상황에서 전술되지만, 본 발명의 기본 원리는 "SIM" 디바이스로 제한되지 않는다. 오히려, 본 발명의 기본 원리는 암호화 키 세트를 저장하기 위한 보안 저장소를 갖는 임의의 타입의 디바이스를 사용하여 구현될 수 있다. 또한, 위의 실시예가 이동 가능한 SIM 디바이스를 포함하지만, 일 실시예에서, SIM 디바이스는 이동 가능한 것이 아니라, IoT 디바이스 그 자체가 IoT 허브(110) 상의 프로그래밍 인터페이스(1502) 내에 삽입될 수 있다.Although registration and encryption techniques are described above in the specific context of a SIM (Subscriber Identity Module), the basic principles of the present invention are not limited to "SIM" devices. Rather, the basic principles of the present invention can be implemented using any type of device having secure storage for storing a set of cryptographic keys. Also, while the above embodiment includes a movable SIM device, in one embodiment, the SIM device is not movable, but the IoT device itself can be inserted into the programming interface 1502 on the IoT hub 110.

일 실시예에서, 사용자가 SIM(또는 다른 디바이스)을 프로그래밍할 것을 요구하기보다는, SIM은 최종 사용자에게 배포되기 전에 IoT 디바이스(101) 내에 미리 프로그래밍된다. 이 실시예에서, 사용자가 IoT 디바이스(101)를 설정할 때, 본 명세서에서 설명되는 다양한 기술은 IoT 허브(110)/IoT 서비스(120)와 새로운 IoT 디바이스(101) 사이에서 암호화 키를 안전하게 교환하는 데 사용될 수 있다.In one embodiment, rather than requiring the user to program the SIM (or other device), the SIM is pre-programmed into the IoT device 101 prior to distribution to the end user. In this embodiment, when a user sets up an IoT device 101, various techniques described herein are used to securely exchange encryption keys between an IoT hub 110/IoT service 120 and a new IoT device 101. can be used to

예를 들어, 도 16a에 예시된 바와 같이, 각각의 IoT 디바이스(101) 또는 SIM(401)은 IoT 디바이스(101) 및/또는 SIM(1501)을 고유하게 식별하는 바코드 또는 QR 코드(1501)와 함께 패키징될 수 있다. 일 실시예에서, 바코드 또는 QR 코드(1601)는 IoT 디바이스(101) 또는 SIM(1001)에 대한 공개 키의 인코딩된 표현을 포함한다. 대안적으로, 바코드 또는 QR 코드(1601)는 IoT 허브(110) 및/또는 IoT 서비스(120)에 의해 공개 키를 식별하거나 생성하는 데 사용될 수 있다(예를 들어, 보안 저장소에 이미 저장된 공개 키에 대한 포인터로서 사용될 수 있다). 바코드 또는 QR 코드(601)는 (도 16a에 도시된 바와 같이) 별도의 카드 상에 인쇄될 수 있거나 IoT 디바이스 그 자체 상에 직접 인쇄될 수 있다. 바코드가 인쇄되는 곳에 관계없이, 일 실시예에서, IoT 허브(110)에는 바코드를 판독하고 결과적인 데이터를 IoT 허브(110) 상의 보안 로직(1012) 및/또는 IoT 서비스(120) 상의 보안 로직(1013)에 제공하기 위한 바코드 판독기(206)가 탑재된다. 이어서, IoT 허브(110) 상의 보안 로직(1012)은 IoT 디바이스에 대한 공개 키를 그것의 보안 키 저장소(1011) 내에 저장할 수 있고, IoT 서비스(120) 상의 보안 로직(1013)은 공개 키를 (후속 암호화된 통신에 사용되도록) 그것의 보안 저장소(1021) 내에 저장할 수 있다.For example, as illustrated in FIG. 16A , each IoT device 101 or SIM 401 has a barcode or QR code 1501 that uniquely identifies the IoT device 101 and/or SIM 1501 and can be packaged together. In one embodiment, barcode or QR code 1601 includes an encoded representation of a public key for IoT device 101 or SIM 1001 . Alternatively, a barcode or QR code 1601 may be used by IoT hub 110 and/or IoT service 120 to identify or generate a public key (e.g., a public key already stored in secure storage). can be used as a pointer to). The barcode or QR code 601 can be printed on a separate card (as shown in FIG. 16A) or can be printed directly on the IoT device itself. Regardless of where the barcode is printed, in one embodiment, IoT hub 110 reads the barcode and sends the resulting data to security logic 1012 on IoT hub 110 and/or security logic on IoT service 120 ( A barcode reader 206 for providing 1013 is mounted. Then, the security logic 1012 on the IoT hub 110 can store the public key for the IoT device in its secure key store 1011, and the security logic 1013 on the IoT service 120 can store the public key ( to be used for subsequent encrypted communications) in its secure storage 1021.

일 실시예에서, 바코드 또는 QR 코드(1601)에 포함되는 데이터는 또한 IoT 서비스 제공자에 의해 설계된 IoT 앱 또는 브라우저 기반 애플릿이 설치된 (예를 들어, 아이폰 또는 안드로이드 디바이스와 같은) 사용자 디바이스(135)를 통해 캡처될 수 있다. 일단 캡처되면, 바코드 데이터는 (예를 들어, 보안 소켓 계층(SSL) 접속과 같은) 보안 접속을 통해 IoT 서비스(120)로 안전하게 통신될 수 있다. 바코드 데이터는 또한 보안 로컬 접속을 통해(예를 들어, 로컬 WiFi 또는 블루투스 LE 접속을 통해) 클라이언트 디바이스(135)로부터 IoT 허브(110)로 제공될 수 있다.In one embodiment, the data contained in the barcode or QR code 1601 also sends a user device 135 (such as an iPhone or Android device) on which an IoT app or browser-based applet designed by an IoT service provider is installed. can be captured through Once captured, the barcode data can be securely communicated to the IoT service 120 via a secure connection (eg, a secure socket layer (SSL) connection). Barcode data may also be provided from the client device 135 to the IoT hub 110 via a secure local connection (eg, via a local WiFi or Bluetooth LE connection).

IoT 디바이스(101) 상의 보안 로직(1002) 및 IoT 허브(110) 상의 보안 로직(1012)은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 예를 들어, 일 실시예에서, 보안 로직(1002, 1012)은 IoT 디바이스(101)와 IoT 허브(110) 사이에 로컬 통신 채널(130)을 설정하는 데 사용되는 칩(예를 들어, 로컬 채널(130)이 블루투스 LE인 경우에 블루투스 LE 칩) 내에 구현된다. 보안 로직(1002, 1012)의 특정 위치에 관계없이, 일 실시예에서, 보안 로직(1002, 1012)은 소정 타입의 프로그램 코드를 실행하기 위한 보안 실행 환경을 설정하도록 설계된다. 이것은 예를 들어 트러스트존(TrustZone) 기술(일부 ARM 프로세서 상에서 이용 가능함) 및/또는 신뢰 실행 기술(Trusted Execution Technology)(인텔(Intel)에 의해 설계됨)을 사용하여 구현될 수 있다. 물론, 본 발명의 기본 원리는 임의의 특정 타입의 보안 실행 기술로 제한되지 않는다.Security logic 1002 on IoT device 101 and security logic 1012 on IoT hub 110 may be implemented using hardware, software, firmware, or any combination thereof. For example, in one embodiment, security logic 1002, 1012 is a chip used to establish local communication channel 130 between IoT device 101 and IoT hub 110 (e.g., local channel If 130 is a Bluetooth LE, it is implemented in a Bluetooth LE chip). Regardless of the specific location of secure logic 1002, 1012, in one embodiment, secure logic 1002, 1012 is designed to establish a secure execution environment for executing certain types of program code. This may be implemented using, for example, TrustZone technology (available on some ARM processors) and/or Trusted Execution Technology (designed by Intel). Of course, the basic principles of the present invention are not limited to any particular type of secure implementation technology.

일 실시예에서, 바코드 또는 QR 코드(1501)는 각각의 IoT 디바이스(101)를 IoT 허브(110)와 페어링하는 데 사용될 수 있다. 예를 들어, 블루투스 LE 디바이스를 페어링하기 위해 현재 사용되는 표준 무선 페어링 프로세스를 사용하기보다는, 바코드 또는 QR 코드(1501) 내에 임베딩되는 페어링 코드가 IoT 허브를 대응하는 IoT 디바이스와 페어링하기 위해 IoT 허브(110)에 제공될 수 있다.In one embodiment, a barcode or QR code 1501 may be used to pair each IoT device 101 with the IoT hub 110 . For example, rather than using the standard wireless pairing process currently used to pair a Bluetooth LE device, a pairing code embedded within a barcode or QR code 1501 can be used to pair an IoT hub with a corresponding IoT device ( 110) can be provided.

도 16b는 IoT 허브(110) 상의 바코드 판독기(206)가 IoT 디바이스(101)와 관련된 바코드/QR 코드(1601)를 캡처하는 일 실시예를 예시한다. 언급된 바와 같이, 바코드/QR 코드(1601)는 IoT 디바이스(101) 상에 직접 인쇄될 수 있거나, IoT 디바이스(101)가 제공된 별개의 카드 상에 인쇄될 수 있다. 어느 경우에나, 바코드 판독기(206)는 바코드/QR 코드(1601)로부터 페어링 코드를 판독하고 로컬 통신 모듈(1680)에 페어링 코드를 제공한다. 일 실시예에서, 로컬 통신 모듈(1680)은 블루투스 LE 칩 및 관련 소프트웨어이지만, 본 발명의 기본 원리는 임의의 특정 프로토콜 표준으로 제한되지 않는다. 일단 페어링 코드가 수신되면, 그것은 페어링 데이터(1685)를 포함하는 보안 저장소에 저장되고, IoT 디바이스(101) 및 IoT 허브(110)는 자동적으로 페어링된다. IoT 허브가 이러한 방식으로 새로운 IoT 디바이스와 페어링될 때마다, 그러한 페어링을 위한 페어링 데이터는 보안 저장소(685) 내에 저장된다. 일 실시예에서, 일단 IoT 허브(110)의 로컬 통신 모듈(1680)이 페어링 코드를 수신하면, 그것은 IoT 디바이스(101)와의 로컬 무선 채널을 통한 통신을 암호화하기 위한 키로서 코드를 사용할 수 있다.16B illustrates one embodiment where barcode reader 206 on IoT hub 110 captures barcode/QR code 1601 associated with IoT device 101 . As mentioned, the barcode/QR code 1601 can be printed directly on the IoT device 101 or can be printed on a separate card provided with the IoT device 101. In either case, barcode reader 206 reads the pairing code from barcode/QR code 1601 and provides the pairing code to local communication module 1680 . In one embodiment, the local communication module 1680 is a Bluetooth LE chip and related software, but the basic principles of the present invention are not limited to any particular protocol standard. Once the pairing code is received, it is stored in secure storage containing pairing data 1685, and the IoT device 101 and IoT hub 110 are automatically paired. Whenever an IoT hub is paired with a new IoT device in this way, pairing data for that pairing is stored in secure storage 685 . In one embodiment, once the local communication module 1680 of the IoT hub 110 receives the pairing code, it can use the code as a key to encrypt communications over the local wireless channel with the IoT device 101.

유사하게, IoT 디바이스(101) 측에서, 로컬 통신 모듈(1590)은 로컬 보안 저장 디바이스(1595) 내에 IoT 허브와의 페어링을 지시하는 페어링 데이터를 저장한다. 페어링 데이터(1695)는 바코드/QR 코드(1601)에서 식별된 미리 프로그래밍된 페어링 코드를 포함할 수 있다. 페어링 데이터(1695)는 또한 보안 로컬 통신 채널을 설정하는 데 필요한, IoT 허브(110) 상의 로컬 통신 모듈(1680)로부터 수신된 페어링 데이터(예를 들어, IoT 허브(110)와의 통신을 암호화하기 위한 추가 키)를 포함할 수 있다.Similarly, on the IoT device 101 side, the local communication module 1590 stores pairing data indicating pairing with the IoT hub in the local secure storage device 1595. Pairing data 1695 may include a pre-programmed pairing code identified in barcode/QR code 1601 . Pairing data 1695 may also be pairing data received from local communication module 1680 on IoT hub 110, necessary to establish a secure local communication channel (e.g., for encrypting communication with IoT hub 110). additional keys).

따라서, 바코드/QR 코드(1601)는 페어링 코드가 무선으로 전송되지 않기 때문에 현재 무선 페어링 프로토콜보다 훨씬 더 안전한 방식으로 로컬 페어링을 수행하는 데 사용될 수 있다. 또한, 일 실시예에서, 페어링에 사용되는 동일한 바코드/QR 코드(1601)는 IoT 디바이스(101)로부터 IoT 허브(110)로의 그리고 IoT 허브(110)로부터 IoT 서비스(120)로의 보안 접속을 구축하기 위한 암호화 키를 식별하는 데 사용될 수 있다.Thus, the barcode/QR code 1601 can be used to perform local pairing in a much more secure manner than current wireless pairing protocols because the pairing code is not transmitted over the air. Also, in one embodiment, the same barcode/QR code 1601 used for pairing is used to establish a secure connection from the IoT device 101 to the IoT hub 110 and from the IoT hub 110 to the IoT service 120. It can be used to identify an encryption key for

본 발명의 일 실시예에 따른 SIM 카드를 프로그래밍하는 방법이 도 17에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method of programming a SIM card according to one embodiment of the present invention is illustrated in FIG. 17 . The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1701에서 사용자는 블랭크(blank) SIM 카드를 갖는 새로운 IoT 디바이스를 수신하고, 1602에서 사용자는 블랭크 SIM 카드를 IoT 허브 안에 삽입한다. 1703에서, 사용자는 하나 이상의 암호화 키의 세트를 갖도록 블랭크 SIM 카드를 프로그래밍한다. 예를 들어, 전술한 바와 같이, 일 실시예에서, IoT 허브는 공개/비공개 키 쌍을 무작위로 생성하고, SIM 카드 상에 비공개 키를 저장하고 그것의 로컬 보안 저장소에 공개 키를 저장할 수 있다. 또한, 1704에서, 적어도 공개 키가 IoT 서비스로 전송되어, 그것은 IoT 디바이스를 식별하고 IoT 디바이스와의 암호화된 통신을 설정하는 데 사용될 수 있다. 전술한 바와 같이, 일 실시예에서, "SIM" 카드 이외의 프로그래밍 가능 디바이스가 도 17에 도시된 방법에서 SIM 카드와 동일한 기능을 수행하는 데 사용될 수 있다.At 1701 the user receives a new IoT device with a blank SIM card, at 1602 the user inserts the blank SIM card into the IoT hub. At 1703, the user programs the blank SIM card to have one or more sets of encryption keys. For example, as described above, in one embodiment, the IoT hub may randomly generate a public/private key pair, store the private key on the SIM card and store the public key in its local secure storage. Also, at 1704, at least the public key is sent to the IoT service, so that it can be used to identify the IoT device and establish encrypted communication with the IoT device. As noted above, in one embodiment, a programmable device other than a “SIM” card may be used to perform the same functions as a SIM card in the method shown in FIG. 17 .

새로운 IoT 디바이스를 네트워크 안에 통합하는 방법이 도 18에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method for integrating a new IoT device into a network is illustrated in FIG. 18 . The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1801에서, 사용자는 암호화 키가 미리 할당된 새로운 IoT 디바이스를 수신한다. 1802에서, 키는 IoT 허브에 안전하게 제공된다. 전술한 바와 같이, 일 실시예에서, 이것은 디바이스에 할당된 공개/비공개 키 쌍의 공개 키를 식별하기 위해 IoT 디바이스와 관련된 바코드를 판독하는 것을 포함한다. 바코드는 IoT 허브에 의해 직접 판독되거나 모바일 디바이스를 통해 앱 또는 브라우저를 통해 캡처될 수 있다. 대안적인 실시예에서, 블루투스 LE 채널, 근거리장 통신(NFC) 채널 또는 보안 WiFi 채널과 같은 보안 통신 채널이 IoT 디바이스와 IoT 허브 사이에 설정되어 키를 교환할 수 있다. 키가 전송되는 방식에 상관없이, 일단 수신되면, 그것은 IoT 허브 디바이스의 보안 키 저장소에 저장된다. 전술한 바와 같이, 보안 엔클레이브(Secure Enclave), 신뢰 실행 기술(TXT) 및/또는 트러스트존과 같은 다양한 보안 실행 기술이 키를 저장하고 보호하기 위해 IoT 허브 상에서 사용될 수 있다. 또한, 1803에서, 키는 IoT 서비스로 안전하게 전송되며, IoT 서비스는 그 자신의 보안 키 저장소에 키를 저장한다. 이어서, IoT 서비스는 키를 사용하여 IoT 디바이스와의 통신을 암호화할 수 있다. 다시 한번, 교환은 인증서/서명된 키를 사용하여 구현될 수 있다. 허브(110) 내에서, 저장된 키의 변경/추가/제거를 방지하는 것이 특히 중요하다.At 1801, a user receives a new IoT device pre-assigned an encryption key. At 1802, the key is securely provided to the IoT hub. As noted above, in one embodiment, this involves reading a barcode associated with the IoT device to identify the public key of the public/private key pair assigned to the device. Barcodes can be read directly by the IoT hub or captured via an app or browser via a mobile device. In an alternative embodiment, a secure communication channel such as a Bluetooth LE channel, a near field communication (NFC) channel, or a secure WiFi channel may be established between the IoT device and the IoT hub to exchange keys. Regardless of how the key is transmitted, once received, it is stored in the IoT hub device's secure keystore. As mentioned above, various secure execution technologies such as Secure Enclave, Trusted Execution Technology (TXT) and/or TrustZone may be used on IoT hubs to store and protect keys. Also, at 1803, the key is securely transmitted to the IoT service, which stores the key in its own secure key store. The IoT service can then use the key to encrypt communication with the IoT device. Once again, the exchange can be implemented using certificates/signed keys. Within the hub 110, it is particularly important to prevent changes/additions/removals of stored keys.

공개/비공개 키를 사용하여 커맨드/데이터를 IoT 디바이스로 안전하게 통신하는 방법이 도 19에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.A method of securely communicating commands/data to an IoT device using public/private keys is illustrated in FIG. 19 . The method may be implemented within the system architecture described above, but is not limited to any particular system architecture.

1901에서, IoT 서비스는 IoT 디바이스 공개 키를 사용하여 데이터/커맨드를 암호화하여 IoT 디바이스 패킷을 생성한다. 이어서 그것은 IoT 허브의 공개 키를 사용하여 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성한다(예를 들어, IoT 디바이스 패킷 주위에 IoT 허브 래퍼(wrapper)를 생성함). 1902에서, IoT 서비스는 IoT 허브 패킷을 IoT 허브로 전송한다. 1903에서, IoT 허브는 IoT 허브의 비공개 키를 사용하여 IoT 허브 패킷을 해독하여 IoT 디바이스 패킷을 생성한다. 1904에서, 그것은 이어서 IoT 디바이스 패킷을 IoT 디바이스로 전송하고, IoT 디바이스는 1905에서 IoT 디바이스 비공개 키를 사용하여 IoT 디바이스 패킷을 해독하여 데이터/커맨드를 생성한다. 1906에서, IoT 디바이스는 데이터/커맨드를 처리한다.At 1901, the IoT service encrypts data/commands using the IoT device public key to generate IoT device packets. It then encrypts the IoT device packet using the IoT hub's public key to create an IoT hub packet (eg, creates an IoT hub wrapper around the IoT device packet). At 1902, the IoT service sends an IoT hub packet to the IoT hub. At 1903, the IoT hub decrypts the IoT hub packet using the IoT hub's private key to create an IoT device packet. At 1904, it then sends the IoT device packet to the IoT device, and the IoT device decrypts the IoT device packet at 1905 using the IoT device private key to generate data/commands. At 1906, the IoT device processes the data/commands.

대칭 키를 사용하는 실시예에서, 대칭 키 교환은 각각의 디바이스들 사이에서(예를 들어, 각각의 디바이스와 허브 사이에서 그리고 허브와 서비스 사이에서) 협상될 수 있다. 일단 키 교환이 완료되면, 각각의 송신 디바이스는 데이터를 수신 디바이스로 송신하기 전에 대칭 키를 사용하여 각각의 송신을 암호화 및/또는 서명한다.In embodiments using symmetric keys, symmetric key exchanges may be negotiated between respective devices (eg, between each device and a hub and between a hub and a service). Once the key exchange is complete, each sending device uses the symmetric key to encrypt and/or sign each transmission before sending the data to the receiving device.

본 발명의 실시예는 위에서 설명된 다양한 단계를 포함할 수 있다. 단계는 범용 또는 특수-목적 프로세서로 하여금 그 단계를 수행하게 하기 위해 사용될 수 있는 기계-실행 가능 명령어들로 구현될 수 있다. 대안적으로, 이들 단계는 단계를 수행하기 위한 하드와이어드 로직(hardwired logic)을 포함하는 특정 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트와 맞춤형 하드웨어 컴포넌트의 임의의 조합에 의해 수행될 수 있다.Embodiments of the present invention may include the various steps described above. A step may be embodied in machine-executable instructions that may be used to cause a general purpose or special-purpose processor to perform the step. Alternatively, these steps may be performed by specific hardware components that include hardwired logic to perform the steps, or by any combination of programmed computer components and custom hardware components.

본 명세서에 설명된 바와 같이, 명령어는, 소정의 동작을 수행하도록 구성되거나, 비일시적인 컴퓨터 판독 가능 매체에 수록되는 메모리에 저장된 소프트웨어 명령어 또는 미리 결정된 기능을 갖는 주문형 집적 회로(ASIC)와 같은 하드웨어의 특정한 구성을 지칭할 수 있다. 따라서, 도면에 도시된 기법은 하나 이상의 전자 디바이스(예를 들어, 최종 스테이션, 네트워크 요소 등) 상에 저장되고 그것 상에서 실행되는 코드 및 데이터를 사용하여 구현될 수 있다. 그러한 전자 디바이스는 비일시적 컴퓨터 기계 판독 가능 저장 매체(예를 들어, 자기 디스크, 광 디스크, 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리 디바이스, 상변화 메모리) 및 일시적 컴퓨터 기계 판독 가능 통신 매체(예를 들어, 전기, 광학, 음향 또는 다른 형태의 전파 신호 - 예를 들어, 반송파, 적외선 신호, 디지털 신호 등)와 같은 컴퓨터 기계 판독 가능 매체를 사용하여 코드 및 데이터를 저장하고 (내부적으로 그리고/또는 네트워크를 통해 다른 전자 디바이스와) 통신한다. 부가적으로, 그러한 전자 디바이스는 전형적으로 하나 이상의 저장 디바이스(비일시적 기계 판독 가능 저장 매체), 사용자 입력/출력 디바이스(예를 들어, 키보드, 터치스크린, 및/또는 디스플레이), 및 네트워크 접속부와 같은 하나 이상의 다른 컴포넌트에 결합된 하나 이상의 프로세서의 세트를 포함한다. 프로세서의 세트와 다른 컴포넌트의 결합은 전형적으로 하나 이상의 버스 및 브리지(또한 버스 제어기로 지칭됨)를 통해 이루어진다. 저장 디바이스 및 네트워크 트래픽을 반송하는 신호는 각각 하나 이상의 기계 판독 가능 저장 매체 및 기계 판독 가능 통신 매체를 대표한다. 따라서, 주어진 전자 디바이스의 저장 디바이스는 전형적으로 그 전자 디바이스의 하나 이상의 프로세서의 세트 상에서의 실행을 위한 코드 및/또는 데이터를 저장한다. 물론, 본 발명의 실시예의 하나 이상의 부분이 소프트웨어, 펌웨어, 및/또는 하드웨어의 상이한 조합을 사용하여 구현될 수 있다.As described herein, instructions may be software instructions stored in a memory that is configured to perform certain operations or embodied in a non-transitory computer readable medium or hardware such as an application specific integrated circuit (ASIC) having a predetermined function. may refer to a specific configuration. Accordingly, the techniques shown in the figures may be implemented using code and data stored on and executed on one or more electronic devices (eg, end stations, network elements, etc.). Such electronic devices include non-transitory computer machine-readable storage media (e.g. magnetic disks, optical disks, random access memory, read-only memory, flash memory devices, phase change memory) and transitory computer machine-readable communication media (e.g. To store code and data (internally and/or network to communicate with other electronic devices). Additionally, such electronic devices typically include one or more storage devices (non-transitory machine-readable storage media), user input/output devices (eg, keyboards, touch screens, and/or displays), and network connections, such as It includes a set of one or more processors coupled to one or more other components. The coupling of the set of processors with other components is typically through one or more buses and bridges (also referred to as bus controllers). A storage device and a signal carrying network traffic represent one or more machine-readable storage media and machine-readable communication media, respectively. Thus, the storage device of a given electronic device typically stores code and/or data for execution on a set of one or more processors of that electronic device. Of course, one or more portions of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.

이러한 상세한 설명 전반에 걸쳐, 설명의 목적으로, 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 상세가 기술되었다. 그러나, 본 발명은 이러한 특정 상세들 중 일부 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 소정의 경우에, 잘 알려진 구조 및 기능은 본 발명의 주제를 불명확하게 하는 것을 피하기 위해 정성 들여 상세히 설명되지 않았다. 따라서, 본 발명의 범주 및 사상은 후속하는 청구범위의 관점에서 판단되어야 한다.Throughout this detailed description, for purposes of explanation, numerous specific details have been set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without some of these specific details. In some instances, well known structures and functions have not been described in detail in order to avoid obscuring the subject matter of the present invention. Accordingly, the scope and spirit of this invention should be judged in light of the claims that follow.

Claims (52)

시스템으로서,
무선 디바이스와 사용자의 집 또는 사업체 내의 복수의 사물 인터넷(IoT) 디바이스들 및/또는 IoT 허브들 사이의 신호 강도를 나타내는 신호 강도 데이터를 수집하기 위한 시스템 교정 모듈 ― 상기 시스템 교정 모듈은 상기 신호 강도 데이터를 상기 사용자의 집 또는 사업체 내의 위치들과 관련시키고 상기 관련을 위치 데이터베이스 내에 저장함 ―;
상기 위치 데이터베이스 내의 상기 신호 강도 데이터를, 상기 무선 디바이스와 상기 복수의 IoT 디바이스들 및/또는 IoT 허브들 중 하나 이상 사이의 현재 신호 강도를 나타내는 현재 신호 강도 데이터와 비교함으로써 상기 무선 디바이스의 현재 위치를 결정하기 위한 신호 강도 분석 모듈; 및
상기 무선 디바이스 상에 설치된 교정 앱을 포함하고,
상기 교정 앱은 상기 신호 강도 데이터를 수집할 때 상기 시스템 교정 모듈과 통신하고, 상기 교정 앱은 상기 사용자에게 1) 상기 사용자의 집 또는 사업체 내의 상이한 방들 및/또는 각각의 방 내의 상이한 위치들로 이동하도록 지시하고, 2) 상기 사용자가 상기 상이한 방들 및/또는 각각의 방들 내의 상이한 위치들 각각에 도달했을 때 상기 교정 앱으로 표시(indication)를 제공하도록 지시하는,
시스템.
As a system,
A system calibration module for collecting signal strength data indicative of signal strength between a wireless device and a plurality of Internet of Things (IoT) devices and/or IoT hubs within a user's home or business - the system calibration module performs the signal strength data associate with locations within the user's home or business and store the association in a location database;
The current location of the wireless device is determined by comparing the signal strength data in the location database with current signal strength data representing the current signal strength between the wireless device and one or more of the plurality of IoT devices and/or IoT hubs. signal strength analysis module to determine; and
a calibration app installed on the wireless device;
The calibration app communicates with the system calibration module when collecting the signal strength data, and the calibration app tells the user to 1) move to different rooms within the user's home or business and/or to different locations within each room. 2) instructing the calibration app to provide an indication when the user has reached each of the different rooms and/or different locations within each room;
system.
삭제delete 제1항에 있어서, 상기 교정 앱은 상기 표시를 제공할 때 상기 무선 디바이스와 상기 복수의 IoT 디바이스들 및/또는 IoT 허브들 각각 사이의 현재 신호 강도 데이터를 전송하는, 시스템.The system of claim 1 , wherein the calibration app transmits current signal strength data between the wireless device and each of the plurality of IoT devices and/or IoT hubs when providing the indication. 제1항에 있어서,
상기 시스템 교정 모듈 및 신호 강도 분석 모듈이 실행되는 IoT 허브를 추가로 포함하는, 시스템.
According to claim 1,
The system further comprises an IoT hub on which the system calibration module and signal strength analysis module are executed.
제1항에 있어서, 상기 위치 데이터베이스는 각각의 위치의 아이덴티티 및 각각의 위치와 관련된 복수의 신호 강도 값들을 포함하는, 시스템.2. The system of claim 1, wherein the location database includes an identity of each location and a plurality of signal strength values associated with each location. 제5항에 있어서, 상기 복수의 신호 강도 값들은 각각의 위치에서 상기 무선 디바이스와 상기 복수의 IoT 디바이스들 및/또는 IoT 허브들 사이에서 측정된 수신 신호 강도 지시자(RSSI) 값들을 포함하는, 시스템.The system of claim 5 , wherein the plurality of signal strength values include received signal strength indicator (RSSI) values measured between the wireless device and the plurality of IoT devices and/or IoT hubs at each location. . 제6항에 있어서, 상기 신호 강도 분석 모듈은 현재 신호 강도 값들의 세트를 수신하고 이 값들을 상기 위치 데이터베이스 내의 상기 신호 강도 데이터와 비교하여 상기 무선 디바이스의 상기 현재 위치를 결정하는, 시스템.7. The system of claim 6, wherein the signal strength analysis module receives a set of current signal strength values and compares the values to the signal strength data in the location database to determine the current location of the wireless device. 제7항에 있어서, 상기 신호 강도 분석 모듈은 상기 현재 신호 강도 값들이 상기 위치 데이터베이스 내에 지정된 상기 신호 강도 값들의 지정된 범위 내에 있는 경우 상기 무선 디바이스가 특정 위치에 있는 것으로 결정하는, 시스템.8. The system of claim 7, wherein the signal strength analysis module determines that the wireless device is in a particular location if the current signal strength values are within a specified range of the signal strength values specified in the location database. 제8항에 있어서, 상기 신호 강도 분석 모듈은 상기 무선 디바이스가 상기 특정 위치에 있다는 상기 결정에 응답하여 IoT 디바이스들을 제어하기 위해 하나 이상의 IoT 디바이스 커맨드들을 전송하는, 시스템.9. The system of claim 8, wherein the signal strength analysis module sends one or more IoT device commands to control IoT devices in response to the determination that the wireless device is at the particular location. 제9항에 있어서, 상기 무선 디바이스가 특정 방 내에 있는 것으로 결정할 때, 상기 신호 강도 분석 모듈은 그에 응답하여 상기 방 내의 오디오 스피커들을 턴온하고/하거나 상기 방 내의 발광체들을 턴온하는, 시스템.10. The system of claim 9, wherein when the wireless device determines that it is within a particular room, the signal strength analysis module responsively turns on audio speakers within the room and/or turns on lights within the room. 제10항에 있어서, 상기 무선 디바이스가 상기 특정 방 내에 있는 것으로 결정할 때, 상기 신호 강도 분석 모듈은 그에 응답하여 다른 방 내의 오디오 스피커들을 턴오프하고/하거나 상기 다른 방 내의 발광체들을 턴오프하는, 시스템.11. The system of claim 10, wherein when the wireless device determines that it is in the particular room, the signal strength analysis module responsively turns off audio speakers in another room and/or turns off lights in the other room. . 제1항에 있어서, 상기 신호 강도 분석 모듈은 삼각 측량 기술들을 수행하여 상기 무선 디바이스의 상기 현재 위치를 결정하는, 시스템.2. The system of claim 1, wherein the signal strength analysis module performs triangulation techniques to determine the current location of the wireless device. 제12항에 있어서, 상기 삼각 측량 기술들은 상기 무선 디바이스와 IoT 허브, 상기 무선 디바이스와 IoT 디바이스 사이의 신호 강도 값들, 및 상기 IoT 디바이스와 상기 IoT 허브 사이의 신호 강도를 측정하는 것을 포함하는, 시스템.13. The system of claim 12, wherein the triangulation techniques include measuring signal strength values between the wireless device and the IoT hub, the wireless device and the IoT device, and signal strength between the IoT device and the IoT hub. . 제1항에 있어서, 상기 신호 강도 데이터는 상기 무선 디바이스에 의해 수집되어 제1 IoT 허브로 전송되는, 시스템.The system of claim 1 , wherein the signal strength data is collected by the wireless device and transmitted to a first IoT hub. 제14항에 있어서, 상기 신호 강도 데이터는 단거리 무선 통신 표준을 이용하여 무선 통신 채널들에 대해 수집되고, 상기 신호 강도 데이터는 상이한 무선 통신 표준을 이용하여 상기 무선 디바이스로부터 상기 제1 IoT 허브로 전송되는, 시스템.15. The method of claim 14, wherein the signal strength data is collected for wireless communication channels using a short-range wireless communication standard, and the signal strength data is transmitted from the wireless device to the first IoT hub using a different wireless communication standard. being, the system. 제15항에 있어서, 상기 단거리 무선 통신 표준은 블루투스 저에너지(BTLE)를 포함하고, 상기 상이한 무선 통신 표준은 Wifi 표준을 포함하는, 시스템.16. The system of claim 15, wherein the short range wireless communication standard comprises Bluetooth Low Energy (BTLE) and the different wireless communication standard comprises the Wifi standard. 방법으로서,
무선 디바이스와 사용자의 집 또는 사업체 내의 복수의 IoT 디바이스들 및/또는 IoT 허브들 사이의 신호 강도를 나타내는 신호 강도 데이터를 수집하는 단계 ― 신호 강도 데이터를 수집하는 단계는 상기 무선 디바이스 상의 교정 앱이 상기 IoT 허브와 통신하는 단계를 추가로 포함하며, 상기 교정 앱은 상기 사용자에게 1) 상기 사용자의 집 또는 사업체 내의 상이한 방들 및/또는 각각의 방 내의 상이한 위치들로 이동하도록 지시하고, 2) 상기 사용자가 상기 상이한 방들 및/또는 각각의 방들 내의 상이한 위치들 각각에 도달했을 때 상기 교정 앱으로 표시를 제공하도록 지시함 ―;
상기 신호 강도 데이터를 상기 사용자의 집 또는 사업체 내의 위치들과 관련시키고 상기 관련을 위치 데이터베이스 내에 저장하는 단계; 및
상기 위치 데이터베이스 내의 상기 신호 강도 데이터를, 상기 무선 디바이스와 상기 복수의 IoT 디바이스들 및/또는 IoT 허브들 사이의 현재 신호 강도를 나타내는 현재 신호 강도 데이터와 비교함으로써 상기 집 또는 사업체 내의 상기 무선 디바이스의 현재 위치를 결정하는 단계
를 포함하는, 방법.
As a method,
Collecting signal strength data indicative of signal strength between a wireless device and a plurality of IoT devices and/or IoT hubs within a user's home or business - collecting signal strength data is performed by a calibration app on the wireless device and communicating with an IoT hub, wherein the calibration app instructs the user to 1) move to different rooms and/or different locations within each room within the user's home or business, and 2) the user instruct the calibration app to provide an indication when each of the different rooms and/or different locations within each room has been reached;
associating the signal strength data with locations within the user's home or business and storing the association in a location database; and
Current signal strength data of the wireless device in the home or business by comparing the signal strength data in the location database to current signal strength data representing the current signal strength between the wireless device and the plurality of IoT devices and/or IoT hubs. positioning step
Including, method.
삭제delete 제17항에 있어서, 상기 교정 앱은 상기 표시를 제공할 때 상기 무선 디바이스와 상기 복수의 IoT 디바이스들 및/또는 IoT 허브들 각각 사이의 현재 신호 강도 데이터를 전송하는, 방법.18. The method of claim 17, wherein the calibration app transmits current signal strength data between the wireless device and each of the plurality of IoT devices and/or IoT hubs when providing the indication. 제17항에 있어서, 상기 위치 데이터베이스는 각각의 위치의 아이덴티티 및 각각의 위치와 관련된 복수의 신호 강도 값들을 포함하는, 방법.18. The method of claim 17, wherein the location database includes an identity of each location and a plurality of signal strength values associated with each location. 제20항에 있어서, 상기 복수의 신호 강도 값들은 각각의 위치에서 상기 무선 디바이스와 상기 복수의 IoT 디바이스들 및/또는 IoT 허브들 사이에서 측정된 수신 신호 강도 지시자(RSSI) 값들을 포함하는, 방법.21. The method of claim 20, wherein the plurality of signal strength values comprises received signal strength indicator (RSSI) values measured between the wireless device and the plurality of IoT devices and/or IoT hubs at each location. . 제21항에 있어서, 현재 위치를 결정하는 단계는 현재 신호 강도 값들의 세트를 수신하고 이 값들을 상기 위치 데이터베이스 내의 상기 신호 강도 데이터와 비교하여 상기 무선 디바이스의 상기 현재 위치를 결정하는 단계를 추가로 포함하는, 방법.22. The method of claim 21, determining a current location further comprises receiving a set of current signal strength values and comparing these values to the signal strength data in the location database to determine the current location of the wireless device. Including, how. 제22항에 있어서, 상기 현재 위치를 결정하는 단계는 상기 현재 신호 강도 값들이 상기 위치 데이터베이스 내에 지정된 상기 신호 강도 값들의 지정된 범위 내에 있는 경우 상기 무선 디바이스가 특정 위치에 있는 것으로 결정하는 단계를 추가로 포함하는, 방법.23. The method of claim 22, wherein determining the current location further comprises determining that the wireless device is in a particular location if the current signal strength values are within a specified range of the signal strength values specified in the location database. Including, how. 제23항에 있어서, 상기 무선 디바이스가 상기 특정 위치에 있다는 상기 결정에 응답하여 IoT 디바이스들을 제어하기 위해 하나 이상의 IoT 디바이스 커맨드들을 전송하는 단계를 추가로 포함하는, 방법.24. The method of claim 23, further comprising sending one or more IoT device commands to control IoT devices in response to the determination that the wireless device is at the particular location. 제24항에 있어서, 상기 무선 디바이스가 특정 방 내에 있는 것으로 결정할 때, 그에 응답하여 상기 방 내의 오디오 스피커들을 턴온하고/하거나 상기 방 내의 발광체들을 턴온하는, 방법.25. The method of claim 24, wherein when the wireless device determines to be within a particular room, it responsively turns on audio speakers within the room and/or turns on lights within the room. 제25항에 있어서, 상기 무선 디바이스가 상기 특정 방 내에 있는 것으로 결정할 때, 그에 응답하여 다른 방 내의 오디오 스피커들을 턴오프하고/하거나 상기 다른 방 내의 발광체들을 턴오프하는, 방법.26. The method of claim 25, wherein when the wireless device determines to be in the particular room, it responsively turns off audio speakers in another room and/or turns off lights in the other room. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020177031056A 2015-03-30 2016-03-30 System and method for accurately detecting user location in IoT system KR102555796B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/673,582 US9704318B2 (en) 2015-03-30 2015-03-30 System and method for accurately sensing user location in an IoT system
US14/673,551 2015-03-30
US14/673,551 US10045150B2 (en) 2015-03-30 2015-03-30 System and method for accurately sensing user location in an IoT system
US14/673,582 2015-03-30
PCT/US2016/025069 WO2016161020A1 (en) 2015-03-30 2016-03-30 System and method for accurately sensing user location in an iot system

Publications (2)

Publication Number Publication Date
KR20170132263A KR20170132263A (en) 2017-12-01
KR102555796B1 true KR102555796B1 (en) 2023-07-13

Family

ID=57007288

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031056A KR102555796B1 (en) 2015-03-30 2016-03-30 System and method for accurately detecting user location in IoT system

Country Status (4)

Country Link
JP (1) JP6800881B2 (en)
KR (1) KR102555796B1 (en)
CN (1) CN107430499B (en)
WO (1) WO2016161020A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062036A (en) * 2016-11-30 2018-06-08 삼성전자주식회사 Apparatus and method for controlling light
JP2019008524A (en) * 2017-06-23 2019-01-17 富士通コネクテッドテクノロジーズ株式会社 Function control program, terminal apparatus, pairing registrable device, and system
CN109429333B (en) * 2017-08-29 2021-04-20 西安中兴新软件有限责任公司 Positioning method and base station
JP7298235B2 (en) 2019-03-27 2023-06-27 三菱電機株式会社 Lighting devices and lighting fixtures
KR20210152850A (en) * 2020-06-09 2021-12-16 삼성전자주식회사 Method and device for determining proximity of electronic device
KR20220100384A (en) * 2021-01-08 2022-07-15 삼성전자주식회사 Electronic device for controlling a plurality of external devices based on location, method for operating thereof and storage medium
WO2023085822A1 (en) * 2021-11-11 2023-05-19 삼성전자주식회사 Device location determination method, and electronic device for performing method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087834A (en) 2007-10-02 2009-04-23 Panasonic Corp Illuminance control system and its program

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10136436A (en) * 1996-11-01 1998-05-22 Matsushita Electric Ind Co Ltd Learning data collecting device for radio mobile station position detection
US6992625B1 (en) * 2003-04-25 2006-01-31 Microsoft Corporation Calibration of a device location measurement system that utilizes wireless signal strengths
JP2008241663A (en) * 2007-03-29 2008-10-09 Oki Electric Ind Co Ltd Field intensity investigation system and method
CN102379141B (en) * 2009-02-05 2014-12-03 苹果公司 Method and system for user equipment location determination on a wireless transmission system
US8791790B2 (en) * 2009-02-10 2014-07-29 Yikes Llc System and method for accessing a structure using a mobile device
CN102098780B (en) * 2010-12-14 2013-12-11 北京智慧图科技发展有限责任公司 Positioning method and device
CN202406123U (en) * 2012-01-16 2012-08-29 都伊林 Regional dynamic management system for indoor personnel
US9094873B2 (en) * 2012-05-14 2015-07-28 Wei Lu Classified relation networking optimization platform in open wireless architecture (OWA) mobile cloud terminal device
TWI487931B (en) * 2012-10-01 2015-06-11 Internat Mobile Iot Corp Earth positioning system
US20140148196A1 (en) * 2012-11-25 2014-05-29 Amir Bassan-Eskenazi Locaiton determination in an indoor space
US20140274149A1 (en) * 2013-03-13 2014-09-18 Futurewei Technologies, Inc. System and Method for Localizing Wireless Devices
US9372922B2 (en) * 2013-07-11 2016-06-21 Neura, Inc. Data consolidation mechanisms for internet of things integration platform
US9438440B2 (en) * 2013-07-29 2016-09-06 Qualcomm Incorporated Proximity detection of internet of things (IoT) devices using sound chirps
US9350550B2 (en) * 2013-09-10 2016-05-24 M2M And Iot Technologies, Llc Power management and security for wireless modules in “machine-to-machine” communications
CN104331755A (en) * 2014-04-09 2015-02-04 马伟明 A worker supervising system and worker supervising method
CN104155938B (en) * 2014-07-21 2018-01-09 惠州Tcl移动通信有限公司 A kind of home equipment management method and system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087834A (en) 2007-10-02 2009-04-23 Panasonic Corp Illuminance control system and its program

Also Published As

Publication number Publication date
JP6800881B2 (en) 2020-12-16
CN107430499B (en) 2021-04-09
KR20170132263A (en) 2017-12-01
JP2018514762A (en) 2018-06-07
WO2016161020A1 (en) 2016-10-06
CN107430499A (en) 2017-12-01

Similar Documents

Publication Publication Date Title
US10798523B2 (en) System and method for accurately sensing user location in an IoT system
US9704318B2 (en) System and method for accurately sensing user location in an IoT system
KR102524542B1 (en) Systems and methods for automatic wireless network authentication
KR102441429B1 (en) Apparatus and method for intermediary device data collection
KR102555796B1 (en) System and method for accurately detecting user location in IoT system
US9717012B2 (en) Internet of things (IOT) automotive device, system, and method
KR102524513B1 (en) Systems and methods for implementing Internet of Things (IoT) remote control applications
US10791446B2 (en) System and method for an Internet of Things (IoT) gas pump or charging station implementation
US20160323156A1 (en) System and method for performing wireless spectrum analysis and configuring wireless networks using an internet of things (iot) system
US9774497B2 (en) System and method for implementing internet of things (IOT) remote control applications
US9729340B2 (en) System and method for notifying a user of conditions associated with an internet-of-things (IoT) hub
US20160197769A1 (en) System and method for filtering events at an iot hub
US10004183B2 (en) System and method for an internet of things (IoT) moisture sensor
US20160349127A1 (en) System and method for using internet of things (iot) devices to capture and play back a massage

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant