CN107251530A - Systems and methods for implementing Internet of Things (IoT) remote control applications - Google Patents
Systems and methods for implementing Internet of Things (IoT) remote control applications Download PDFInfo
- Publication number
- CN107251530A CN107251530A CN201680010500.0A CN201680010500A CN107251530A CN 107251530 A CN107251530 A CN 107251530A CN 201680010500 A CN201680010500 A CN 201680010500A CN 107251530 A CN107251530 A CN 107251530A
- Authority
- CN
- China
- Prior art keywords
- iot
- centers
- user
- remote
- event
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/283—Processing of data at an internetworking point of a home automation network
- H04L12/2832—Interconnection of the control functionalities between home networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
背景技术Background technique
技术领域technical field
本发明整体涉及计算机系统领域。更具体地讲,本发明涉及用于实现IoT远程控制应用的系统和方法。The present invention relates generally to the field of computer systems. More specifically, the present invention relates to systems and methods for implementing IoT remote control applications.
相关技术related technology
“物联网”是指互联网基础架构内可唯一识别的嵌入式装置的互连。最终,IoT预计将导致新的种类广泛的应用,在这些应用中,几乎任何类型的物理事物可以提供关于其本身或其周围环境的信息和/或可以通过互联网上的客户端装置受到远程控制。The "Internet of Things" refers to the interconnection of uniquely identifiable embedded devices within an Internet infrastructure. Ultimately, the IoT is expected to lead to a wide variety of new applications in which virtually any type of physical thing can provide information about itself or its surroundings and/or can be controlled remotely via client devices over the Internet.
由于与连接性、功率和标准化缺乏有关的一些问题,IoT的开发和采用一直比较缓慢。例如,IoT开发和采用所面临的一个障碍是,没有标准平台允许开发人员设计和提供新的IoT装置及服务。为了进入IoT市场,开发人员必须从头开始设计整个IoT平台,包括支持所需的IoT实现需要的网络协议和基础架构、硬件、软件和服务。因此,IoT装置的每一家提供商都使用专有技术来设计和连接IoT装置,这使得对最终用户而言,采用多种类型的IoT装置是一项繁重的工作。IoT采用所面临的另一个障碍是与IoT装置的连接和供电有关的困难。例如,连接诸如冰箱、车库开门器、环境传感器、家用安全传感器/控制器等的电器需要电源来为每个连接的IoT装置供电,并且这种电源通常定位不太方便(例如,AC插座通常不在冰箱内)。IoT development and adoption has been slow due to several issues related to connectivity, power, and lack of standardization. For example, one barrier to IoT development and adoption is the lack of standard platforms that allow developers to design and deliver new IoT devices and services. To enter the IoT market, developers must design an entire IoT platform from the ground up, including the network protocols and infrastructure, hardware, software, and services needed to support the desired IoT implementation. Therefore, each provider of IoT devices uses proprietary technology to design and connect IoT devices, which makes it a burdensome work for end users to adopt various types of IoT devices. Another obstacle facing IoT adoption is the difficulty related to connecting and powering IoT devices. For example, connecting appliances such as refrigerators, garage door openers, environmental sensors, home security sensors/controllers, etc. requires power to power each connected IoT device, and such power is often not conveniently located (e.g., AC outlets are often not in in the refrigerator).
附图说明Description of drawings
可结合下列附图从以下具体实施方式更好地理解本发明,其中:The present invention can be better understood from the following detailed description in conjunction with the following drawings, wherein:
图1A至图1B示出了IoT系统架构的不同实施方案;Figures 1A-1B illustrate different implementations of IoT system architectures;
图2示出了根据本发明的一个实施方案的IoT装置;Figure 2 shows an IoT device according to one embodiment of the present invention;
图3示出了根据本发明的一个实施方案的IoT中心;Figure 3 shows an IoT hub according to one embodiment of the present invention;
图4A至图4B示出了用于控制和收集来自IoT装置的数据并生成通知的本发明实施方案;Figures 4A-4B illustrate embodiments of the present invention for controlling and collecting data from IoT devices and generating notifications;
图5示出了用于收集来自IoT装置的数据并从IoT中心和/或IoT服务生成通知的本发明实施方案;Figure 5 illustrates an embodiment of the invention for collecting data from IoT devices and generating notifications from IoT hubs and/or IoT services;
图6示出了用于检测中心连接性丢失并通知用户的本发明实施方案;Figure 6 shows an embodiment of the invention for detecting a loss of central connectivity and notifying the user;
图7A至7C示出了具有LED灯和USB端口的微型IoT中心装置的不同实施方案;Figures 7A to 7C show different embodiments of miniature IoT hub devices with LED lights and USB ports;
图8示出了使用IoT装置控制电子设备和其他设备的方法;FIG. 8 illustrates a method of controlling electronic devices and other devices using IoT devices;
图9示出了用于在不同小区运营商之间进行选择的IoT中心的一个实施方案;Figure 9 shows an embodiment of an IoT hub for selecting between different cell operators;
图10示出了用于在不同小区运营商之间进行选择的方法的一个实施方案;Figure 10 shows an embodiment of a method for selecting between different cell operators;
图11示出了来自IoT装置的IoT中心过滤事件的一个实施方案;Figure 11 shows an embodiment of IoT hub filtering events from IoT devices;
图12示出了用于收集与IoT系统内的用户行为有关的数据的IoT中心的一个实施方案;Figure 12 illustrates an embodiment of an IoT hub for collecting data related to user behavior within an IoT system;
图13示出了安全架构的一个实施方案的高级视图;Figure 13 shows a high-level view of one embodiment of a security architecture;
图14示出了其中使用用户身份模块(SIM)在IoT装置上存储密钥的架构的一个实施方案;Figure 14 shows one embodiment of an architecture in which a Subscriber Identity Module (SIM) is used to store keys on an IoT device;
图15A示出了其中使用条形码或QR码注册IoT装置的一个实施方案;Figure 15A shows an embodiment where a barcode or QR code is used to register an IoT device;
图15B示出了其中使用条形码或QR码进行配对的一个实施方案;Figure 15B shows an embodiment where a barcode or QR code is used for pairing;
图16示出了用于使用IoT中心对SIM进行编程的方法的一个实施方案;Figure 16 illustrates one embodiment of a method for programming a SIM using an IoT hub;
图17示出了用于注册具有IoT中心和IoT服务的IoT装置的方法的一个实施方案;并且17 illustrates one embodiment of a method for registering an IoT device with an IoT hub and an IoT service; and
图18示出了用于加密待传输到IoT装置的数据的方法的一个实施方案。Figure 18 illustrates one embodiment of a method for encrypting data to be transmitted to an IoT device.
具体实施方式detailed description
在下面的描述中,出于解释的目的,本文陈述了许多特定细节以便透彻理解下文描述的本发明的实施方案。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明的实施方案。在其他情况下,为免模糊本发明的实施方案的基本原理,已熟知的结构和装置以框图形式示出。In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention described below. It will be readily apparent, however, to one skilled in the art that embodiments of the 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 not to obscure the underlying principles of the embodiments of the invention.
本发明的一个实施方案包括一种物联网(IoT)平台,开发人员可以利用该平台来设计和构建新的IoT装置及应用。具体地讲,一个实施方案包括用于IoT装置的基础硬件/软件平台,该平台包括预定义的网络协议栈和IoT中心,IoT装置通过该IoT中心连接到互联网。此外,一个实施方案包括IoT服务,可以通过该IoT服务如下所述地访问和管理IoT中心和连接的IoT装置。此外,IoT平台的一个实施方案包括用以访问和配置IoT服务、中心和连接的装置的IoT应用或Web应用(例如,在客户端装置上执行)。现有的在线零售商和其他网站运营商可以利用本文所述的IoT平台容易地为现有用户群提供独特的IoT功能。One embodiment of the present invention includes an Internet of Things (IoT) platform that developers can use to design and build new IoT devices and applications. Specifically, one embodiment includes a basic hardware/software platform for an IoT device, which includes a predefined network protocol stack and an IoT hub through which the IoT device is connected to the Internet. Furthermore, one embodiment includes an IoT service through which an IoT hub and connected IoT devices can be accessed and managed as described below. Furthermore, one embodiment of the IoT platform includes an IoT application or web application (eg, executing 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 offer unique IoT capabilities to their existing user base.
图1A示出了其上可以实现本发明的实施方案的架构平台的概览。具体地讲,图示实施方案包括多个IoT装置101-105,这些IoT装置通过本地通信信道130通信地连接到中央IoT中心110,该中央IoT中心本身通过互联网220通信地连接到IoT服务120。IoT装置101-105中的每一个最初可以(例如,使用下文描述的配对技术)与IoT中心110配对以使能本地通信信道130中的每一个。在一个实施方案中,IoT服务120包括最终用户数据库122,该最终用户数据库用于维护用户账户信息以及从每个用户的IoT装置收集的数据。例如,如果IoT装置包括传感器(例如,温度传感器、加速度计、热传感器、运动探测器等),则数据库122可以连续更新以存储由IoT装置101-105收集的数据。然后,存储在数据库122中的数据可以通过安装在用户装置135上的IoT应用或浏览器(或通过桌面或其他客户端计算机系统)被最终用户访问,以及通过Web客户端(例如,诸如订阅了IoT服务120的网站130)访问。Figure 1A shows an overview of an architectural platform on which embodiments of the present invention may be implemented. In particular, the illustrated embodiment includes a plurality of IoT devices 101 - 105 that are communicatively connected through a local communication channel 130 to a central IoT hub 110 , which itself is communicatively connected to an IoT service 120 through the Internet 220 . Each of IoT devices 101 - 105 may initially pair with IoT hub 110 (eg, using the pairing techniques described below) to enable each of 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 devices include sensors (eg, temperature sensors, accelerometers, thermal sensors, motion detectors, etc.), database 122 may be continuously updated to store data collected by IoT devices 101-105. The data stored in the database 122 can then be accessed by the end user through an IoT application or browser installed on the user device 135 (or through a desktop or other client computer system), as well as through a web client (e.g., such as a subscribed The website 130) of the IoT service 120 is accessed.
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 - 105 may be equipped with various types of sensors to collect information about themselves and their surroundings, and provide the collected information to the IoT service 120 , the user device 135 , and/or the external website 130 via the IoT hub 110 . Some of the IoT devices 101 - 105 may perform specified functions in response to control commands sent through the IoT hub 110 . Various specific examples of information collected by IoT devices 101-105, as well as control commands, are provided below. In one embodiment described below, the IoT device 101 is a user input device designed to record user selections and send the user selections to the IoT service 120 and/or website.
在一个实施方案中,IoT中心110包括蜂窝无线电装置,以经由诸如4G(例如,移动WiMAX、LTE)或5G蜂窝数据服务的蜂窝服务115建立到互联网220的连接。作为另外一种选择或除此之外,IoT中心110可以包括WiFi无线电装置,以通过将IoT中心110连接到互联网(例如,经由向最终用户提供互联网服务的互联网服务提供商)的WiFi接入点或路由器116建立WiFi连接。当然,应当注意,本发明的基本原理不限于任何特定类型的通信信道或协议。In one embodiment, the IoT hub 110 includes a cellular radio to establish a connection to the Internet 220 via cellular services 115 such as 4G (eg, mobile WiMAX, LTE) or 5G cellular data services. Alternatively or in addition, IoT hub 110 may include a WiFi radio to connect IoT hub 110 to the Internet via a WiFi access point (e.g., via an Internet service provider that provides Internet service to end users). Or the router 116 establishes a WiFi connection. Of course, it should be noted that the underlying principles of the invention are not limited to any particular type of communication channel or protocol.
在一个实施方案中,IoT装置101-105是能够使电池电量长时间(例如,数年)运行的超低功率装置。为了节省功率,可以使用低功率无线通信技术诸如蓝牙低功耗(LE)来实现本地通信信道130。在该实施方案中,IoT装置101-105中的每一个和IoT中心110配备有蓝牙LE无线电装置和协议栈。In one embodiment, IoT devices 101-105 are ultra-low power devices capable of running on battery power for extended periods of time (eg, years). To save 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-105 and the IoT hub 110 are equipped with a Bluetooth LE radio and protocol stack.
如上所述,在一个实施方案中,该IoT平台包括在用户装置135上执行以允许用户访问和配置所连接的IoT装置101-105、IoT中心110和/或IoT服务120的IoT应用或Web应用。在一个实施方案中,该应用或Web应用可以由网站130的运营者设计为向其用户群提供IoT功能。如图所示,该网站可以维护包含与每个用户相关的账户记录的用户数据库131。As noted above, in one embodiment, the IoT platform includes an IoT application or web application that executes on user device 135 to allow the user to access and configure connected IoT devices 101-105, IoT hub 110, and/or IoT service 120 . In one embodiment, the application or web application may be designed by the operator of the website 130 to provide IoT functionality to its user base. As shown, the website may maintain a user database 131 containing account records associated with each user.
图1B示出了用于多个IoT中心110-111,190的附加连接选项。在该实施方案中,单个用户可以在单个用户驻地180(例如,用户的家或工作地点)处现场安装有多个中心110-111。可以这样做来(例如)扩展连接所有IoT装置101-105所需的无线范围。如图所示,如果用户具有多个中心110,111,则它们可以经由本地通信信道(例如,Wifi、以太网、电力线网络等)连接。在一个实施方案中,中心110-111中的每一个可以通过蜂窝连接115或WiFi连接116(图1B中未明确示出)来建立与IoT服务120的直接连接。作为另外一种选择或除此之外,IoT中心中的一者诸如IoT中心110可以充当“主”中心,其向用户驻地180上的所有其他IoT中心诸如IoT中心111提供连接性和/或本地服务(如连接IoT中心110和IoT中心111的虚线所示)。例如,主IoT中心110可以是建立与IoT服务120的直接连接的唯一IoT中心。在一个实施方案中,只有“主”IoT中心110配备有蜂窝通信接口以建立与IoT服务120的连接。这样,IoT服务120和其他IoT中心111之间的所有通信将流经主IoT中心110。作为这个角色,主IoT中心110可以具有附加的程序代码,以对在其他IoT中心111和IoT服务120之间交换的数据执行过滤操作(例如,在可能时,本地服务于一些数据请求)。FIG. 1B shows additional connectivity options for multiple IoT hubs 110-111,190. In this embodiment, a single user may have multiple centers 110-111 installed on-site at a single user premises 180 (eg, the user's home or workplace). This can be done, for example, to extend the wireless range required to connect all IoT devices 101-105. As shown, if a user has multiple hubs 110, 111, they may be connected via a local communication channel (eg, Wifi, Ethernet, powerline network, etc.). In one embodiment, each of hubs 110-111 may establish a direct connection to IoT service 120 through cellular connection 115 or WiFi connection 116 (not explicitly shown in FIG. 1B ). Alternatively or in addition, one of the IoT centers such as IoT center 110 may act as a "master" center providing connectivity and/or localization to all other IoT centers on customer premises 180 such as IoT center 111. service (as shown by the dotted line connecting IoT hub 110 and IoT hub 111 ). For example, the master IoT hub 110 may be the only IoT hub establishing a direct connection with the IoT service 120 . In one embodiment, only the "master" IoT hub 110 is equipped with a cellular communication interface to establish a connection with the IoT service 120 . In this way, all communications between the IoT service 120 and the other IoT hubs 111 will flow through the master IoT hub 110 . In this role, the master IoT hub 110 may have additional program code to perform filtering operations on data exchanged between other IoT hubs 111 and IoT services 120 (eg, service some data requests locally when possible).
不管IoT中心110-111如何连接,在一个实施方案中,IoT服务120将逻辑地将中心与用户相关,并且将所有附接的IoT装置101-105组合在能经由具有安装的应用135的用户装置访问的单个综合性用户界面(和/或基于浏览器的界面)下。Regardless of how the IoT hubs 110-111 are connected, in one embodiment, the IoT service 120 will logically associate the hubs with users and group all attached IoT devices 101-105 in a way that can be accessed via the user device with the application 135 installed. under a single comprehensive user interface (and/or browser-based interface) for access.
在该实施方案中,主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 center 110 and one or more slave IoT centers 111 may be connected by a local network, which may be a WiFi network 116, Ethernet, and/or using a power line communication (PLC) network (e.g., where All or part of the network runs through the customer's power lines). Additionally, for the IoT hubs 110-111, each of the IoT devices 101-105 may be interconnected with the IoT hubs 110-111 using any type of local network channel, such as WiFi, Ethernet, PLC, or Bluetooth LE, among others.
图1B还示出了安装在第二用户驻地181处的IoT中心190。几乎无限数量的这种IoT中心190可以被安装和配置,以收集来自世界各地的用户驻地处IoT装置191-192的数据。在一个实施方案中,可以为同一用户配置两个用户驻地180-181。例如,一个用户驻地180可以是用户的主要住宅,并且另一个用户驻地181可以是用户的度假屋。在这种情况下,IoT服务120将逻辑地将IoT中心110-111,190与用户相关,并将所有附接的IoT装置101-105,191-192组合在能经由具有安装的应用135的用户装置访问的单个综合性用户界面(和/或基于浏览器的界面)下。FIG. 1B also shows an IoT hub 190 installed at the second customer premises 181 . A virtually unlimited number of such IoT hubs 190 can be installed and configured to collect data from IoT devices 191-192 at customer premises around the world. In one embodiment, two customer premises 180-181 may be configured for the same user. For example, one customer premises 180 may be the user's primary residence and another customer premises 181 may be the user's vacation home. In this case, the IoT service 120 will logically relate the IoT hub 110-111, 190 to the user and group all attached IoT devices 101-105, 191-192 into a single under the comprehensive user interface (and/or browser-based interface).
如图2所示,IoT装置101的一个示例性实施方案包括用于存储程序代码和数据201-203的存储器210、以及用于执行程序代码和处理数据的低功率微控制器200。存储器210可以是诸如动态随机存取存储器(DRAM)的易失性存储器,或者可以是诸如闪存存储器的非易失性存储器。在一个实施方案中,非易失性存储器可用于永久存储,并且易失性存储器可用于在运行时执行程序代码和数据。此外,存储器210可以集成在低功率微控制器200内,或者可以经由总线或通信结构耦接到低功率微控制器200。本发明的基本原理不限于存储器210的任何特定实现方式。As shown 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 200 for executing the program code and processing data. Memory 210 may be a volatile memory such as dynamic random access memory (DRAM), or may be a nonvolatile memory such as flash memory. In one embodiment, non-volatile memory can be used for permanent storage and volatile memory can be used for execution of program code and data at runtime. Furthermore, the memory 210 may be integrated within the low-power microcontroller 200 or may be coupled to the low-power microcontroller 200 via a bus or a communication structure. The underlying principles of the invention are not limited to any particular implementation of memory 210 .
如图所示,所述程序代码可以包括定义要由IoT装置201执行的一组应用特定的功能的应用程序代码203、以及包括可由IoT装置101的应用开发人员利用的一组预定义构建块的库代码202。在一个实施方案中,库代码202包括实现IoT装置所需的一组基本功能,诸如用于使得能够实现每个IoT装置101和IoT中心110之间的通信的通信协议栈201。如上所述,在一个实施方案中,通信协议栈201包括蓝牙LE协议栈。在该实施方案中,蓝牙LE无线电装置和天线207可以被集成在低功率微控制器200内。然而,本发明的基本原理不限于任何特定的通信协议。As shown, the program code may include application code 203 defining a set of application-specific functions to be performed by the IoT device 201, and a set of predefined building blocks that may be utilized by an application developer of the IoT device 101. Library code 202. In one embodiment, library code 202 includes a basic set of functions required to implement IoT devices, such as a communication protocol stack 201 for enabling communication between each IoT device 101 and IoT hub 110 . As noted above, in one embodiment, the 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 underlying principles of the invention are not limited to any particular communication protocol.
图2中所示的具体实施方案还包括用以接收用户输入并向低功率微控制器提供该用户输入的多个输入装置或传感器210,低功率微控制器根据应用代码203和库代码202处理该用户输入。在一个实施方案中,输入装置中的每一个包括用于向最终用户提供反馈的LED 209。The specific embodiment shown in FIG. 2 also includes a plurality of input devices or sensors 210 for receiving user input and providing the user input to the low power microcontroller, which processes according to the application code 203 and library code 202. The user enters. In one embodiment, each of the input devices includes an LED 209 for providing 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 button cell is used. However, in alternative embodiments, an integrated rechargeable battery (eg, charged by connecting the IoT device to an AC power source (not shown)) may be used.
还提供用于产生音频的扬声器205。在一个实施方案中,低功率微控制器299包括用于解码压缩音频流(例如,诸如MPEG-4/高级音频编码(AAC)流)以在扬声器205上生成音频的音频解码逻辑部件。作为另外一种选择,低功率微控制器200和/或应用代码/数据203可以包括数字采样的音频片段,以在用户经由输入装置210输入选择时向最终用户提供言语反馈。A speaker 205 for producing audio is also provided. In one embodiment, the low power microcontroller 299 includes audio decoding logic for decoding a compressed audio stream (eg, such as an MPEG-4/Advanced Audio Coding (AAC) stream) to generate audio on the speaker 205 . Alternatively, the low power microcontroller 200 and/or application code/data 203 may include digitally sampled audio segments to provide verbal feedback to the end user as the user enters selections via the input device 210 .
在一个实施方案中,基于IoT装置101被设计用于的特定应用,可以在IoT装置101上包括一个或多个其他/替代的I/O装置或传感器250。例如,可以包括环境传感器以测量温度、压力、湿度等。如果将IoT装置用作安全装置,则可以包括安全传感器和/或门锁开启器。当然,这些示例仅仅是为了举例说明的目的而提供的。本发明的基本原理不限于任何特定类型的IoT装置。事实上,考虑到配备有库代码202的低功率微控制器200的高可编程性质,应用开发人员可以容易地开发新的应用代码203和新的I/O装置250以对于几乎任何类型的IoT应用与低功率微控制器交互。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 particular 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 an IoT device is used as a security device, it can include security sensors and/or door lock openers. Of course, these examples are provided for illustration purposes only. The underlying principles of the invention are not limited to any particular type of IoT device. In fact, given the highly programmable nature of the low-power microcontroller 200 equipped with library code 202, application developers can easily develop new application code 203 and new I/O devices 250 for almost any type of IoT The application interacts with a low-power microcontroller.
在一个实施方案中,低功率微控制器200还包括用于存储加密密钥的安全密钥存储装置,该加密密钥用于加密通信和/或生成签名。作为另外一种选择,密钥可以被保护在用户身份模块(SIM)中。In one embodiment, the low power microcontroller 200 also includes secure key storage for storing encryption keys used to encrypt communications and/or generate signatures. Alternatively, the keys may be protected in a Subscriber Identity Module (SIM).
在一个实施方案中,包括唤醒接收器207以将IoT装置从几乎不消耗功率的超低功率状态中唤醒。在一个实施方案中,唤醒接收器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 an ultra-low power state that consumes little power. In one embodiment, the wake-up receiver 207 is configured to bring the IoT device 101 out of the low power state in response to receiving a wake-up signal from a wake-up transmitter 307 configured on the IoT hub 110 as shown in FIG. 3 . Specifically, in one embodiment, transmitter 307 and receiver 207 together form an electrical resonant transformer circuit, such as a Tesla coil. In operation, when the hub 110 needs to wake the IoT device 101 from a very low power state, energy is sent from the transmitter 307 to the receiver 207 via a radio frequency signal. Due to this energy transfer, the IoT device 101 can be configured to consume little power while in a low power state, since it does not need to continuously "listen" for a signal from the hub (such as with a network protocol that allows the device to be woken up via a network signal). case). More specifically, microcontroller 200 of IoT device 101 may be configured to wake up after being effectively powered down by using energy sent electrically from transmitter 307 to receiver 207 .
如图3所示,IoT中心110还包括用于存储程序代码和数据305的存储器317、以及用于执行程序代码和处理数据的硬件逻辑部件301诸如微控制器。广域网(WAN)接口302和天线310将IoT中心110连接到蜂窝服务115。作为另外一种选择,如上所述,IoT中心110还可以包括本地网络接口(未示出),诸如WiFi接口(和WiFi天线)或以太网接口,用于建立局域网通信信道。在一个实施方案中,硬件逻辑部件301还包括用于存储加密密钥的安全密钥存储装置,该加密密钥用于加密通信和生成/验证签名。作为另外一种选择,密钥可以被保护在用户身份模块(SIM)中。As shown in FIG. 3 , the IoT hub 110 also includes a memory 317 for storing program codes and data 305 , and a hardware logic component 301 such as a microcontroller for executing program codes and processing data. Wide area network (WAN) interface 302 and antenna 310 connect IoT hub 110 to cellular service 115 . Alternatively, as mentioned above, the IoT center 110 may also include a local network interface (not shown), such as a WiFi interface (and WiFi antenna) or an Ethernet interface, for establishing a local area network communication channel. In one embodiment, the hardware logic unit 301 also includes secure key storage for storing encryption keys used to encrypt communications and generate/verify signatures. Alternatively, the keys may be protected in a Subscriber Identity Module (SIM).
本地通信接口303和天线311建立与IoT装置101-105中的每一个的本地通信信道。如上所述,在一个实施方案中,本地通信接口303/天线311实施蓝牙LE标准。然而,本发明的基本原理不限于用于建立与IoT装置101-105的本地通信信道的任何具体协议。虽然在图3中被示出为单独的单元,但WAN接口302和/或本地通信接口303可以嵌入在与硬件逻辑部件301相同的芯片内。Local communication interface 303 and antenna 311 establish a local communication channel with each of IoT devices 101-105. As noted above, in one embodiment, the local communication interface 303/antenna 311 implements the Bluetooth LE standard. However, the underlying principles of the invention are not limited to any particular protocol for establishing a local communication channel with IoT devices 101-105. Although shown as separate units in FIG. 3 , the WAN interface 302 and/or the local communication interface 303 may be embedded within the same chip as the hardware logic component 301 .
在一个实施方案中,程序代码和数据包括通信协议栈308,该协议栈可以包括分开的栈来用于通过本地通信接口303和WAN接口302进行通信。此外,可以将装置配对程序代码和数据306存储在存储器中以允许IoT中心与新的IoT装置配对。在一个实施方案中,为每个新的IoT装置101-105分配唯一代码,在配对过程中将该唯一代码传送到IoT中心110。例如,该唯一代码可以嵌入在IoT装置上的条形码中,并且可以由条形码读取器106读取,或者可以通过本地通信信道130传送。在替代实施方案中,唯一ID代码可以例如经由射频ID(RFID)或近场通信(NFC)从IoT装置发送,并且IoT中心具有合适的接收器,以便当IoT装置101在IoT中心110的几英寸范围内移动时检测代码。In one embodiment, the program code and data include 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 new IoT devices. In one embodiment, each new IoT device 101-105 is assigned a unique code that is communicated to IoT hub 110 during the pairing process. For example, this unique code can be embedded in a barcode on the IoT device and can be read by barcode reader 106 or can be transmitted over local communication channel 130 . In an alternative embodiment, the unique ID code may be sent from the IoT device, for example via radio frequency ID (RFID) or near field communication (NFC), and the IoT hub has a suitable receiver so that when the IoT device 101 is within a few inches of the IoT hub 110 Detect code when moving within range.
在一个实施方案中,一旦已经传送该唯一ID,IoT中心110就可以通过以下方式来验证该唯一ID:查询本地数据库(未示出)、执行散列来验证该代码是否可接受、以及/或者与IoT服务120、用户装置135和/或网站130通信来校验该ID代码。在一个实施方案中,一旦经校验,IoT中心110就和IoT装置101配对并且将配对数据存储在存储器317中(如上所述,该存储器可以包括非易失性存储器)。一旦配对完成,IoT中心110就可以与IoT装置101连接以执行本文所述的各种IoT功能。In one embodiment, once the unique ID has been communicated, IoT hub 110 may verify the unique ID by querying a local database (not shown), performing a hash to verify that the code is acceptable, and/or The ID code is verified in communication with IoT service 120, user device 135 and/or website 130. In one embodiment, once verified, IoT hub 110 pairs with IoT device 101 and stores the pairing data in memory 317 (which, as noted above, 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中心110和基本硬件/软件平台,以允许开发人员容易地设计新的IoT服务。具体地讲,除了IoT中心110之外,还可以为开发人员提供软件开发工具包(SDK)来更新在中心110内执行的程序代码和数据305。另外,对于IoT装置101,SDK可以包括针对基础IoT硬件(例如,图2所示的低功率微控制器200和其他部件)设计的一组广泛的库代码202以有利于设计各种不同类型的应用101。在一个实施方案中,SDK包括开发人员仅需要在其中为IoT装置指定输入和输出的图形设计界面。已经为开发人员准备好了所有联网代码,包括允许IoT装置101连接到中心110和服务120的通信栈201。此外,在一个实施方案中,SDK还包括用于促进为移动装置(例如,iPhone和Android装置)设计应用的库代码基。此外,在一个实施方案中,SDK还包括用于促进驻留在IOT服务120或网站130内的应用和API的设计的库代码基。In one embodiment, an organization running IoT service 120 may provide IoT hub 110 and a basic hardware/software platform to allow developers to easily design new IoT services. Specifically, in addition to the IoT hub 110 , a software development kit (SDK) may be provided for developers to update program codes and data 305 executed within the hub 110 . Additionally, for the IoT device 101, the SDK may include an extensive set of library code 202 designed for the underlying IoT hardware (e.g., the low-power microcontroller 200 and other components shown in FIG. 2 ) to facilitate the design of various types of Apps 101. In one embodiment, the SDK includes a graphical design interface where the developer only needs to specify the inputs and outputs for the IoT device. All networking code is ready for the developer, including the communication stack 201 that allows the IoT device 101 to connect to the hub 110 and service 120 . Additionally, in one embodiment, the SDK also includes a library code base for facilitating the design of applications for mobile devices (eg, iPhone and Android devices). Additionally, in one embodiment, the SDK also includes a library code base for facilitating the design of applications and APIs residing within the IOT service 120 or website 130 .
在一个实施方案中,IoT中心110管理IoT装置101-105和IoT服务120之间的连续双向数据流。在需要实时更新到IoT装置101-105/从这些IoT装置更新的情况下(例如,在用户需要查看安全装置或环境读数的当前状态的情况下),IoT中心可以保持打开的TCP套接字以提供对用户装置135和/或外部网站130的定期更新。用于提供更新的具体联网协议可以根据底层应用的需求进行调整。例如,在某些情况下,如果具有连续双向流可能没有意义,则可以使用简单的请求/响应协议来在需要时收集信息。In one embodiment, IoT hub 110 manages a continuous bi-directional data flow between IoT devices 101 - 105 and IoT service 120 . In cases where real-time updates to/from IoT devices 101-105 are required (for example, in cases where a user needs to view the current status of a security device or environmental readings), the IoT hub can maintain open TCP sockets to Periodic updates to user devices 135 and/or external websites 130 are provided. The specific networking protocol used to deliver updates can be tuned according to the needs of the underlying application. For example, in some cases where it might not make sense to have a continuous bi-directional flow, 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 can be automatically updated over the network. Specifically, when a new update is available for IoT hub 110, it can automatically download and install the update from IoT service 120. It can first copy the updated code into local memory, run and verify the update, and then replace the older program code. Similarly, when updates are available for each of IoT devices 101-105, those updates may initially be downloaded by IoT hub 110 and pushed to each of IoT devices 101-105. Each IoT device 101 - 105 can then apply the update and report the results of the update back to the IoT hub 110 in a manner similar to that described above for the IoT hub. If the update is successful, IoT hub 110 may delete the update from its memory and record the latest code version installed on each IoT device (eg, so that it can continue to check each IoT device for new updates).
在一个实施方案中,IoT中心110通过A/C电源供电。具体地讲,IoT中心110可以包括具有变压器的供电单元390,其中变压器用于将通过A/C电源线提供的A/C电压转换为较低的DC电压。In one embodiment, IoT hub 110 is powered by A/C power. Specifically, the IoT center 110 may include a power supply unit 390 having a transformer for converting an A/C voltage supplied through an A/C power line into a lower DC voltage.
图4A示出了使用IoT系统执行通用远程控制操作的本发明的一个实施方案。具体地讲,在该实施方案中,一组IoT装置101-103分别配备有红外(IR)和/或射频(RF)增强器401-403,用于发送远程控制代码以控制各种不同类型的电子设备,包括空调/加热器430、照明系统431和视听设备432等等。在图4A所示的实施方案中,IoT装置101-103还分别配备有用于检测其控制的装置的操作的传感器404-406,如下所述。FIG. 4A shows an embodiment of the present invention using an IoT system to perform a general remote control operation. Specifically, in this embodiment, a set of IoT devices 101-103 are equipped with infrared (IR) and/or radio frequency (RF) blasters 401-403, respectively, for sending remote control codes to control various types of Electronic equipment, including air conditioner/heater 430, lighting system 431, audio-visual equipment 432 and so on. In the embodiment shown in Figure 4A, 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的当前温度/湿度数据,并且响应性地将命令发送到IoT装置101,以根据所需温度/湿度控制IR/RF增强器401。例如,如果温度低于所需温度,那么控制逻辑部件412可以经由IR/RF增强器401向空调/加热器发送命令以升高温度(例如,通过关闭空调或打开加热器)。命令可包括存储在IoT中心110上的数据库413中的必要的远程控制代码。作为另外一种选择或除此之外,IoT服务421可以实现控制逻辑部件421,以基于指定的用户偏好和存储的控制代码422控制电子设备430-432。For example, sensor 404 in IoT device 101 may be a temperature and/or humidity sensor for sensing current temperature/humidity and responsively controlling air conditioner/heater 430 based on the current desired temperature. In this embodiment, the air conditioner/heater 430 is designed to be controlled via a remote control device (typically a remote control with a temperature sensor embedded in itself). In one embodiment, the user provides IoT hub 110 with the desired temperature via an application or browser installed on user device 135 . Control logic component 412 executing on IoT hub 110 receives current temperature/humidity data from sensor 404 and responsively sends commands to IoT device 101 to control IR/RF blaster 401 according to the desired temperature/humidity. For example, if the temperature is lower than desired, the control logic 412 may send commands via the IR/RF blaster 401 to the air conditioner/heater to increase the temperature (eg, by turning off the air conditioner or turning on the heater). The command may include necessary remote control codes stored in the database 413 on the IoT hub 110 . Alternatively or in addition, IoT service 421 may implement control logic component 421 to control electronic devices 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的当前亮度水平(例如,如果当前亮度过低则增加照明,或者如果当前亮度过高则减少照明;或者仅打开或关闭灯)。The IoT device 102 in the example shown is used to control lighting 431 . In particular, the sensor 405 in the IoT device 102 may be a light sensor or photodetector configured to detect the current brightness of light produced by a light fixture 431 (or other lighting device). A user may specify a desired lighting level (including an indication of on or off) for IoT hub 110 via user device 135 . In response, control logic 412 will send commands to IR/RF booster 402 to control the current brightness level of lamp 431 (e.g., increase lighting if current brightness is too low, or decrease lighting if current brightness is too high; or just turn on or turn off the lights).
所示示例中的IoT装置103被配置为控制视听设备432(例如,电视、A/V接收器、有线/卫星接收器、AppleTVTM等)。IoT装置103中的传感器406可以是用于检测当前环境音量水平的音频传感器(例如,麦克风和相关逻辑)和/或用于基于电视生成的光(例如,通过测量指定频谱内的光)来检测电视是开启还是关闭的光传感器。作为另外一种选择,传感器406可包括连接到视听设备的温度传感器,以基于检测到的温度来检测音频设备是开启还是关闭。再次,响应于经由用户装置135的用户输入,控制逻辑部件412可以经由IoT装置103的IR增强器403向视听设备发送命令。The IoT device 103 in the example shown is configured to control audio-visual equipment 432 (eg, television, A/V receiver, cable/satellite receiver, AppleTV ™ , etc.). The sensor 406 in the IoT device 103 may be an audio sensor (e.g., a microphone and associated logic) for detecting the current ambient volume level and/or for detecting noise based on the light generated by the television (e.g., by measuring light within a specified frequency spectrum). A light sensor for whether the TV is on or off. Alternatively, sensor 406 may include a temperature sensor connected to the audiovisual device to detect whether the audio device is on or off based on the detected temperature. Again, in response to user input via the user device 135 , the control logic component 412 may send commands to the audiovisual device via the IR blaster 403 of the IoT device 103 .
应当指出的是,上述仅仅是本发明的一个实施方案的示例性示例。本发明的基本原理不限于由IoT装置控制的任何特定类型的传感器或设备。It should be noted that the foregoing is merely an illustrative example of one embodiment of the present invention. The underlying principles of the invention are not limited to any particular type of sensor or device controlled by an IoT device.
在IoT装置101-103经由蓝牙LE连接耦接到IoT中心110的实施方案中,传感器数据和命令通过蓝牙LE信道发送。然而,本发明的基本原理不限于蓝牙LE或任何其他通信标准。In an embodiment where IoT devices 101-103 are coupled to IoT hub 110 via a Bluetooth LE connection, sensor data and commands are sent over a Bluetooth LE channel. However, the underlying principles of the 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检索所需的IR/RF代码(例如,使用唯一ID识别每个电子设备件)。In one embodiment, the control codes required to control each piece of electronic equipment are stored in database 413 on IoT hub 110 and/or database 422 on IoT service 120 . As shown in FIG. 4B , control codes may be provided to IoT hub 110 from control code master database 422 for different pieces of equipment maintained on IoT service 120 . The end user may specify the type of electronic (or other) device to be controlled by an application or browser executing on the user device 135, and in response, the remote control code learning module 491 on the IoT hub may learn from the The remote control code database 492 retrieves the required IR/RF codes (eg, using a unique ID to identify each piece of electronic equipment).
此外,在一个实施方案中,IoT中心110配备有IR/RF接口490,以允许远程控制代码学习模块491直接从随电子设备提供的原始远程控制器495“学习”新的远程控制代码。例如,如果随空调430提供的原始远程控制器的控制代码未包括在远程控制数据库中,则用户可以经由用户装置135上的应用/浏览器与IoT中心110进行交互,以教导IoT中心110由原始远程控制器生成的各种控制代码(例如,升高温度、降低温度等)。一旦学习了远程控制代码,这些代码可以存储在IoT中心110上的控制代码数据库413中和/或发送回到IoT服务120以包括在中央远程控制代码数据库492中(并且随后被其他用户用于同一空调单元430)。Additionally, in one embodiment, the IoT hub 110 is equipped with an IR/RF interface 490 to allow the remote control code learning module 491 to "learn" new remote control codes directly from the original remote controller 495 provided with the electronic device. For example, if the control code of the original remote controller provided with the air conditioner 430 is not included in the remote control database, the user can interact with the IoT hub 110 via the application/browser on the user device 135 to teach the IoT hub 110 to control the remote controller by the original remote controller. Various control codes generated by the remote controller (eg, increase temperature, decrease temperature, etc.). Once the remote control codes are learned, these codes can be stored in the control code database 413 on the IoT hub 110 and/or sent back to the IoT service 120 to be included in the central remote control code database 492 (and subsequently used by other users for the same air conditioning unit 430).
在一个实施方案中,IoT装置101-103中的每一个具有极小的形状因子,并且可以使用双面胶带、小钉子、磁性附件等将其固定到它们各自的电子设备430-432上或附近。为了控制设备件如空调430,希望将IoT装置101放置得足够远,使得传感器404可以准确地测量家中的环境温度(例如,将IoT装置直接放在空调上将导致当空调器运行时温度测量值过低,或者当加热器运行时温度测量值过高)。相比之下,用于控制照明的IoT装置102可以放置在照明器具431上或附近,以便传感器405检测当前的照明水平。In one embodiment, each of the IoT devices 101-103 has an extremely small form factor and can be secured to or near their respective electronic devices 430-432 using double-sided tape, small nails, magnetic attachments, etc. . In order to control a piece of equipment such as an air conditioner 430, it is desirable to place the IoT device 101 far enough away that the sensor 404 can accurately measure the ambient temperature in the home (e.g., placing the IoT device directly on the air conditioner will result in a temperature measurement of too low, or the temperature measurement is too high when the heater is running). In contrast, IoT device 102 for controlling lighting may be placed on or near lighting fixture 431 so that sensor 405 detects the current lighting level.
除了提供所描述的一般控制功能之外,IoT中心110和/或IoT服务120的一个实施方案向最终用户发送与每个电子设备件的当前状态相关的通知。然后可以在用户的移动装置135的显示器上显示通知,该通知可以是文本消息和/或特定于应用的通知。例如,如果用户的空调已打开很长时间但温度没有改变,那么IoT中心110和/或IoT服务120可以向用户发送空调不能正常工作的通知。如果用户不在家(这可以通过运动传感器或基于当前检测到的用户位置来检测),并且传感器406指示视听设备430已开启,或者传感器405指示灯已点亮,则可以向用户发送通知,询问用户是否想要关闭视听设备432和/或灯431。对于任何设备类型,可能会发送相同类型的通知。In addition to providing the general control functions described, one embodiment of IoT hub 110 and/or IoT service 120 sends notifications to end users related to the current status of each piece of electronic equipment. A notification, which may be a text message and/or an application-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 time but the temperature has not changed, the IoT hub 110 and/or IoT service 120 may send a notification to the user that the air conditioner is not working properly. If the user is not at home (this can be detected by a motion sensor or based on the currently detected user location), and the sensor 406 indicates that the audiovisual device 430 is on, or the sensor 405 light is on, a notification can be sent to the user asking the user Whether you want to turn off audiovisual equipment 432 and/or lights 431 . The same type of notification may be sent for any device type.
一旦用户接收到通知,他/她可以经由用户装置135上的应用或浏览器远程控制电子设备430-432。在一个实施方案中,用户装置135是触摸屏装置,并且应用或浏览器通过用于控制设备430-432的用户可选择的按钮显示远程控制器的图像。在接收到通知时,用户可以打开图形远程控制器并关闭或调整各种不同的设备件。如果经由IoT服务120连接,用户的选择可以从IoT服务120转发至IoT中心110,IoT中心之后将经由控制逻辑部件412来控制设备。作为另外一种选择,用户输入可以从用户装置135直接发送至IoT中心110。Once the user receives the notification, he/she can remotely control the electronic devices 430-432 via an application or browser on the user device 135. In one embodiment, the user device 135 is a touch screen device and the application or browser displays an image of the remote controller with user-selectable buttons for controlling the devices 430-432. Upon receiving the notification, the user can turn on the graphical remote controller and turn off or adjust various pieces of equipment. If connected via IoT service 120 , the user's selection may be forwarded from IoT service 120 to IoT hub 110 , which will then control the device via control logic 412 . Alternatively, user input may be sent directly from user device 135 to IoT hub 110 .
在一个实施方案中,用户可以对IoT中心110上的控制逻辑部件412进行编程,以执行关于电子设备430-432的各种自动控制功能。除了如上所述保持期望的温度、亮度水平和音量水平之外,如果检测到某些条件,则控制逻辑部件412可以自动关闭电子设备。例如,如果控制逻辑部件412检测到用户不在家并且空调器不起作用,则其可以自动关闭空调。类似地,如果用户不在家,并且传感器406指示视听设备430已开启或者传感器405指示灯已点亮,那么控制逻辑部件412可以经由IR/RF增强器403和402自动发送命令,以分别关闭视听设备和灯。In one embodiment, a user may program the control logic 412 on the IoT hub 110 to perform various automated control functions with respect to the electronic devices 430-432. In addition to maintaining desired temperatures, brightness levels, and volume levels as described above, control logic 412 may automatically shut down the electronic device if certain conditions are detected. For example, if the control logic component 412 detects that the user is not at home and the air conditioner is not functioning, it may automatically turn off the air conditioner. Similarly, if the user is not at home, and the sensor 406 indicates that the audiovisual device 430 is on or the sensor 405 light is on, then the control logic 412 can automatically send a command via the IR/RF blasters 403 and 402 to turn off the audiovisual device, respectively and lights.
图5示出了配备有用于监视电子设备530-531的传感器503-504的IoT装置104-105的附加实施方案。具体地讲,该实施方案的IoT装置104包括温度传感器503,该温度传感器可放置在炉子530上或附近,以检测炉子何时开启。在一个实施方案中,IoT装置104将通过温度传感器503测得的当前温度发送到IoT中心110和/或IoT服务120。如果炉子被确定为开启超过阈值时间段(例如,基于在该时间段期间测得的温度),那么控制逻辑部件512可以向最终用户装置135发送通知,告知用户炉子530是开启的。在一个实施方案中,最终用户装置135上的基于应用或基于浏览器的代码显示该通知,并为用户提供控制炉子530的能力(例如,发送用于关闭炉子的命令)。Figure 5 shows an additional embodiment of IoT devices 104-105 equipped with sensors 503-504 for monitoring electronic devices 530-531. Specifically, the IoT device 104 of this embodiment includes a temperature sensor 503 that may be placed on or near a furnace 530 to detect when the furnace is turned on. In one embodiment, IoT device 104 sends the current temperature measured by temperature sensor 503 to IoT hub 110 and/or IoT service 120 . If the furnace is determined to be on for more than a threshold time period (eg, based on measured temperatures during the time period), control logic 512 may send a notification to end user device 135 informing the user that furnace 530 is on. In one embodiment, application-based or browser-based code on the end-user device 135 displays the notification and provides the user with the ability to control the oven 530 (eg, send a command to turn off the oven).
此外,在一个实施方案中,IoT装置104可包括控制模块501,以响应于从用户接收到指令而关闭炉子或自动关闭炉子(如果控制逻辑部件512被用户编程为这样做)。在一个实施方案中,控制逻辑部件501包括用于切断炉子530的电或气的开关。然而,在其他实施方案中,控制逻辑部件501可以集成在炉子本身内。Additionally, in one embodiment, IoT device 104 may include control module 501 to shut down the furnace or automatically shut down the furnace (if control logic 512 is programmed by the user to do so) in response to receiving an instruction from a user. In one embodiment, the control logic 501 includes a switch for shutting off electricity or gas to the furnace 530 . However, in other embodiments, the control logic 501 may be integrated within the furnace itself.
图5还示出了具有运动传感器504的IoT装置105,所述运动传感器用于检测某些类型的电子设备诸如洗衣机和/或烘干机的运动。另一种可用传感器是用于检测环境音量水平的音频传感器(例如,麦克风和逻辑部件)。与上述其他实施方案一样,如果满足某些指定条件,则该实施方案可以向最终用户发送通知(例如,如果长时间检测到运动,则指示洗衣机/烘干机未关闭)。虽然在图5中未示出,但IoT装置105还可以配备有控制模块以自动关闭洗衣机/烘干机531(例如,通过关闭电/气)和/或响应于用户输入而进行关闭。FIG. 5 also shows 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 possible sensor is an audio sensor (eg, microphone and logic) for detecting ambient volume levels. As with the other embodiments above, this embodiment can send a notification to the end user if certain specified conditions are met (for example, indicating that the washer/dryer is not turned off if motion is detected for an extended period of time). Although not shown in FIG. 5 , the IoT device 105 may also be equipped with a control module to automatically shut down the washer/dryer 531 (eg, by turning off the electricity/gas) and/or to do so in response to user input.
在一个实施方案中,具有控制逻辑部件和开关的第一IoT装置可被配置为关闭用户家中的所有电源,并且具有控制逻辑部件和开关的第二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 home, and a second IoT device with control logic and switches can be configured to turn off all air in the user's home. . IoT devices with sensors can then be positioned on or near electrical or gas powered devices in the user's home. If the user is notified that a particular piece of equipment has been turned on (eg, the furnace 530), the user can send a command to turn off all electricity or gas in the home to prevent damage. Alternatively, control logic 512 in IoT hub 110 and/or IoT service 120 may be configured to automatically shut down the electricity or gas in such a situation.
在一个实施方案中,IoT中心110和IoT服务120以周期性间隔进行通信。如果IoT服务120检测到与IoT中心110的连接已丢失(例如,由于在指定持续时间内未能从IoT中心接收到请求或响应),它会将该信息传送到最终用户装置135(例如,通过发送文本消息或特定于应用的通知)。该功能在图6中以图形方式示出,其中示出了IoT中心110和IoT服务120之间的连接已被禁用。IoT服务120上的连接监视和通知逻辑部件600检测到连接已经被禁用,并且作为响应,向最终用户装置135发送通知(例如,通过蜂窝通信信道、WiFi或由装置135使用的任何其他通信信道),告知用户连接状态。具体地讲,在一个实施方案中,连接监视逻辑部件检测IoT服务与IoT中心之间的第一通信信道何时变得无效,并且通知逻辑部件响应于连接监视逻辑部件检测到第一通信信道已变得无效而向用户的数据处理装置135发送通知。In one embodiment, IoT hub 110 and IoT service 120 communicate at periodic intervals. If IoT service 120 detects that the connection to IoT hub 110 has been lost (e.g., due to failure to receive a request or response from IoT hub within a specified duration), it will communicate this information to end-user device 135 (e.g., via send text messages or app-specific notifications). This functionality is illustrated graphically in Figure 6, which shows that the connection between IoT hub 110 and IoT service 120 has been disabled. The connection monitoring and notification logic component 600 on the IoT service 120 detects that the connection has been disabled and, in response, sends a notification to the end user device 135 (e.g., via a cellular communication channel, WiFi, or any other communication channel used by the device 135) , to inform the user of the connection status. Specifically, in one embodiment, the connection monitoring logic detects when a first communication channel between the IoT service and the IoT hub becomes invalid, and the notification logic detects when the first communication channel has become invalid in response to the connection monitoring logic detecting that the first communication channel has become invalid. Becomes invalid and sends a notification to the user's data processing device 135 .
然后,用户可以采取步骤来确定连接问题的原因。在IoT中心经由蜂窝网络或WiFi连接的实施方案中,用户可能只需重新启动IoT中心装置110。在一个实施方案中,如果连接监视和通知逻辑部件600在指定时间段内未接收到来自IoT中心的通信,则可以通过尝试确定中心110的状态来查验该中心。在若干次失败的尝试(即,没有来自中心的响应)之后,它可以向最终用户装置135发送通知。The user can then take steps to determine the cause of the connection problem. In embodiments where the IoT hub is connected via cellular network or WiFi, the user may only need to reboot the IoT hub device 110 . In one embodiment, connection monitoring and notification logic 600 may ping hub 110 by attempting to determine the status of the hub if it does not receive communications from the hub within a specified period of time. After several failed attempts (ie, no response from the hub), it may send a notification to the end-user device 135 .
在IoT中心经由蜂窝网络和用户家中的宽带连接进行连接的实施方案中,该机制可用于检测任一连接的故障,并且可以使用剩余的良好的冗余连接来维持与IoT中心110的通信。In embodiments where the IoT hub is connected via a cellular network and a broadband connection in the user's home, this mechanism can be used to detect failure of either connection, and the remaining good redundant connections can be used to maintain communication with the IoT hub 110 .
IoT中心110的一个实施方案以非常紧凑的形状因子(例如,手机充电器的大小)实现。例如,IoT中心110可以被封装成1.5英寸(或更小)的立方体。还可以想到各种另选的尺寸,例如1-2英寸之间(或更小)的深度和1-3英寸之间的高度/长度,或具有2英寸或更小的侧边的任何立方体。One embodiment of IoT hub 110 is implemented in a very compact form factor (eg, the size of a cell phone charger). For example, IoT hub 110 may be packaged as a 1.5 inch (or smaller) cube. Various alternative dimensions are also contemplated, such as a depth of between 1-2 inches (or less) and a height/length of between 1-3 inches, or any cube with sides of 2 inches or less.
图7A至图7C示出了其中IoT中心被集成到小封装件中的一个具体实施方案,该小封装件被设计为经由A/C输入接口702直接插入A/C插座中。以这种方式,IoT中心110可以策略性地定位,以便在用户家中存在电源插座的任何位置实现理想的接收。在一个实施方案中,IoT中心110包括用于将高电压A/C输入转换为较低电压D/C信号的变压器。尽管具有小的形状因子,但在一个实施方案中,IoT中心110包括本文所述的用于与IoT服务120和多个IoT装置101-105连接的所有特征部。例如,虽然在图7A至图7C中未明确示出,但在一个实施方案中,IoT中心110可包括用于与IoT装置和IoT服务通信的多个通信接口(例如,天线和软件)。在一个实施方案中,IoT中心110包括电力线通信(PLC)或用于通过A/C电源线与IoT装置101-105建立通信的类似的网络接口。FIGS. 7A-7C illustrate a specific embodiment where the IoT hub is integrated into a small package designed to be plugged directly into an A/C outlet via the A/C input interface 702 . In this way, the IoT hub 110 can be strategically located for ideal reception wherever there are electrical outlets in the user's home. In one embodiment, IoT hub 110 includes a transformer for converting a high voltage A/C input to a lower voltage D/C signal. Despite the small form factor, in one embodiment, IoT hub 110 includes all the features described herein for interfacing with IoT service 120 and plurality of IoT devices 101-105. For example, although not explicitly shown in FIGS. 7A-7C , in one embodiment, IoT hub 110 may include multiple communication interfaces (eg, antennas and software) for communicating with IoT devices and IoT services. In one embodiment, IoT hub 110 includes power line communication (PLC) or similar network interface for establishing communication with IoT devices 101-105 over A/C power lines.
另外,图7A至图7C所示的IoT中心的实施方案配备有发光二极管(LED),该发光二极管除了向用户通知中心110的当前状态之外,还可用于夜灯。因此,用户可以将IoT中心放置在走廊、浴室或儿童房中,并将中心用于夜灯/IoT中心装置双用途。Additionally, the embodiment of the IoT hub shown in FIGS. 7A-7C is equipped with light emitting diodes (LEDs) that can be used as a night light in addition to notifying the user of the current status of the hub 110 . Therefore, users can place the IoT hub in the hallway, bathroom or children's room and use the hub as a night light/IoT hub dual purpose.
在一个实施方案中,用户可以经由用户装置135上的应用或浏览器上的编程界面来对夜灯特征进行编程。例如,用户可以将夜灯编程为在晚上的特定时间打开并在早上的特定时间关闭。此外,在一个实施方案中,将不同的独立控制的有色LED集成在IoT中心中。用户可以在白天和晚上的不同时间对将在IoT中心上照明的颜色进行编程。In one embodiment, the user may program the night light feature via an application on the user device 135 or a programming interface on a browser. For example, users can program the night light to turn on at a certain time in the evening and turn off at a certain time in the morning. Furthermore, in one embodiment, different independently controlled colored LEDs are integrated in the IoT hub. Users can program the colors that will be illuminated on the IoT Hub at different times of the day and night.
一旦被编程,LED 701可以通过IoT中心的集成低功率uC 200打开/关闭。在一个实施方案中,IoT中心具有集成光电探测器,以响应于环境亮度降低到低于指定阈值而打开夜灯。此外,在一个实施方案中,IoT中心具有一个或多个集成USB端口710,以用于对其他装置(例如,诸如用户的移动装置135)进行充电。当然,本发明的基本原理不限于具有集成USB充电器的IoT中心110。Once programmed, the LED 701 can be turned on/off by the IoT hub's integrated low power uC 200. In one embodiment, the IoT hub has integrated photodetectors to turn on the night light in response to ambient brightness dropping below a specified threshold. Additionally, in one embodiment, the IoT hub has one or more integrated USB ports 710 for charging other devices (eg, such as the user's mobile device 135 ). Of course, the underlying principles of the invention are not limited to IoT hubs 110 with integrated USB chargers.
图8示出了根据本发明的一个实施方案的方法。在801处,IoT装置被定位/配置在待控制的设备上或附近。如上所述,在一个实施方案中,IoT装置配备有双面胶带,以使用户能够容易地将IoT装置附连到各种类型的设备上。作为另外一种选择或除此之外,每个IoT装置可包括一个或多个安装孔,可将小钉子或螺钉插入安装孔中以将IoT装置附连到壁或其它表面上。此外,一些IoT装置可包括磁性材料以允许将IoT装置附连到金属表面上。Figure 8 illustrates a method according to one embodiment of the invention. At 801, an IoT device is positioned/configured on or near a device to be controlled. As described above, in one embodiment, the IoT device is equipped with a double-sided adhesive tape to enable the user to easily attach the IoT device to various types of equipment. Alternatively or in addition, each IoT device may include one or more mounting holes into which small nails or screws may be inserted to attach the IoT device to a wall or other surface. Additionally, some IoT devices may include magnetic materials to allow attachment of the IoT device to metal surfaces.
一旦IoT装置被附连到适当的位置,可以在802处经由用户装置135和IoT中心110对其进行编程。例如,用户可以通过安装在用户装置135上的应用或浏览器(直接地或通过IoT服务120)来连接到IoT中心110。应用或浏览器可执行的代码可包括允许用户对每个IoT装置进行识别和编程的用户界面。一旦选择了IoT装置,例如,可以向用户提供可供选择的不同类型的设备的列表(例如,不同型号的可远程控制的空调/加热器、视听设备等)。一旦选择了正确的设备,远程控制代码如上所述存储在IoT中心上,并发送到IoT装置上的IR/RF增强器,以便在803处控制设备。此外,如上所述,各种自动控制功能可以通过IoT中心实现。Once the IoT device is attached in place, it may be programmed at 802 via user device 135 and IoT hub 110 . For example, a user may connect to IoT hub 110 through an application or browser installed on user device 135 (either directly or through IoT service 120). The application or browser executable code may include a user interface that allows the user to identify and program each IoT device. Once an IoT device is selected, for example, the user may be presented with a list of different types of equipment from which to choose (eg, different models of remotely controllable air conditioners/heaters, audiovisual equipment, etc.). Once the correct device is selected, the remote control code is stored on the IoT hub as described above and sent to the IR/RF blaster on the IoT device to control the device at 803 . In addition, as mentioned above, various automatic control functions can be realized through the IoT center.
在本发明的一个实施方案中,IoT服务120可以与多个小区运营商901达成协议,以提供与不同地理区域的IoT中心110的连接性。例如,在美国,IoT服务120可以与Verizon和AT&T达成协议,以提供IoT中心连接性。因此,IoT中心110可以位于由两个或更多个支持的小区运营商提供服务的位置中。In one embodiment of the invention, the IoT service 120 may enter into an agreement with multiple cell operators 901 to provide connectivity to IoT hubs 110 in different geographical areas. For example, in the United States, IoT service 120 may have agreements with Verizon and AT&T to provide IoT hub connectivity. Accordingly, IoT hub 110 may be located in a location served by two or more supported cell operators.
如图9所示,在本发明的一个实施方案中,IoT中心901包括用于在两个或更多个可用小区运营商915-916之间进行选择的蜂窝运营商选择逻辑部件901。在一个实施方案中,小区运营商选择逻辑部件用一组规则918进行编程,用于在两个或更多个小区运营商915-916之间进行选择。一旦选择了特定的小区运营商,小区运营商选择逻辑部件901将指示IoT中心110的无线电/网络栈902与该小区运营商连接。As shown in Figure 9, in one embodiment of the invention, the IoT hub 901 includes cellular operator selection logic 901 for selecting between two or more available cell operators 915-916. In one embodiment, the cell operator selection logic is programmed with a set of rules 918 for selecting between two or more cell operators 915-916. Once a particular cell operator is selected, the cell operator selection logic 901 will instruct the radio/network stack 902 of the IoT hub 110 to connect with that cell operator.
可实现各种不同类型的选择规则918。举例来说,如果与第二小区运营商916相比,IoT服务120与第一小区运营商915达成更有利的协议(例如,较低的商定速率/成本912),则可以假设所有其他变量相等或在指定的阈值范围内(例如,假设第二小区运营商的信号强度足够)通过一个规则简单地连接第一小区运营商915。Various different types of selection rules 918 may be implemented. For example, if the IoT service 120 has a more favorable agreement (e.g., lower agreed rate/cost 912) with a first cell operator 915 than with a second cell operator 916, then all other variables may be assumed to be equal Or simply connect to the first cell operator 915 via a rule within a specified threshold (eg, assuming the signal strength of the second cell operator is sufficient).
在一个实施方案中,通过小区运营商选择逻辑部件901实现的选择规则918可以将与小区运营商连接性和成本有关的其他变量计算在内,包括例如在IoT中心110处测得的每个小区运营商915-916处的当前或历史信号强度911。例如,即使IoT服务120如上所述与第一小区运营商915达成更有利的协议,但如果第一运营商的信号强度低于指定阈值,小区运营商选择逻辑部件901仍然可以连接到第二小区运营商916。In one embodiment, the selection rules 918 implemented by the cell operator selection logic 901 can take into account other variables related to cell operator connectivity and cost, including, for example, per-cell Current or historical signal strength 911 at the operator 915-916. For example, even if the IoT service 120 reaches a more favorable agreement with the first cell operator 915 as described above, the cell operator selection logic 901 may still connect to the second cell if the first operator's signal strength is below a specified threshold Operator 916.
类似地,小区运营商选择逻辑部件901可以在作出决策时评估每个小区运营商915-916的可靠性/性能数据913。例如,如果已知第一小区运营商915在特定区域中不可靠并且/或者提供比第二小区运营商916显著更低的性能(例如,降低的数据速率),那么小区运营商选择逻辑部件901可以选择第二小区运营商(尽管与第一小区运营商达成更有利的协议)。在一个实施方案中,可靠性/性能数据913和小区服务信号强度数据911可以由IoT中心110随时间收集。例如,IoT中心110可以连续地监视每个小区运营商915-916的信号强度、连接状态、带宽和其他连接变量,并且可以(至少部分地)基于该记录数据作出连接决策。Similarly, cell operator selection logic 901 may evaluate reliability/performance data 913 for each cell operator 915-916 when making a decision. For example, if the first cell operator 915 is known to be unreliable in a particular area and/or provide significantly lower performance (e.g., reduced data rates) than the second cell operator 916, then the cell operator selection logic 901 A second cell operator may be chosen (albeit with a more favorable agreement with the first cell operator). In one embodiment, reliability/performance data 913 and cell service signal strength data 911 may be collected by IoT hub 110 over time. For example, IoT hub 110 may continuously monitor signal strength, connection status, bandwidth, and other connection variables for each cell operator 915-916, and may make connection decisions based (at least in part) on this logged data.
在一个实施方案中,IoT服务120可以向IoT中心提供更新,该更新包括与现有小区运营商915-916相关的新/更新的选择规则918和/或其已建立协议的新小区运营商。例如,如果IoT服务120与第二小区运营商916之间的协议有所更新,使得通过第二小区运营商916连接的成本较低,则包含该数据的新选择规则918和/或新小区服务速率912可以从IoT服务120发送到IoT中心110。然后,当呈现小区运营商选择决策时,小区运营商选择逻辑部件901可以将这些新的规则/速率计算在内(例如,如果与第二小区运营商916的连接更具成本效益,则倾向于偏好这样做)。In one embodiment, the IoT service 120 may provide an update to the IoT hub including new/updated selection rules 918 related to existing cell operators 915-916 and/or new cell operators for which it has established agreements. For example, if there is an update to the agreement between the IoT service 120 and the second cell operator 916 such that the cost of connecting through the second cell operator 916 is lower, a new selection rule 918 and/or a new cell service containing this data Rate 912 may be sent from IoT service 120 to IoT hub 110 . Cell operator selection logic 901 can then take these new rules/rates into account when presented with a cell operator selection decision (e.g., lean towards prefer to do so).
在一个实施方案中,IoT中心110可以由IoT服务120预先配置以与所有可用小区运营商915-916连接(即,设置有用户身份模块(SIM)903或连接小区运营商915-916所需的其他认证数据)。在一个实施方案中,可以为多个小区运营商915-916配置单个SIM 903(或其他认证装置)。因此,在选择第一小区运营商915(例如,基于选择规则918和其他变量)之后,如果第一小区运营商915不可用,则IoT中心110可能仍然会降回到第二小区运营商916。类似地,IoT中心110可以响应于当前条件的变化(例如,信号强度降低到第一小区运营商915和/或第二小区运营商916的成本降低)和/或从IoT服务120发送的新选择规则918而从第一小区运营商915切换到第二小区运营商916。In one embodiment, IoT hub 110 may be pre-configured by IoT service 120 to connect with all available cell operators 915-916 (i.e., provided with Subscriber Identity Module (SIM) 903 or required to connect to cell operators 915-916 other authentication data). In one embodiment, a single SIM 903 (or other authentication device) may be configured for multiple cell operators 915-916. Thus, after selecting the first cell operator 915 (eg, based on selection rules 918 and other variables), the IoT hub 110 may still fall back to the second cell operator 916 if the first cell operator 915 is unavailable. Similarly, IoT hub 110 may respond to changes in current conditions (e.g., signal strength reduction to first cell operator 915 and/or second cell operator 916 cost reduction) and/or new selections sent from IoT service 120 According to the rule 918, switch from the first cell operator 915 to the second cell operator 916.
一旦为多个运营商915-916配置了IoT中心110,则它可以根据变化的参数在全天内在这些运营商之间动态地切换。例如,与每个蜂窝运营商915-916相关的成本可以在全天内变化(例如,第一运营商915在诸如高峰时段的高度使用期间可能更昂贵,而第二运营商916在晚上可能更昂贵)。类似地,一个运营商的小区塔在白天或晚上的特定时间可能变得超载,导致连接性降低。使用本文所述的技术,小区运营商选择逻辑部件901可以连续地评估这些条件,并且随着条件变化在运营商之间动态地切换。Once the IoT hub 110 is configured for multiple operators 915-916, it can dynamically switch between these operators throughout the day according to changing parameters. For example, the costs associated with each cellular operator 915-916 may vary throughout the day (e.g., a first operator 915 may be more expensive during periods of high usage such as peak hours, while a second operator 916 may be more expensive at night ). Similarly, one carrier's cell towers may become overloaded at certain times of the day or night, resulting in reduced connectivity. Using the techniques described herein, cell operator selection logic 901 can continuously evaluate these conditions and dynamically switch between operators as conditions change.
图10示出了根据本发明的一个实施方案的方法。该方法可在图9所示架构的环境内实施,但不限于任何特定的系统架构。Figure 10 illustrates a method according to one embodiment of the invention. The method may be implemented within the context of the architecture shown in Figure 9, but is not limited to any particular system architecture.
在1001处,针对多个小区运营商配置IoT中心,并且用与连接到不同的小区运营商相关的规则对IoT中心进行编程。例如,一个规则可能导致IoT中心连接到第一服务提供商,而不连接到第二服务提供商(所有其他变量相等或在定义的阈值内)。在1002处,收集与小区运营商连接性、成本和/或其他相关变量相关的数据。例如,如上所述,每个小区运营商的信号强度可用于呈现连接决策。At 1001, an IoT center is configured for multiple cell operators and programmed with rules related to connecting to different cell operators. For example, a rule might cause IoT Hub to connect to a first service provider, but not to a second service provider (all other variables being equal or within defined thresholds). At 1002, data related to cell operator connectivity, cost, and/or other relevant variables is collected. For example, as described above, the signal strength of each cell operator can be used to inform connection decisions.
在1003处,使用收集的数据执行规则以确定连接IoT中心的主小区运营商。例如,在所有其他变量相等(或在指定阈值范围内)的情况下,IoT中心最初可与较低成本的小区运营商连接。如上所述,初始主小区运营商随后可以响应于从IoT服务发送的条件和/或新的/更新的规则的变化而改变。在1004处,IoT中心与主小区运营商连接,可能使用辅助小区运营商作为回退连接。然后IoT中心可以在1005处等待指定时间段(例如,一小时、一天、一周等),在此期间,IoT中心可以收集与连接性、成本等有关的附加数据。在延迟之后,该过程重复,并且如果规则/数据已发生显著变化,则IoT中心可以在1004处与新的主小区运营商连接。At 1003, a rule is executed using the collected data to determine the primary cell operator for connecting the IoT center. For example, all other variables being equal (or within specified thresholds), IoT hubs may initially connect with lower-cost cell operators. As mentioned above, the initial primary cell operator may subsequently change in response to changes in conditions and/or new/updated rules sent from the IoT service. At 1004, the IoT hub connects with the primary cell operator, possibly using a secondary cell operator as a fallback connection. The IoT hub can then wait at 1005 for a specified period of time (eg, an hour, a day, a week, etc.), during which time the IoT hub can collect additional data related to connectivity, cost, and the like. After a delay, the process repeats, and if the rules/data have changed significantly, the IoT hub can connect at 1004 with the new primary cell operator.
如图11所示,在一个实施方案中,各种不同类型的事件1101,1102-N可以由IoT装置生成并发送到IoT中心110。以举例而非限制的方式,事件1101,1102-N可包括安全事件,诸如用户家中的门或窗口在没有安全码或其他必要的认证的情况下打开、温度达到指定的阈值(例如,指示炉子的燃烧器已开启或指示潜在的火灾)、当用户和用户的家人不在家时触发运动探测器、触发烟雾探测器、喷水器系统上的传感器指示喷水器的运行时间已超过指定时间段、冰箱传感器或食品柜传感器指示用户对于特定食品的使用率较低,等等。As shown in FIG. 11 , in one embodiment, various types of events 1101 , 1102 -N may be generated by IoT devices and sent to IoT hub 110 . By way of example and not limitation, events 1101, 1102-N may include security events, such as a door or window in a user's home being opened without a security code or other necessary authentication, a temperature reaching a specified threshold (e.g., indicating a furnace burners are on or indicate a potential fire), motion detectors are triggered when the user and the user's family are not home, smoke detectors are triggered, sensors on the sprinkler system indicate that sprinklers have been running for longer than a specified period of time , a refrigerator sensor, or a pantry sensor indicating that the user has low usage of a particular food item, and so on.
在一个实施方案中,IoT服务120和/或一个或多个外部服务1120-1122可以经由API与IoT中心110进行交互以接收由各种IoT装置生成的事件1101,1102-N,并且可以响应于包括向用户1115发送通知(例如,经由用户的移动装置)的事件而采取各种动作。例如,外部杂货店服务可以接收与用户冰箱或食品柜中的不同食物的使用水平相关的事件,并自动更新用户的在线杂货店列表或安排订单。外部安全服务可以接收与用户家中的安全性相关的事件,并且尝试响应于警报而通知用户。如果温度传感器升高到特定阈值以上,则另一个服务可以通知消防部门和/或向用户发送通知。需注意,这些具体示例仅仅是为了举例说明的目的而提供的。本发明的基本原理不限于任何特定类型的事件或事件响应。In one embodiment, IoT service 120 and/or one or more external services 1120-1122 may interact with IoT hub 110 via an API to receive events 1101, 1102-N generated by various IoT devices, and may respond to Various actions are taken on events including sending a notification to the user 1115 (eg, via the user's mobile device). For example, an external grocery service may receive events related to usage levels of different foods in a user's refrigerator or pantry and automatically update the user's online grocery list or place an order. The external security service may receive events related to the security of the user's home and attempt to notify the user in response to the alert. Another service could notify the fire department and/or send a notification to the user if the temperature sensor rises above a certain threshold. Note that these specific examples are provided for illustration purposes only. The underlying principles of the invention are not limited to any particular type of event or event response.
在一些情况下,由IoT装置生成的事件可以是无害的,并且可以不需要发送到IoT服务120和/或外部服务1120-1122。例如,用户的IoT恒温器装置可以周期性地报告用户家中的当前温度,并且其他IoT装置可以周期性地报告仅指示在可接受阈值范围内的测量值的事件。因此,为了减少通过蜂窝运营商的网络(或经由用户的互联网连接)发送的事件的数量,IoT中心110的一个实施方案包括不会将某些类型的事件转发到IoT服务120和/或外部服务1120-1122的事件过滤器1110。在一个实施方案中,为每个事件1101,1102-N分配指示事件类型的识别代码。基于由IoT服务120和/或最终用户1115提供的一组过滤规则1111(例如,经由应用/浏览器进行配置),通过事件过滤器过滤掉某些事件类型(例如,丢弃或只是不转发),而其他事件类型存储在IoT中心110上并被转发到IoT服务120和/或其他外部服务1120-1122。In some cases, events generated by IoT devices may be harmless and may not need to be sent to IoT service 120 and/or external services 1120-1122. For example, a user's IoT thermostat device may periodically report the current temperature in the user's home, and other IoT devices may periodically report events that only indicate measurements that are within acceptable thresholds. Therefore, in order to reduce the number of events sent over the cellular operator's network (or via the user's Internet connection), one embodiment of IoT hub 110 includes not forwarding certain types of events to IoT service 120 and/or external services. Event filter 1110 at 1120-1122. In one embodiment, each event 1101, 1102-N is assigned an identification code indicating the type of event. Based on a set of filtering rules 1111 provided by the IoT service 120 and/or the end user 1115 (e.g., configured via the application/browser), certain event types are filtered out (e.g., discarded or just not forwarded) by the event filter, While other event types are stored on IoT hub 110 and forwarded to IoT service 120 and/or other external services 1120-1122.
如上所述,外部服务1120-1122和/或IoT服务120可被配置为通过将通知经由互联网220发送到用户装置而向最终用户通知某些类型的事件。例如,如果温度传感器高于指定阈值,IoT服务120可以将通知发送到最终用户装置,以告知用户有关潜在问题。此外,在某些情况下,IoT中心110可以将通知直接发送给最终用户(除了将事件直接发送给IoT服务120和/或外部服务1120-1122之外)。As noted above, external services 1120 - 1122 and/or IoT service 120 may be configured to notify end users of certain types of events by sending notifications to user devices via the Internet 220 . For example, if a temperature sensor is above a specified threshold, the IoT service 120 may send a notification to an end-user device to inform the user of the potential problem. Additionally, in some cases, IoT hub 110 may send notifications directly to end users (in addition to sending events directly to IoT service 120 and/or external services 1120-1122).
在一个实施方案中,外部服务1120-1122和IoT服务120利用由IoT中心110暴露的应用编程接口(API)。例如,特定服务可以经由API注册以接收一组特定事件。由于IoT服务120知道每个外部服务1120-1122被配置为接收哪些API(并因此接收哪些事件),因此它可以动态地发送过滤规则更新1111以使得事件过滤器1110只转发已被本身和各种外部服务1120-1122订阅的那些事件。根据配置,IoT中心110可以维护所有事件(包括未被转发到外部服务的那些事件)的日志,或者可以仅丢弃未转发的事件。In one embodiment, external services 1120 - 1122 and IoT service 120 utilize application programming interfaces (APIs) exposed by IoT hub 110 . For example, a particular service can register via an API to receive a particular set of events. Since the IoT service 120 knows which APIs (and thus which events) each external service 1120-1122 is configured to receive, it can dynamically send filter rule updates 1111 so that the event filter 1110 only forwards Those events to which external services 1120-1122 subscribe. Depending on configuration, IoT hub 110 may maintain a log of all events, including those not forwarded to external services, or may only discard non-forwarded events.
在一个实施方案中,IoT服务120包括用于如本文所述根据一组过滤规则来过滤事件的事件过滤器(除了IoT中心110上的事件过滤器1110之外或作为该事件过滤器的代替)。在该实施方案中,每个外部服务1120-1122可以通过由IoT服务120暴露的API来订阅接收某些类型的事件。事件由IoT中心110生成(可通过本地事件过滤器1110过滤),发送到IoT服务120(可由IoT服务过滤器过滤)并转发到外部服务1120-1122和/或最终用户装置。IoT服务过滤器可以通过与本文所述的IoT中心过滤器类似的方式进行配置(即,仅根据一组过滤规则转发特定类型的事件/通知)。In one embodiment, IoT service 120 includes an event filter for filtering events according to a set of filtering rules as described herein (in addition to or instead of event filter 1110 on IoT hub 110 ) . In this embodiment, each external service 1120 - 1122 may subscribe to receive certain types of events through APIs exposed by IoT service 120 . Events are generated by IoT hub 110 (filterable by local event filter 1110), sent to IoT service 120 (filterable by IoT service filter) and forwarded to external services 1120-1122 and/or end user devices. IoT Service Filters can be configured in a similar manner to IoT Hub Filters described in this paper (i.e. only forward certain types of events/notifications based on a set of filtering rules).
用于如上所述过滤IoT中心110和/或IoT服务120上的事件的技术是有利的,因为它减少了小区运营商的网络和/或用户/服务的互联网连接上的大量不必要的流量。这些实施方案对于用大量IoT装置(并且因此通常为大量事件)完全实现的家庭可能是特别有利的。The technique for filtering events on IoT hub 110 and/or IoT service 120 as described above is advantageous because it reduces a lot of unnecessary traffic on the cell operator's network and/or the user's/service's internet connection. These embodiments may be particularly advantageous for homes fully implemented with a large number of IoT devices (and thus often a large number of events).
本发明的一个实施方案收集与每个用户与各种IoT装置的交互相关的用户行为数据,并且响应性地提供根据每个用户的兴趣独特地定制的目标内容更新。图12示出了一个示例性实施方案,其中两个用户1201-1202通过IoT中心110上的IoT装置控制逻辑部件412来控制家中的IoT装置101-102。尽管为了简单起见仅示出了两个IoT装置101-102和两个用户1201-1202,但是可存在经由IoT中心110通信地耦接的更多IoT装置和/或用户。如上所述,用户1201-1201可以经由安装在每个用户的数据处理装置(例如,智能电话、个人计算机等)上的应用或浏览器与IoT装置101-102交互。如上所述,应用可以专门设计成与IoT服务120和/或IoT中心110进行交互,以允许用户查看由各种IoT装置101-102提供的数据并控制IoT装置101-102。One embodiment of the present invention collects user behavior data related to each user's interactions with various IoT devices and responsively provides targeted content updates uniquely tailored to each user's interests. FIG. 12 shows an exemplary embodiment where two users 1201 - 1202 control the IoT devices 101 - 102 at home through the IoT device control logic 412 on the IoT hub 110 . Although only two IoT devices 101 - 102 and two users 1201 - 1202 are shown for simplicity, there may be many more IoT devices and/or users communicatively coupled via IoT hub 110 . As described above, users 1201-1201 may interact with IoT devices 101-102 via applications or browsers installed on each user's data processing device (eg, smartphone, personal computer, etc.). As noted above, applications may be specifically designed to interact with IoT service 120 and/or IoT hub 110 to allow users to view data provided by various IoT devices 101-102 and control IoT devices 101-102.
在一个实施方案中,在IoT中心110上执行的用户行为数据收集逻辑部件1200监视和收集每个用户所查看的信息(例如,由各种IoT装置101-102提供的信息)以及由每个用户控制的IoT装置。例如,两个用户1201-1202中的一个可以是园丁,并且可以周期性地查看与花园中消耗的水量相关的数据(通过IoT装置上的传感器收集)。该用户还可以经由IoT装置来控制喷水器系统,例如,通过对IoT装置控制器412进行编程以控制IoT装置,以便自动打开和关闭喷水器系统。另一个用户可能不参与园艺,但可以在家里洗衣和/或烹饪。In one embodiment, the user behavior data collection logic component 1200 executed on the IoT hub 110 monitors and collects information viewed by each user (e.g., information provided by various IoT devices 101-102) and Controlled IoT devices. For example, one of the two users 1201-1202 may be a gardener and may periodically view data (collected by sensors on IoT devices) related to the amount of water consumed in the garden. The user may also control the sprinkler system via the IoT device, for example, by programming the IoT device controller 412 to control the IoT device to automatically turn the sprinkler system on and off. Another user may not be involved in gardening, but may do laundry and/or cooking at home.
与这些活动中的每一个相关的信息可以通过用户行为数据收集逻辑部件1200来收集,以生成每个用户的用户配置文件。例如,在一个实施方案中,行为数据从IoT中心110发送到IoT服务120,在其中进行分析以确定每个用户的偏好。然后可以根据这些偏好将目标内容发送到每个单独的用户1201-1202。例如,园艺用户可以接收与园艺用品销售有关的信息并且烹饪用户可以接收与厨房用具和/或食谱相关的信息。在一个实施方案中,IoT服务120的所有者/操作员可以与在线广告公司达成协议,以生成用于传输到每个用户数据处理装置的目标信息。在一个实施方案中,IoT服务120将用户行为数据发送到一个或多个外部服务1120-1122,然后所述外部服务向最终用户的数据处理装置生成目标通知和内容。Information related to each of these activities can be collected by the user behavior data collection logic component 1200 to generate a user profile for each user. For example, in one embodiment, behavioral data is sent from IoT hub 110 to IoT service 120 where it is analyzed to determine each user's preferences. Targeted content can then be sent to each individual user 1201-1202 according to these preferences. For example, a gardening user may receive information related to garden supply sales and a cooking user may receive information related to kitchen utensils and/or recipes. In one embodiment, the owner/operator of the IoT service 120 may enter into an agreement with an online advertising company to generate targeted information for transmission to each user data processing device. In one embodiment, the IoT service 120 sends user behavior data to one or more external services 1120-1122, which then generate targeted notifications and content to the end user's data processing device.
在一个实施方案中,用户行为数据也直接从IoT服务120或外部服务1120-1122之一收集。例如,用户在IoT系统的环境之外的购买和其他活动可以在IoT服务120和/或外部服务1120-1122处记录,并且可以用作分析的一部分以确定目标通知/内容。In one embodiment, user behavior data is also collected directly from the IoT service 120 or one of the external services 1120-1122. For example, purchases and other activities of users outside the context of the IoT system can be logged at IoT service 120 and/or external services 1120-1122 and can be used as part of the analysis to determine targeted notifications/content.
这种类型的微定位先前尚未执行,因为通过本文所述的IoT系统捕获的特定实际行为先前不可用。例如,当前目标广告基于用户的浏览历史和/或购买历史,但是没有与用户的实际活动相关的数据可用(例如,诸如园艺、烹饪和家庭维护)。当如本文所述向最终用户提供目标信息时,这样的数据可能是特别有利的,因为它基于用户的与特定产品和/或服务相关的实际活动。This type of microlocation has not been previously performed because the specific actual behavior captured by the IoT system described herein was not previously available. For example, currently targeted advertisements are based on the user's browsing history and/or purchasing history, but no data is available related to the user's actual activities (eg, such as gardening, cooking, and home maintenance). Such data may be particularly beneficial when providing targeted information to end users as described herein because it is based on the user's actual activities in relation to a particular product and/or service.
在一个实施方案中,每个IoT装置101的低功率微控制器200和IoT中心110的低功率逻辑部件/微控制器301包括用于存储由下述实施方案使用的加密密钥的安全密钥存储装置(参见例如图13至图15和相关文本)。作为另外一种选择,密钥可以被保护在如下所述的用户身份模块(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 include a security key for storing encryption keys used by the embodiments described below Storage means (see eg Figures 13-15 and associated text). Alternatively, the keys may be protected in a Subscriber Identity Module (SIM) as described below.
图13示出了使用公共密钥基础结构(PKI)技术和/或对称密钥交换/加密技术加密IoT服务120、IoT中心110和IoT装置101-102之间的通信的高级架构。FIG. 13 shows a high-level architecture for encrypting communications between IoT service 120, IoT hub 110, and IoT devices 101-102 using public key infrastructure (PKI) technology and/or symmetric key exchange/encryption technology.
首先将描述使用公共/私有密钥对的实施方案,其次是使用对称密钥交换/加密技术的实施方案。具体地讲,在使用PKI的实施方案中,唯一的公共/私有密钥对与每个IoT装置101-102、每个IoT中心110和IoT服务120相关。在一个实施方案中,当建立新的IoT中心110时,其公共密钥被提供给IoT服务120,并且当建立新的IoT装置101时,其公共密钥被提供给IoT中心110和IoT服务120。下面描述用于在装置之间安全地交换公共密钥的各种技术。在一个实施方案中,所有公共密钥都由所有接收装置已知的主密钥(即,证书形式)签署,使得任何接收装置可以通过验证签名来验证公共密钥的有效性。因此,这些证书将会交换,而不仅仅是交换原始公共密钥。Implementations using public/private key pairs will be described first, followed by implementations using symmetric key exchange/encryption techniques. Specifically, 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 center 110 is established, its public key is provided to the IoT service 120, and when a new IoT device 101 is established, its public key is provided to both the IoT center 110 and the IoT service 120 . Various techniques for securely exchanging public keys between devices are described below. In one embodiment, all public keys are signed by a master key known to all receiving devices (ie, in the form of a certificate), so that any receiving device can verify the validity of the public key by verifying the signature. Therefore, these certificates will be exchanged, not just the original public keys.
如图所示,在一个实施方案中,每个IoT装置101,102分别包括用于安全地存储每个装置的私有密钥的安全密钥存储装置1301,1303。然后,安全性逻辑部件1302,1304利用安全地存储的私有密钥来执行本文所述的加密/解密操作。类似地,IoT中心110包括用于存储IoT中心私有密钥和IoT装置101-102和IoT服务120的公共密钥的安全存储装置1311;以及用于使用密钥执行加密/解密操作的安全性逻辑部件1312。最后,IoT服务120可包括用于安全地存储其自己的私有密钥、各种IoT装置和IoT中心的公共密钥的安全存储装置1321,以及用于使用密钥加密/解密与IoT中心和装置的通信的安全性逻辑部件1313。在一个实施方案中,当IoT中心110从IoT装置接收到公共密钥证书时,它可以对此证书进行验证(例如,通过如上所述使用主密钥验证签名),并然后从其中提取公共密钥并将该公共密钥存储在其安全密钥存储装置1311中。As shown, in one embodiment, each IoT device 101, 102 includes a secure key storage 1301, 1303, respectively, for securely storing each device's private key. The security logic 1302, 1304 then utilizes the securely stored private key to perform the encryption/decryption operations described herein. Similarly, IoT hub 110 includes secure storage 1311 for storing IoT hub private key and public key for IoT devices 101-102 and IoT service 120; and security logic for performing encryption/decryption operations using the key Part 1312. Finally, IoT service 120 may include secure storage 1321 for securely storing its own private key, public keys of various IoT devices and IoT centers, and The security logic component 1313 of the communication. In one embodiment, when IoT hub 110 receives a public key certificate from an IoT device, it may verify this certificate (e.g., by verifying the signature using the master key as described above), and then extract the public key certificate from it. key and store the public key in its secure key storage 1311.
举例来说,在一个实施方案中,当IoT服务120需要向IoT装置101发送命令或数据时(例如,解锁门的命令、读取传感器的请求、要由IoT装置处理/显示的数据等),安全性逻辑部件1313使用IoT装置101的公共密钥对数据/命令进行加密,以生成加密的IoT装置数据包。在一个实施方案中,然后它使用IoT中心110的公共密钥加密IoT装置数据包,以生成IoT中心数据包,并将该IoT中心数据包发送到IoT中心110。在一个实施方案中,服务120用其私有密钥或上述主密钥对加密的消息进行签署,使得装置101可以验证其从可信来源接收到未被改变的消息。然后,装置101可以使用对应于私有密钥和/或主密钥的公共密钥来验证签名。如上所述,可使用对称密钥交换/加密技术代替公共密钥/私有密钥加密。在这些实施方案中,可以向每个装置提供用于加密和验证签名的相同对称密钥的副本,而不是单独地存储一个密钥并向其他装置提供对应的公共密钥。对称密钥算法的一个示例是高级加密标准(AES),但本发明的基本原理不限于任何类型的特定对称密钥。For example, in one embodiment, when the IoT service 120 needs to send a command or data to the IoT device 101 (eg, a command to unlock a door, a request to read a sensor, data to be processed/displayed by the IoT device, etc.), The security logic part 1313 encrypts the data/command using the public key of the IoT device 101 to generate an encrypted IoT device data packet. In one embodiment, it then encrypts the IoT device packet using the public key of IoT hub 110 to generate an IoT hub packet and sends the IoT hub packet to IoT hub 110 . In one embodiment, the service 120 signs the encrypted message with its private key or the above-mentioned master key, so that the device 101 can verify that it received the unaltered message from a trusted source. The device 101 may then verify the signature using the public key corresponding to the private key and/or the master key. As mentioned above, symmetric key exchange/encryption techniques can be used instead of public key/private key encryption. In these embodiments, each device may be provided with a copy of the same symmetric key used to encrypt and verify the signature, rather than separately storing one key and providing the corresponding public key to other devices. An example of a symmetric key algorithm is the Advanced Encryption Standard (AES), but the underlying principles of the invention are not limited to any type of specific symmetric key.
使用对称密钥实现方式,每个装置101达成安全密钥交换协议以与IoT中心110交换对称密钥。可使用安全密钥预置协议诸如动态对称密钥预置协议(DSKPP)经由安全通信信道交换密钥(参见例如请求注解(RFC)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 . Keys may be exchanged via a secure communication channel using a secure key provisioning protocol such as the Dynamic Symmetric Key Provisioning Protocol (DSKPP) (see, eg, Request for Comments (RFC) 6063). However, the underlying principles of the 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中心的安全模块1312受到信任,则服务120可以与中心安全模块1312协商会话密钥,并然后安全模块1312将会与每个装置120协商会话密钥。然后,在重新加密朝向装置101的传输之前,来自服务120的消息将在中心安全模块1312中被解密和验证。Once the symmetric keys are exchanged, they 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 encrypt communications using the exchanged symmetric key. In one embodiment, new symmetric keys are periodically exchanged between the device 101 and the hub 110 and between the hub 110 and the IoT service 120 . In one embodiment, new symmetric keys are exchanged with each new communication session between device 101, hub 110, and service 120 (eg, new keys are generated for each communication session and exchanged securely). In one embodiment, if the IoT central security module 1312 is trusted, the service 120 may negotiate a session key with the central security module 1312 and then the security module 1312 will negotiate a session key with each device 120 . Messages from the service 120 will then be decrypted and authenticated in the central security module 1312 before re-encrypting the transmission towards the device 101 .
在一个实施方案中,为了防止影响中心安全模块1312,可以在安装时在装置101和服务120之间协商一次性(永久)安装密钥。当向装置101发送消息时,服务120首先可以使用该装置安装密钥加密/MAC,然后使用中心的会话密钥加密/MAC。然后,中心110将验证并提取加密的装置团块,并将其发送到装置。In one embodiment, to prevent tampering with the central security module 1312, a one-time (permanent) installation key may be negotiated between the device 101 and the service 120 at installation time. When sending a message to device 101, service 120 may first encrypt/MAC using the device installation key and then encrypt/MAC using the central session key. The hub 110 will then verify and extract the encrypted device blob and send it to the device.
在本发明的一个实施方案中,实现了一种计数器机制以防止重放攻击。例如,可为从装置101到中心110(或反之亦然)的每个连续通信分配连续增加的计数器值。中心110和装置101都将跟踪该值,并且在装置之间的每个连续通信中验证该值是否正确。可以在中心110和服务120之间实现相同的技术。以这种方式使用计数器将使得更难以欺骗每个装置之间的通信(因为计数器值将不正确)。然而,即使没有这种情况,服务和装置之间的共享安装密钥也将阻止对所有装置的网络(中心)广泛攻击。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 a continuously increasing counter value. Both the hub 110 and the device 101 will keep track of this value and verify that the value is correct at each successive communication between the devices. The same technique can be implemented between hub 110 and service 120 . Using the counter in this way will make it more difficult to spoof the communication between each device (since the counter value will be incorrect). However, even without this, a shared installation key between the service and the device will prevent a network (hub) wide attack on all devices.
在一个实施方案中,当使用公共/私有密钥加密时,IoT中心110使用其私有密钥解密IoT中心数据包,并生成加密的IoT装置数据包,其将被发送给相关的IoT装置101。然后IoT装置101使用其私有密钥解密IoT装置数据包,以生成从IoT服务120发起的命令/数据。然后它可以处理数据和/或执行命令。使用对称加密,每个装置将使用共享对称密钥进行加密和解密。如果是任一种情况,每个发送装置也可以用其私有密钥对消息进行签署,使得接收装置可以验证其真实性。In one embodiment, when public/private key encryption is used, the IoT hub 110 decrypts the IoT hub data packet using its private key and generates an encrypted IoT device data packet, which will be sent to the associated IoT device 101 . The IoT device 101 then decrypts the IoT device data packet using its private key to generate commands/data originating from the IoT service 120 . It can 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 that the receiving device can verify its authenticity.
可使用不同的密钥集合加密从IoT装置101到IoT中心110和IoT服务120的通信。例如,在一个实施方案中,使用公共/私有密钥协议,IoT装置101上的安全性逻辑部件1302使用IoT中心110的公共密钥加密发送到IoT中心110的数据包。然后,IoT中心110上的安全性逻辑部件1312可以使用IoT中心的私有密钥解密数据包。类似地,IoT装置101上的安全性逻辑部件1302和/或IoT中心110上的安全性逻辑部件1312可以使用IoT服务120的公共密钥加密发送到IoT服务120的数据包(其然后可以使用服务的私有密钥由IoT服务120上的安全性逻辑部件1313解密)。使用对称密钥,装置101和中心110可以共享对称密钥,而中心和服务120可以共享不同的对称密钥。Communications from IoT device 101 to IoT hub 110 and IoT service 120 may be encrypted using different sets of keys. For example, in one embodiment, using a public/private key protocol, security logic 1302 on IoT device 101 encrypts data packets sent to IoT hub 110 using IoT hub 110's public key. Security logic 1312 on IoT hub 110 can then decrypt the data packet using IoT hub's private key. Similarly, security logic 1302 on IoT device 101 and/or security logic 1312 on IoT hub 110 may encrypt packets sent to IoT service 120 using IoT service 120's public key (which may then use the service The private key for is decrypted by the security logic 1313 on the IoT service 120). Using a symmetric key, the device 101 and the center 110 may share a symmetric key, while the center and the service 120 may share a different symmetric key.
虽然上文在描述中陈述了某些具体细节,但应该指出的是,本发明的基本原理可以使用各种不同的加密技术来实现。例如,虽然上文论述的一些实施方案使用了非对称的公共/私有密钥对,但替代实施方案可以使用在各种IoT装置101-102、IoT中心110和IoT服务120之间安全地交换的对称密钥。此外,在一些实施方案中,数据/命令本身不被加密,但使用密钥来生成数据/命令(或其他数据结构)上的签名。然后接收方可以使用其密钥验证签名。While certain specific details have been set forth in the description above, it should be noted that the underlying principles of the invention can be implemented using a variety of different encryption techniques. For example, while some of the embodiments discussed above use asymmetric public/private key pairs, alternative embodiments may use key pairs that are securely exchanged between the various IoT devices 101-102, IoT hub 110, and IoT service 120. Symmetric key. Also, in some embodiments, the data/commands themselves are not encrypted, but a key is used to generate a signature on the data/commands (or other data structures). The receiver can then verify the signature using its key.
如图14所示,在一个实施方案中,使用可编程用户身份模块(SIM)1401实现每个IoT装置101上的安全密钥存储。在该实施方案中,IoT装置101最初可以使用坐置在IoT装置101上的SIM接口1400内的未编程SIM卡1401提供给最终用户。为了使用一组一个或多个加密密钥对SIM卡进行编程,用户将可编程SIM卡1401从SIM接口500中取出并将其插入IoT中心110上的SIM编程接口1402中。然后IoT中心上的编程逻辑部件1425对SIM卡1401进行安全地编程,以便使用IoT中心110和IoT服务120注册/配对IoT装置101。在一个实施方案中,公共/私有密钥对可以由编程逻辑部件1425随机生成,并且该密钥对中的公共密钥然后可以存储在IoT中心的安全存储装置411中,而私有密钥可以存储在可编程SIM 1401中。此外,编程逻辑部件1425可以将IoT中心110、IoT服务120和/或任何其他IoT装置101的公共密钥存储在SIM卡1401上(以便由IoT装置101上的安全性逻辑部件1302使用以加密传出数据)。一旦SIM 1401被编程,新的IoT装置101可以通过IoT服务120使用SIM作为安全标识符来配置(例如,使用现有技术通过SIM注册装置)。在配置之后,IoT中心110和IoT服务120将安全地存储将在加密与IoT装置101的通信时使用的IoT装置公共密钥的副本。As shown in FIG. 14 , in one embodiment, secure key storage on each IoT device 101 is implemented using a programmable Subscriber Identity Module (SIM) 1401 . In this embodiment, the IoT device 101 may initially be provided to an end user using an unprogrammed SIM card 1401 seated within a SIM interface 1400 on the IoT device 101 . To program the SIM card with a set of one or more encryption keys, the user removes the programmable SIM card 1401 from the SIM interface 500 and inserts it into the SIM programming interface 1402 on the IoT hub 110 . The programming logic 1425 on the IoT hub then securely programs the SIM card 1401 to register/pair the IoT device 101 with the IoT hub 110 and the IoT service 120 . In one embodiment, a public/private key pair can be randomly generated by the programming logic 1425, and the public key of the key pair can then be stored in IoT Hub's secure storage device 411, while the private key can be stored in In programmable SIM 1401. Additionally, programming logic 1425 may store public keys for IoT hub 110, IoT service 120, and/or any other IoT device 101 on SIM card 1401 (for use by security logic 1302 on IoT device 101 to encrypt transmitted output data). Once the SIM 1401 is programmed, a new IoT device 101 can be provisioned by the IoT service 120 using the SIM as a security identifier (eg, registering the device with the SIM using existing techniques). After configuration, IoT hub 110 and IoT service 120 will securely store a copy of the IoT device public key to be used in encrypting communications with IoT device 101 .
上文结合图14所描述的技术在向最终用户提供新的IoT装置时提供了巨大的灵活性。不需要用户在销售/购买时通过特定服务提供商直接注册每个SIM(如当前完成的那样),SIM可以由最终用户通过IoT中心110直接编程,并且编程的结果可以安全地传送到IoT服务120。因此,新的IoT装置101可以从在线或本地零售商出售给最终用户,并且随后通过IoT服务120进行安全地配置。The techniques described above in connection with FIG. 14 provide enormous flexibility in providing new IoT devices to end users. Rather than requiring the user to directly register each SIM with a specific service provider at the time of sale/purchase (as is currently done), the SIM can be programmed directly by the end user via the IoT Hub 110 and the results of the programming can be securely communicated to the IoT Service 120 . Thus, a new IoT device 101 can be sold to an end user from an online or local retailer and then securely provisioned through the IoT service 120 .
虽然上文中在SIM(用户身份模块)的特定环境下对注册和加密技术进行了描述,但本发明的基本原理并不限于“SIM”装置。相反,本发明的基本原理可以使用具有用于存储一组加密密钥的安全存储装置的任何类型装置来实现。此外,虽然上述实施方案包括可移除的SIM装置,但是在一个实施方案中,SIM装置不可移除,而IoT装置本身可以被插入IoT中心110的编程接口1402内。Although the registration and encryption techniques have been described above in the specific context of a SIM (Subscriber Identity Module), the underlying principles of the invention are not limited to "SIM" devices. Rather, the basic principles of the invention may be implemented using any type of device having secure storage for storing a set of encryption keys. Furthermore, while the above embodiments include removable SIM devices, in one embodiment the SIM device is not removable and the IoT device itself can be plugged into the programming interface 1402 of the IoT hub 110 .
在一个实施方案中,SIM在分配给最终用户之前被预先编程到IoT装置101中,而不要求用户对SIM(或其他装置)进行编程。在该实施方案中,当用户建立IoT装置101时,可使用本文所述的各种技术在IoT中心110/IoT服务120与新的IoT装置101之间安全地交换加密密钥。In one embodiment, the SIM is pre-programmed into the IoT device 101 prior to distribution to the end user, without requiring the user to program the SIM (or other device). In this embodiment, when a user sets up an IoT device 101, encryption keys may be securely exchanged between the IoT hub 110/IoT service 120 and the new IoT device 101 using various techniques described herein.
例如,如图15A所示,每个IoT装置101或SIM 401可以封装有唯一地识别IoT装置101和/或SIM 1401的条形码或QR码1501。在一个实施方案中,条形码或QR码1501包括用于IoT装置101或SIM 1401的公共密钥的编码表示。作为另外一种选择,条形码或QR码1501可以由IoT中心110和/或IoT服务120用于识别或生成公共密钥(例如,用作已存储在安全存储装置中的公共密钥的指针)。条形码或QR码1501可以打印在单独的卡上(如图15A所示),或可以直接打印在IoT装置本身上。不管条形码在何处被打印,在一个实施方案中,IoT中心110配备有条形码读取器206,用于读取条形码并将所得数据提供给IoT中心110上的安全性逻辑部件1312和/或IoT服务120上的安全性逻辑部件1313。IoT中心110上的安全性逻辑部件1312然后可以将IoT装置的公共密钥存储在其安全密钥存储装置1311内,并且IoT服务120上的安全性逻辑部件1313可以将公共密钥存储在其安全存储装置1321内(以用于后续加密通信)。For example, as shown in FIG. 15A , each IoT device 101 or SIM 401 may be packaged with a barcode or QR code 1501 that uniquely identifies the IoT device 101 and/or SIM 1401 . In one embodiment, the barcode or QR code 1501 includes an encoded representation of the public key for the IoT device 101 or SIM 1401 . Alternatively, barcode or QR code 1501 may be used by IoT hub 110 and/or IoT service 120 to identify or generate a public key (eg, as a pointer to a public key already stored in secure storage). The barcode or QR code 1501 can be printed on a separate card (as shown in Figure 15A), or can be printed directly on the IoT device itself. Regardless of where the barcode is printed, in one embodiment, the IoT hub 110 is equipped with a barcode reader 206 for reading the barcode and providing the resulting data to the security logic 1312 on the IoT hub 110 and/or the IoT Security Logic 1313 on Service 120 . Security logic 1312 on IoT hub 110 may then store the IoT device's public key in its secure key store 1311, and security logic 1313 on IoT service 120 may store the public key in its secure In the storage device 1321 (for subsequent encrypted communication).
在一个实施方案中,条形码或QR码1501中所包含的数据也可以通过具有安装的IoT应用或由IoT服务提供商设计的基于浏览器的小应用的用户装置135(例如,iPhone或Android装置)捕获。一旦被捕获,条形码数据可以通过安全连接(例如,诸如安全套接层(SSL)连接)被安全地传送到IoT服务120。条形码数据还可以通过安全本地连接(例如,通过本地WiFi或蓝牙LE连接)从客户端装置135提供到IoT中心110。In one embodiment, the data contained in the barcode or QR code 1501 can also be accessed by a user device 135 (e.g., an iPhone or Android device) with an installed IoT application or a browser-based applet designed by an IoT service provider. capture. Once captured, the barcode data may be securely transmitted to IoT service 120 over a secure connection (eg, such as a Secure Sockets Layer (SSL) connection). Barcode data may also be provided from client device 135 to IoT hub 110 over a secure local connection (eg, over a local WiFi or Bluetooth LE connection).
可使用硬件、软件、固件或其任何组合来实现IoT装置101上的安全性逻辑部件1302和IoT中心110上的安全性逻辑部件1312。例如,在一个实施方案中,安全性逻辑部件1302,1312在用于在IoT装置101与IoT中心110之间建立本地通信信道130的芯片内实现(例如,如果本地信道130是蓝牙LE,则为蓝牙LE芯片)。不管安全性逻辑部件1302,1312的具体位置如何,在一个实施方案中,安全性逻辑部件1302,1312被设计为建立用于执行某些类型的程序代码的安全执行环境。这可以例如通过使用TrustZone技术(在某些ARM处理器上可用)和/或可信执行技术(由Intel设计)来实现。当然,本发明的基本原理不限于任何特定类型的安全执行技术。Security logic 1302 on IoT device 101 and security logic 1312 on IoT hub 110 may be implemented using hardware, software, firmware, or any combination thereof. For example, in one embodiment, the security logic 1302, 1312 is implemented within the chip used to establish the local communication channel 130 between the IoT device 101 and the IoT hub 110 (e.g., if the local channel 130 is Bluetooth LE, then Bluetooth LE chip). Regardless of the specific location of the security logic components 1302, 1312, in one embodiment, the security logic components 1302, 1312 are designed to establish a secure execution environment for executing certain types of program code. This can be achieved, for example, by using TrustZone technology (available on some ARM processors) and/or Trusted Execution Technology (designed by Intel). Of course, the underlying principles of the invention are not limited to any particular type of secure enforcement technique.
在一个实施方案中,条形码或QR码1501可用于将每个IoT装置101与IoT中心110配对。例如,可以将嵌入在条形码或QR码1501内的配对码提供给IoT中心110,以将IoT中心与对应的IoT装置配对,而不是使用当前用于配对蓝牙LE装置的标准无线配对方法。In one embodiment, a barcode or QR code 1501 may be used to pair each IoT device 101 with IoT hub 110 . For example, a pairing code embedded within a barcode or QR code 1501 may be provided to IoT hub 110 to pair the IoT hub with a corresponding IoT device, rather than using the standard wireless pairing method currently used to pair Bluetooth LE devices.
图15B示出了一个实施方案,其中IoT中心110上的条形码读取器206捕获与IoT装置101相关的条形码/QR码1501。如上所述,条形码/QR码1501可以直接打印在IoT装置101上,或可以打印在与IoT装置101一起提供的单独的卡上。在任一情况下,条形码读取器206从条形码/QR码1501读取配对码,并将该配对码提供给本地通信模块1580。在一个实施方案中,本地通信模块1580是蓝牙LE芯片和相关的软件,但本发明的基本原理不限于任何特定的协议标准。一旦接收到配对码,它就被存储在包含配对数据1585的安全存储装置中,并且IoT装置101和IoT中心110将自动配对。每当IoT中心以这种方式与新的IoT装置配对时,该配对的配对数据将存储在安全存储装置1585内。在一个实施方案中,一旦IoT中心110的本地通信模块1580接收到配对码,则它可以使用该代码作为密钥来加密与IoT装置101在本地无线信道上的通信。FIG. 15B shows an embodiment where the barcode reader 206 on the IoT hub 110 captures the barcode/QR code 1501 associated with the IoT device 101 . As described above, the barcode/QR code 1501 may be printed directly on the IoT device 101 , or may be printed on a separate card provided with the IoT device 101 . In either case, the barcode reader 206 reads the pairing code from the barcode/QR code 1501 and provides the pairing code to the local communication module 1580 . In one embodiment, the local communication module 1580 is a Bluetooth LE chip and associated software, although the underlying principles of the invention are not limited to any particular protocol standard. Once the pairing code is received, it is stored in secure storage containing pairing data 1585, and the IoT device 101 and IoT hub 110 will be automatically paired. Whenever the IoT hub is paired with a new IoT device in this manner, the pairing data for that pairing will be stored in secure storage 1585 . In one embodiment, once the local communication module 1580 of the IoT hub 110 receives the pairing code, it may use the code as a key to encrypt communications with the IoT device 101 over the local wireless channel.
类似地,在IoT装置101侧,本地通信模块1590将指示与IoT中心的配对的配对数据存储在本地安全存储装置1595内。配对数据1595可包括在条形码/QR码1501中识别的预先编程的配对码。配对数据1595还可包括从IoT中心110上的本地通信模块1580接收的建立安全本地通信信道所需的配对数据(例如,用于加密与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 1595 . Pairing data 1595 may include a pre-programmed pairing code identified in barcode/QR code 1501 . Pairing data 1595 may also include pairing data received from local communication module 1580 on IoT hub 110 required to establish a secure local communication channel (eg, an additional key used to encrypt communications with IoT hub 110 ).
因此,条形码/QR码1501可用于以比当前无线配对协议安全得多的方式执行本地配对,因为配对码不是通过无线发送的。此外,在一个实施方案中,用于配对的相同条形码/QR码1501可用于识别加密密钥,以建立从IoT装置101到IoT中心110以及从IoT中心110到IoT服务120的安全连接。Thus, the barcode/QR code 1501 can be used to perform local pairing in a much more secure manner than current wireless pairing protocols, since the pairing code is not sent over the air. Furthermore, in one embodiment, the same barcode/QR code 1501 used for pairing can be used to identify encryption keys to establish secure connections from IoT device 101 to IoT hub 110 and from IoT hub 110 to IoT service 120 .
图16示出了根据本发明的一个实施方案的用于对SIM卡进行编程的方法。该方法可以在上述系统架构内实现,但不限于任何特定的系统架构。Figure 16 illustrates a method for programming a SIM card according to one embodiment of the present invention. The method can be implemented within the system architectures described above, but is not limited to any particular system architecture.
在1601处,用户接收带有空白SIM卡的新IoT装置,并且在1602处,用户将空白SIM卡插入IoT中心中。在1603处,用户使用一组一个或多个加密密钥对空白SIM卡进行编程。例如,如上所述,在一个实施方案中,IoT中心可以随机生成公共/私有密钥对,并且将私有密钥存储在SIM卡上,并将公共密钥存储在其本地安全存储装置中。此外,在1604处,至少公共密钥被发送到IoT服务,使得它可用于识别IoT装置并与IoT装置建立加密的通信。如上所述,在一个实施方案中,除了“SIM”卡之外的可编程装置可用于执行与图16所示方法中的SIM卡相同的功能。At 1601, the user receives a new IoT device with a blank SIM card, and at 1602, the user inserts the blank SIM card into the IoT hub. At 1603, the user programs a blank SIM card with a set of one or more encryption keys. For example, as described above, in one embodiment the IoT hub may randomly generate a public/private key pair and store the private key on the SIM card and the public key in its local secure storage. Furthermore, at 1604 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 communications 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 the SIM card in the method shown in FIG. 16 .
图17示出了将新的IoT装置集成到网络中的方法。该方法可以在上述系统架构内实现,但不限于任何特定的系统架构。Figure 17 shows a method of integrating new IoT devices into a network. The method can be implemented within the system architectures described above, but is not limited to any particular system architecture.
在1701处,用户接收已预先分配加密密钥的新IoT装置。在1702处,密钥被安全地提供给IoT中心。如上所述,在一个实施方案中,这涉及读取与IoT装置相关的条形码,以识别分配给该装置的公共/私有密钥对中的公共密钥。条形码可以由IoT中心直接读取,或者通过移动装置经由应用或浏览器进行捕获。在替代实施方案中,可以在IoT装置与IoT中心之间建立诸如近场通信(NFC)信道或安全WiFi信道的安全通信信道来交换密钥。无论密钥如何发送,一旦被接收,它就将存储在IoT中心装置的安全密钥存储器中。如上所述,可以在IoT中心上使用各种安全执行技术来存储和保护诸如安全区域、可信执行技术(TXT)和/或Trustzone的密钥。此外,在1703处,密钥被安全地发送到IoT服务,该IoT服务将密钥存储在其自己的安全密钥存储器中。然后可以使用该密钥加密与IoT装置的通信。再次,交换可以使用证书/签名密钥来实现。在中心110内,防止所存储的密钥的修改/添加/移除是特别重要的。At 1701, a user receives a new IoT device that has a pre-assigned encryption key. At 1702, the key is securely provided to the IoT hub. As noted above, in one embodiment, this involves reading a barcode associated with an 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 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 sent, once received it is stored in a secure key memory on the IoT hub device. As mentioned above, various secure execution technologies can be used on IoT Hub to store and protect keys such as Secure Enclaves, Trusted Execution Technology (TXT), and/or Trustzone. Furthermore, at 1703, the key is securely sent to the IoT service, which stores the key in its own secure key store. This key can then be used to encrypt communications with IoT devices. Again, the exchange can be achieved using certificates/signing keys. Within the hub 110, it is particularly important to prevent modification/addition/removal of stored keys.
图18示出了使用公共/私有密钥将命令/数据安全地传送到IoT装置的方法。该方法可以在上述系统架构内实现,但不限于任何特定的系统架构。FIG. 18 shows a method of securely transferring commands/data to IoT devices using public/private keys. The method can be implemented within the system architectures described above, but is not limited to any particular system architecture.
在1801处,IoT服务使用IoT装置公共密钥加密数据/命令,以创建IoT装置数据包。然后,它使用IoT中心的公共密钥加密IoT装置数据包,以创建IoT中心数据包(例如,在IoT装置数据包周围创建IoT中心封装件)。在1802处,IoT服务将IoT中心数据包发送到IoT中心。在1803处,IoT中心使用IoT中心的私有密钥解密IoT中心数据包,以生成IoT装置数据包。然后,在1804处,它将IoT装置数据包发送到IoT装置,该IoT装置在1805处使用IoT装置私有密钥解密IoT装置数据包以生成数据/命令。在1806处,IoT装置处理数据/命令。At 1801, the IoT service encrypts data/commands using the IoT device public key to create an IoT device data package. It then encrypts the IoT device packet using the IoT Hub's public key to create an IoT Hub packet (e.g., create an IoT Hub wrapper around the IoT Device packet). At 1802, the IoT service sends an IoT hub data packet to the IoT hub. At 1803, the IoT hub decrypts the IoT hub data packet using the IoT hub's private key to generate an IoT device data packet. Then, at 1804, it sends the IoT device data packet to the IoT device, which at 1805 decrypts the IoT device data packet using the IoT device private key to generate data/commands. At 1806, the IoT device processes data/commands.
在使用对称密钥的实施方案中,可以在每个装置(例如,每个装置和中心之间以及中心和服务之间)之间协商对称密钥交换。一旦密钥交换完成,每个发送装置在向接收装置发送数据之前,使用对称密钥对每个传输进行加密和/或签署。In embodiments using symmetric keys, a symmetric key exchange may be negotiated between each device (eg, between each device and the hub and between the hub and the service). Once the key exchange is complete, each sending device encrypts and/or signs each transmission using the symmetric key before sending the data to the receiving device.
本发明的实施方案可包括上文所述的各种步骤。这些步骤可体现为可用于致使通用处理器或专用处理器执行这些步骤的机器可执行指令。或者,这些步骤可由包含用于执行这些步骤的硬连线逻辑部件的特定硬件部件执行,或由编程的计算机部件和定制硬件部件的任何组合执行。Embodiments of the invention may include the various steps described above. These steps can be embodied as machine-executable instructions that can be used to cause a general purpose processor or a special purpose processor to perform these steps. Alternatively, the steps may be performed by specific hardware components containing hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
如本文所述,指令可指代特定硬件配置,诸如专用集成电路(ASIC),其被配置为执行某些操作或具有体现在非暂态计算机可读介质中的存储器中所存储的预定功能或软件指令。因此,可以使用在一个或多个电子装置(例如,终端站、网络元件等)上存储和执行的代码和数据来实现附图中所示的技术。此类电子装置使用计算机机器可读介质存储和传送(在内部和/或与网络上的其他电子装置)代码和数据,计算机机器可读介质诸如是非暂态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存存储器装置;相变存储器)和暂态计算机机器可读通信介质(例如,电学、光学、声学或其他形式的传播信号-诸如载波、红外信号、数字信号等)。此外,这类电子装置通常包括耦接到一个或多个其他部件的一个或多个处理器的集合,所述其他部件诸如一个或多个存储装置(非暂态机器可读存储介质)、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)以及网络连接。所述处理器集合和其他部件的耦接通常通过一个或多个总线和桥接器(也称为总线控制器)进行。存储装置和承载网络通信量的信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子装置的存储装置通常将用于执行的代码和/或数据存储在该电子装置的一个或多个处理器的集合上。当然,可以使用软件、固件和/或硬件的不同组合来实现本发明的实施方案的一个或多个部分。As described herein, instructions may refer to specific hardware configurations, such as an application-specific integrated circuit (ASIC), configured to perform certain operations or have predetermined functions stored in a memory embodied in a non-transitory computer-readable medium or software instructions. Accordingly, the techniques shown in the figures may be implemented using code and data stored and executed on one or more electronic devices (eg, end stations, network elements, etc.). Such electronic devices store and transmit (internally and/or with other electronic devices on a network) code and data using computer machine-readable media, such as non-transitory computer machine-readable storage media (e.g., disk ; optical discs; random access memory; read-only memory; flash memory devices; phase-change memory) and transitory computer machine-readable communications media (e.g., electrical, optical, acoustic, or other forms of propagating signals—such as carrier waves, infrared signals, digital signal, etc.). Additionally, such electronic devices typically include a collection of one or more processors coupled to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user Input/output devices (eg, keyboards, touch screens, and/or monitors) and network connections. The coupling of the set of processors and other components is typically through one or more buses and bridges (also called bus controllers). The storage device and the network traffic-carrying signals 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 the set of one or more processors of that electronic device. Of course, one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware and/or hardware.
在整个具体实施方式中,出于解释的目的,陈述了许多特定细节以便透彻理解本发明。然而,本领域的技术人员将容易明白,可在没有这些特定细节中的一些的情况下实践本发明。在某些情况下,为免模糊本发明的主题,未详细描述众所周知的结构和功能。因此,应依据所附权利要求书确定本发明的范围和实质。Throughout the detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be readily apparent, however, 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 so as not to obscure the subject matter of the present invention. Therefore, the scope and spirit of the invention should be determined with reference to the appended claims.
Claims (163)
Applications Claiming Priority (17)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/590,663 US9774497B2 (en) | 2015-01-06 | 2015-01-06 | System and method for implementing internet of things (IOT) remote control applications |
| US14/590,719 | 2015-01-06 | ||
| US14/590,663 | 2015-01-06 | ||
| US14/590,799 | 2015-01-06 | ||
| US14/590,719 US9729340B2 (en) | 2015-01-06 | 2015-01-06 | System and method for notifying a user of conditions associated with an internet-of-things (IoT) hub |
| US14/590,799 US9774507B2 (en) | 2015-01-06 | 2015-01-06 | System and method for collecting and utilizing user behavior data within an IoT system |
| US14/590,700 | 2015-01-06 | ||
| US14/590,708 | 2015-01-06 | ||
| US14/590,765 US20160197769A1 (en) | 2015-01-06 | 2015-01-06 | System and method for filtering events at an iot hub |
| US14/590,686 US9933768B2 (en) | 2015-01-06 | 2015-01-06 | System and method for implementing internet of things (IOT) remote control applications |
| US14/590,700 US10816944B2 (en) | 2015-01-06 | 2015-01-06 | System and method for using data collected from internet-of-things (IoT) sensors to disable IoT-enabled home devices |
| US14/590,765 | 2015-01-06 | ||
| US14/590,686 | 2015-01-06 | ||
| US14/590,649 US20160198536A1 (en) | 2015-01-06 | 2015-01-06 | Internet-of-things (iot) hub apparatus and method |
| US14/590,708 US9860681B2 (en) | 2015-01-06 | 2015-01-06 | System and method for selecting a cell carrier to connect an IOT hub |
| US14/590,649 | 2015-01-06 | ||
| PCT/US2016/012021 WO2016111916A1 (en) | 2015-01-06 | 2016-01-04 | System and method for implementing internet of things (iot) remote control applications |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN107251530A true CN107251530A (en) | 2017-10-13 |
| CN107251530B CN107251530B (en) | 2021-07-06 |
Family
ID=56356332
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201680010500.0A Active CN107251530B (en) | 2015-01-06 | 2016-01-04 | System and method for implementing Internet of Things (IoT) remote control applications |
Country Status (3)
| Country | Link |
|---|---|
| KR (1) | KR102524513B1 (en) |
| CN (1) | CN107251530B (en) |
| WO (1) | WO2016111916A1 (en) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107938257A (en) * | 2017-11-23 | 2018-04-20 | 广州市首试科技有限公司 | Washing machine with Bluetooth communication function |
| CN109862104A (en) * | 2019-02-27 | 2019-06-07 | 江西昊潮科技有限公司 | A kind of Intelligent commercial clothes washing system and its application method based on NB-IoT |
| CN110515682A (en) * | 2018-05-22 | 2019-11-29 | 富士施乐株式会社 | Information processing unit, non-transitory computer-readable medium and information processing method |
| CN110515661A (en) * | 2018-05-22 | 2019-11-29 | 富士施乐株式会社 | Information processing unit, information processing system and information processing method |
| CN112313920A (en) * | 2018-07-03 | 2021-02-02 | 亚萨合莱有限公司 | Providing connectivity for multiple IOT devices |
| CN112305962A (en) * | 2020-10-21 | 2021-02-02 | 麒麟软件有限公司 | Wireless device control method based on ARM platform supporting Trustzone |
| CN112905416A (en) * | 2021-02-24 | 2021-06-04 | 河南永安电气消防检测有限公司 | Fire fighting equipment detection system and method based on Internet of things, computer device and storage medium |
| CN114007198A (en) * | 2020-07-13 | 2022-02-01 | 深圳市利维坦技术有限公司 | System and method for context-aware self-configuring logistics hardware |
| US20220338281A1 (en) * | 2020-02-26 | 2022-10-20 | Lg Electronics Inc. | Artificial intelligence device for providing device control function based on interworking between devices and method therefor |
| CN115803722A (en) * | 2020-10-29 | 2023-03-14 | 株式会社日立制作所 | IoT system and data collection control method |
| US11991040B2 (en) * | 2020-09-10 | 2024-05-21 | Huawei Technologies Co., Ltd. | Network configuration method and device |
| US12439185B2 (en) | 2020-10-27 | 2025-10-07 | Hewlett-Packard Development Company, L.P. | Configuration page notification items based on environmental conditions |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10697811B2 (en) | 2016-10-31 | 2020-06-30 | Nokia Technologies Oy | Method, apparatus and computer program product for providing sensor data collection and sensor configuration |
| KR101898589B1 (en) * | 2017-01-02 | 2018-09-13 | 엘지전자 주식회사 | Hub apparatus for network, Sub apparatus for motion and Comunication robot using the same |
| CN106899688A (en) * | 2017-03-15 | 2017-06-27 | 中国联合网络通信集团有限公司 | A kind of Internet of Things data exchange method, internet of things equipment and platform of internet of things |
| KR102339857B1 (en) | 2017-03-29 | 2021-12-16 | 삼성전자주식회사 | Method for Managing and Controling the External IoT Device and the Electronic Device supporting the same |
| US10587400B2 (en) | 2018-02-12 | 2020-03-10 | Afero, Inc. | System and method for securely configuring a new device with network credentials |
| KR20200084294A (en) | 2019-01-02 | 2020-07-10 | (주)카네비컴 | Operation server for searching code block using hot spot extraction and operation platform system including the same |
| KR102389710B1 (en) * | 2019-12-19 | 2022-04-22 | 주식회사 오성전자 | Legacy home appliance control method using context awareness and system supporting it |
| KR102367186B1 (en) * | 2020-01-17 | 2022-02-24 | 숭실대학교산학협력단 | METHOD FOR CONTROLLING IoT APPARATUS USING WIRELESS REMOTE CONTROLLER OF LOW-POWER, IoT HUB and IoT SYSTEM |
| EP4109911A4 (en) | 2020-02-21 | 2023-11-22 | LG Electronics, Inc. | Display device and method |
| KR102566016B1 (en) * | 2020-08-21 | 2023-08-09 | 조윤호 | Automatic device control system for lighting control and crime prevention |
| US11395239B2 (en) * | 2020-12-11 | 2022-07-19 | Nvidia Corporation | Radio frequency power adaptation for handheld wireless devices |
| WO2023055120A1 (en) * | 2021-09-30 | 2023-04-06 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling a remote device in an internet of things (iot) environment |
| CN117616724A (en) | 2021-09-30 | 2024-02-27 | 三星电子株式会社 | Method and apparatus for controlling remote devices in an Internet of Things (IoT) environment |
| KR102464535B1 (en) * | 2021-11-11 | 2022-11-09 | 주식회사 디나텍 | IoT Home Gateway with in-house broadcasting and voice analysis function and method using the same |
| FR3133963A1 (en) * | 2022-03-23 | 2023-09-29 | Orange | methods relating to the use of control codes and the association of terminals, first terminal, second terminal and control code management device |
| KR20240042909A (en) * | 2022-09-26 | 2024-04-02 | 삼성전자주식회사 | Electronic device for controlling an external device and controlling method thereof |
| KR20240052386A (en) * | 2022-10-14 | 2024-04-23 | 삼성전자주식회사 | Electronic apparatus and controlling method thereof |
| US12260738B2 (en) | 2023-04-26 | 2025-03-25 | T-Mobile Usa, Inc. | Telecommunications service configured for personal safety and security |
| US12489764B2 (en) | 2023-10-12 | 2025-12-02 | T-Mobile Usa, Inc. | Code injection prevention for communication devices |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030066080A1 (en) * | 2001-10-02 | 2003-04-03 | John Kamieniecki | Method and apparatus for automatic set-up of electronic devices |
| US20050096753A1 (en) * | 2003-11-04 | 2005-05-05 | Universal Electronics Inc. | Home appliance control system and methods in a networked environment |
| US20050156730A1 (en) * | 2004-01-08 | 2005-07-21 | Maple Chase Company | System and method for controlling ignition sources and ventilating systems during high carbon monoxide conditions |
| WO2009135312A1 (en) * | 2008-05-08 | 2009-11-12 | Unify4Life Corporation | Remote control system and method |
| CN104063227A (en) * | 2014-06-30 | 2014-09-24 | 合肥工业大学 | Command learning method based on internet of things |
| CN203851157U (en) * | 2014-05-30 | 2014-09-24 | 王诵捷 | Interface device for access of traditional household electrical appliances to Internet |
| CN203910015U (en) * | 2014-05-05 | 2014-10-29 | 邯郸美的制冷设备有限公司 | Infrared sticker and infrared control system |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6784805B2 (en) * | 2000-03-15 | 2004-08-31 | Intrigue Technologies Inc. | State-based remote control system |
| US7129855B2 (en) * | 2003-09-26 | 2006-10-31 | Openpeak Inc. | Device control system, method, and apparatus |
| US20080250441A1 (en) * | 2007-04-06 | 2008-10-09 | Ajay Sharma | Messaging for communications systems |
| FR2955997B1 (en) * | 2010-02-02 | 2012-01-20 | Pierre Thierry Dominique Gandolfo | MODULAR, RECONFIGURABLE AND COGNITIVE MICROSYSTEM FOR MONITORING AND CONTROLLING REMOTE COMMUNICATING OBJECTS |
| US20140376919A1 (en) * | 2011-03-24 | 2014-12-25 | Robert P. Stratton | Remote Control System and Method |
| KR101875620B1 (en) * | 2012-04-10 | 2018-07-06 | 현대자동차 주식회사 | Engine cooling system and electronic thermostat control system and method thereof |
| KR101377065B1 (en) * | 2012-08-20 | 2014-03-24 | (주)유타스 | Home-automation system using mobile device |
-
2016
- 2016-01-04 WO PCT/US2016/012021 patent/WO2016111916A1/en not_active Ceased
- 2016-01-04 KR KR1020177021721A patent/KR102524513B1/en active Active
- 2016-01-04 CN CN201680010500.0A patent/CN107251530B/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030066080A1 (en) * | 2001-10-02 | 2003-04-03 | John Kamieniecki | Method and apparatus for automatic set-up of electronic devices |
| US20050096753A1 (en) * | 2003-11-04 | 2005-05-05 | Universal Electronics Inc. | Home appliance control system and methods in a networked environment |
| US20050156730A1 (en) * | 2004-01-08 | 2005-07-21 | Maple Chase Company | System and method for controlling ignition sources and ventilating systems during high carbon monoxide conditions |
| WO2009135312A1 (en) * | 2008-05-08 | 2009-11-12 | Unify4Life Corporation | Remote control system and method |
| CN203910015U (en) * | 2014-05-05 | 2014-10-29 | 邯郸美的制冷设备有限公司 | Infrared sticker and infrared control system |
| CN203851157U (en) * | 2014-05-30 | 2014-09-24 | 王诵捷 | Interface device for access of traditional household electrical appliances to Internet |
| CN104063227A (en) * | 2014-06-30 | 2014-09-24 | 合肥工业大学 | Command learning method based on internet of things |
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107938257A (en) * | 2017-11-23 | 2018-04-20 | 广州市首试科技有限公司 | Washing machine with Bluetooth communication function |
| CN110515682B (en) * | 2018-05-22 | 2024-05-07 | 富士胶片商业创新有限公司 | Information processing device, non-transitory computer readable medium, and information processing method |
| CN110515682A (en) * | 2018-05-22 | 2019-11-29 | 富士施乐株式会社 | Information processing unit, non-transitory computer-readable medium and information processing method |
| CN110515661A (en) * | 2018-05-22 | 2019-11-29 | 富士施乐株式会社 | Information processing unit, information processing system and information processing method |
| CN112313920A (en) * | 2018-07-03 | 2021-02-02 | 亚萨合莱有限公司 | Providing connectivity for multiple IOT devices |
| CN112313920B (en) * | 2018-07-03 | 2023-09-08 | 亚萨合莱有限公司 | Provide connectivity for multiple IoT devices |
| CN109862104A (en) * | 2019-02-27 | 2019-06-07 | 江西昊潮科技有限公司 | A kind of Intelligent commercial clothes washing system and its application method based on NB-IoT |
| US20220338281A1 (en) * | 2020-02-26 | 2022-10-20 | Lg Electronics Inc. | Artificial intelligence device for providing device control function based on interworking between devices and method therefor |
| CN114007198A (en) * | 2020-07-13 | 2022-02-01 | 深圳市利维坦技术有限公司 | System and method for context-aware self-configuring logistics hardware |
| US11991040B2 (en) * | 2020-09-10 | 2024-05-21 | Huawei Technologies Co., Ltd. | Network configuration method and device |
| CN112305962A (en) * | 2020-10-21 | 2021-02-02 | 麒麟软件有限公司 | Wireless device control method based on ARM platform supporting Trustzone |
| US12439185B2 (en) | 2020-10-27 | 2025-10-07 | Hewlett-Packard Development Company, L.P. | Configuration page notification items based on environmental conditions |
| CN115803722A (en) * | 2020-10-29 | 2023-03-14 | 株式会社日立制作所 | IoT system and data collection control method |
| CN112905416B (en) * | 2021-02-24 | 2023-08-15 | 河南永安电气消防检测有限公司 | Fire-fighting facility detection method, device and medium based on Internet of things |
| CN112905416A (en) * | 2021-02-24 | 2021-06-04 | 河南永安电气消防检测有限公司 | Fire fighting equipment detection system and method based on Internet of things, computer device and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107251530B (en) | 2021-07-06 |
| WO2016111916A1 (en) | 2016-07-14 |
| KR102524513B1 (en) | 2023-04-20 |
| KR20170102937A (en) | 2017-09-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107251530B (en) | System and method for implementing Internet of Things (IoT) remote control applications | |
| US9774497B2 (en) | System and method for implementing internet of things (IOT) remote control applications | |
| US9774507B2 (en) | System and method for collecting and utilizing user behavior data within an IoT system | |
| US9729340B2 (en) | System and method for notifying a user of conditions associated with an internet-of-things (IoT) hub | |
| US10816944B2 (en) | System and method for using data collected from internet-of-things (IoT) sensors to disable IoT-enabled home devices | |
| US9933768B2 (en) | System and method for implementing internet of things (IOT) remote control applications | |
| US9860681B2 (en) | System and method for selecting a cell carrier to connect an IOT hub | |
| US20160198536A1 (en) | Internet-of-things (iot) hub apparatus and method | |
| US20160197769A1 (en) | System and method for filtering events at an iot hub | |
| CN107431876B (en) | Apparatus and method for intermediary data collection | |
| US10798523B2 (en) | System and method for accurately sensing user location in an IoT system | |
| US11848795B2 (en) | Internet of things (IOT) apparatuses, systems and methods | |
| US9704318B2 (en) | System and method for accurately sensing user location in an IoT system | |
| JP6926085B2 (en) | Secure Things Internet of Things (IoT) Device Provisioning Systems and Methods | |
| US20160323156A1 (en) | System and method for performing wireless spectrum analysis and configuring wireless networks using an internet of things (iot) system | |
| JP2019524013A (en) | System and method for establishing a secure communication channel with an Internet of Things (IOT) device | |
| CN107430499B (en) | System and method for accurate user location sensing in IoT systems | |
| WO2016196552A1 (en) | System and method for an internet of things (iot) moisture sensor | |
| HK1247766B (en) | Apparatus and method for intermediary device data collection | |
| HK1247744A1 (en) | System and method for automatic wireless network authentication |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |