WO2016081582A1 - Internet of things platforms, apparatuses, and methods - Google Patents

Internet of things platforms, apparatuses, and methods Download PDF

Info

Publication number
WO2016081582A1
WO2016081582A1 PCT/US2015/061308 US2015061308W WO2016081582A1 WO 2016081582 A1 WO2016081582 A1 WO 2016081582A1 US 2015061308 W US2015061308 W US 2015061308W WO 2016081582 A1 WO2016081582 A1 WO 2016081582A1
Authority
WO
WIPO (PCT)
Prior art keywords
lot
hub
program code
user
clock
Prior art date
Application number
PCT/US2015/061308
Other languages
French (fr)
Inventor
Joe BRITT
Shin MATSUMURA
Houman FOROOD
Scott Zimmerman
Phillip Myles
Sean ZAWICKI
Daisuke KUTAMI
Justin Lee
Joel BLACK
Original Assignee
Afero, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/550,667 external-priority patent/US9497572B2/en
Priority claimed from US14/550,735 external-priority patent/US9641400B2/en
Priority claimed from US14/550,775 external-priority patent/US20160150021A1/en
Application filed by Afero, Inc. filed Critical Afero, Inc.
Priority to JP2017527371A priority Critical patent/JP6907114B2/en
Priority to KR1020177016711A priority patent/KR102592880B1/en
Priority to KR1020237009536A priority patent/KR102541542B1/en
Priority to CN201580062819.3A priority patent/CN107251490B/en
Publication of WO2016081582A1 publication Critical patent/WO2016081582A1/en
Priority to HK18104820.8A priority patent/HK1245533A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2834Switching of information between an external network and a home network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/285Generic home appliances, e.g. refrigerators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Definitions

  • This invention relates generally to the field of computer systems. More particularly, the invention relates to Internet of Things (loT) platforms, apparatuses, and methods.
  • LoT Internet of Things
  • the "Internet of Things” refers to the interconnection of uniquely-identifiable embedded devices within the Internet infrastructure. Ultimately, loT is expected to result in new, wide-ranging types of applications in which virtually any type of physical thing may provide information about itself or its surroundings and/or may be controlled remotely via client devices over the Internet.
  • loT development and adoption has been slow due to issues related to connectivity, power, and a lack of standardization.
  • one obstacle to loT development and adoption is that no standard platform exists to allow developers to design and offer new loT devices and services.
  • a developer In order enter into the loT market, a developer must design the entire loT platform from the ground up, including the network protocols and infrastructure, hardware, software and services required to support the desired loT implementation.
  • each provider of loT devices uses proprietary techniques for designing and connecting the loT devices, making the adoption of multiple types of loT devices burdensome for end users.
  • Another obstacle to loT adoption is the difficulty associated with connecting and powering loT devices.
  • Connecting appliances such as refrigerators, garage door openers, environmental sensors, home security sensors/controllers, etc, for example, requires an electrical source to power each connected loT device, and such an electrical source is often not conveniently located.
  • FIGS. 1 A-B illustrates different embodiments of an loT system architecture
  • FIG. 2 illustrates an loT device in accordance with one embodiment of the invention
  • FIG. 3 illustrates an loT hub in accordance with one embodiment of the invention
  • FIGS. 4A-B illustrate one embodiment of an loT device for receiving and processing input from an end user
  • FIG. 5A illustrates one embodiment of an loT hub implemented as a clock and information device
  • FIG. 5B illustrates one embodiment of the loT hub clock/information device coupled to a frame with integrated speakers
  • FIGS. 5C-F illustrate different embodiments of an loT clock hub
  • FIG. 6 illustrates a specific application of loT devices for detecting when certain products in a user's home need to be replenished.
  • One embodiment of the invention comprises an Internet of Things (loT) platform which may be utilized by developers to design and build new loT devices and applications.
  • a base hardware/software platform for loT devices including a predefined networking protocol stack and an loT hub through which the loT devices are coupled to the Internet.
  • one embodiment includes an loT service through which the loT hubs and connected loT devices may be accessed and managed as described below.
  • the loT platform includes an loT app or Web application (e.g., executed on a client device) to access and configured the loT service, hub and connected devices.
  • existing online retailers and other Website operators may leverage the loT platform described herein to readily provide unique loT functionality to existing user bases.
  • Figure 1 A illustrates an overview of an architectural platform on which embodiments of the invention may be implemented.
  • the illustrated embodiment includes a plurality of loT devices 101 -105 communicatively coupled over local communication channels 130 to a central loT hub 1 10 which is itself
  • Each of the loT devices 101 -105 may initially be paired to the loT hub 1 10 (e.g., using the pairing techniques described below) in order to enable each of the local communication channels 130.
  • the loT 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 loT service 120, user devices 135 and/or external Websites 130 via the loT hub 1 10. Some of the loT devices 101 -105 may perform a specified function in response to control commands sent through the loT hub 1 10. Various specific examples of information collected by the loT devices 101 -105 and control commands are provided below.
  • the loT device 101 is a user input device designed to record user selections and send the user selections to the loT service 120 and/or Website.
  • the loT hub 1 10 includes a cellular radio to establish a connection to the Internet 220 via a cellular service 1 15 such as a 4G (e.g., Mobile WiMAX, LTE) or 5G cellular data service.
  • a cellular service 1 15 such as a 4G (e.g., Mobile WiMAX, LTE) or 5G cellular data service.
  • the loT hub 1 10 may include a WiFi radio to establish a WiFi connection through a WiFi access point or router 1 1 6 which couples the loT hub 1 10 to the Internet (e.g., via an Internet Service Provider providing Internet service to the end user).
  • a WiFi radio to establish a WiFi connection through a WiFi access point or router 1 1 6 which couples the loT hub 1 10 to the Internet (e.g., via an Internet Service Provider providing Internet service to the end user).
  • the underlying principles of the invention are not limited to any particular type of communication channel or protocol.
  • the loT devices 101 -105 are ultra low-power devices capable of operating for extended periods of time on battery power (e.g., years).
  • the local communication channels 130 may be implemented using a low-power wireless communication technology such as Bluetooth Low Energy (LE).
  • LE Bluetooth Low Energy
  • each of the loT devices 101 -105 and the loT hub 1 10 are equipped with Bluetooth LE radios and protocol stacks.
  • the loT platform includes an loT app or Web application executed on user devices 135 to allow users to access and configure the connected loT devices 101 -105, loT hub 1 10, and/or loT service 120.
  • the app or web application may be designed by the operator of a Website 130 to provide loT functionality to its user base.
  • the Website may maintain a user database 131 containing account records related to each user.
  • FIG. 1 B illustrates additional connection options for a plurality of loT hubs 1 10-1 1 1 , 190
  • a single user may have multiple hubs 1 10-1 1 1 installed onsite at a single user premises 180 (e.g., the user's home or business). This may be done, for example, to extend the wireless range needed to connect all of the loT devices 101 -105.
  • a user may be connected via a local communication channel (e.g., Wifi, Ethernet, Power Line
  • each of the hubs 1 10-1 1 1 may establish a direct connection to the loT service 120 through a cellular 1 15 or WiFi 1 1 6 connection (not explicitly shown in Figure 1 B).
  • one of the loT hubs such as loT hub 1 10 may act as a "master" hub which provides connectivity and/or local services to all of the other loT hubs on the user premises 180, such as loT hub 1 1 1 (as indicated by the dotted line connecting loT hub 1 10 and loT hub 1 1 1 ).
  • the master loT hub 1 10 may be the only loT hub to establish a direct connection to the loT service 120.
  • the master loT hub 1 10 is equipped with a cellular communication interface to establish the connection to the loT service 120. As such, all communication between the loT service 120 and the other loT hubs 1 1 1 will flow through the master loT hub 1 10.
  • the master loT hub 1 10 may be provided with additional program code to perform filtering operations on the data exchanged between the other loT hubs 1 1 1 and loT service 120 (e.g., servicing some data requests locally when possible).
  • the loT service 120 will logically associate the hubs with the user and combine all of the attached loT devices 101 -105 under a single comprehensive user interface, accessible via a user device with the installed app 135 (and/or a browser-based interface).
  • the master loT hub 1 10 and one or more slave loT hubs 1 1 1 may connect over a local network which may be a WiFi network 1 1 6, an Ethernet network, and/or a using power-line communications (PLC) networking (e.g., where all or portions of the network are run through the user's power lines).
  • a local network which may be a WiFi network 1 1 6, an Ethernet network, and/or a using power-line communications (PLC) networking (e.g., where all or portions of the network are run through the user's power lines).
  • PLC power-line communications
  • each of the loT devices 101 -105 may be interconnected with the loT hubs 1 10-1 1 1 using any type of local network channel such as WiFi, Ethernet, PLC, or Bluetooth LE, to name a few.
  • Figure 1 B also shows an loT hub 190 installed at a second user premises 181 .
  • loT hubs 190 may be installed and configured to collect data from loT devices 191 -192 at user premises around the world.
  • the two user premises 180-181 may be configured for the same user.
  • one user premises 180 may be the user's primary home and the other user premises 181 may be the user's vacation home.
  • the loT service 120 will logically associate the loT hubs 1 10-1 1 1 , 190 with the user and combine all of the attached ⁇ devices 101 -105, 191 -192 under a single comprehensive user interface, accessible via a user device with the installed app 135 (and/or a browser-based interface).
  • an exemplary embodiment of an loT 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 the data.
  • the memory 210 may be a volatile memory such as dynamic random access memory (DRAM) or may be a non-volatile memory such as Flash memory.
  • DRAM dynamic random access memory
  • Flash memory non-volatile memory
  • a non-volatile memory may be used for persistent storage and a volatile memory may be used for execution of the program code and data at runtime.
  • 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 communication fabric. The underlying principles of the invention are not limited to any particular implementation of the memory 210.
  • the program code may include application program code 203 defining an application-specific set of functions to be performed by the loT device 201 and library code 202 comprising a set of predefined building blocks which may be utilized by the application developer of the loT device 101 .
  • the library code 202 comprises a set of basic functions required to implement an loT device such as a communication protocol stack 201 for enabling communication between each loT device 101 and the loT hub 1 10.
  • the loT device such as a communication protocol stack 201 for enabling communication between each loT device 101 and the loT hub 1 10.
  • Bluetooth LE radio and antenna 207 may be integrated within the low power microcontroller 200.
  • the underlying principles of the invention are not limited to any particular communication protocol.
  • the particular embodiment shown in Figure 2 also includes a plurality of input devices or sensors 210 to receive user input and provide the user input to the low power microcontroller, which processes the user input in accordance with the
  • each of the input devices include an LED 209 to provide feedback to the end user.
  • the illustrated embodiment includes a battery 208 for supplying power to the low power microcontroller.
  • a battery 208 for supplying power to the low power microcontroller.
  • a non-chargeable coin cell battery is used.
  • an integrated rechargeable battery may be used (e.g., rechargeable by connecting the loT device to an AC power supply (not shown)).
  • a speaker 205 is also provided for generating audio.
  • the low power microcontroller 299 includes audio decoding logic for decoding a compressed audio stream (e.g., such as an MPEG-4/Advanced Audio Coding (AAC) stream) to generate audio on the speaker 205.
  • the low power microcontroller 200 and/or the application code/data 203 may include digitally sampled snippets of audio to provide verbal feedback to the end user as the user enters selections via the input devices 210.
  • one or more other/alternate I/O devices or sensors 250 may be included on the loT device 101 based on the particular application for which the loT device 101 is designed.
  • an environmental sensor may be included to measure temperature, pressure, humidity, etc.
  • a security sensor and/or door lock opener may be included if the loT device is used as a security device.
  • these examples are provided merely for the purposes of illustration.
  • the underlying principles of the invention are not limited to any particular type of loT device.
  • an application developer may readily develop new application code 203 and new I/O devices 250 to interface with the low power microcontroller for virtually any type of loT application.
  • the low power microcontroller 200 also includes a secure key store for storing encryption keys used by the embodiments described below (see, e.g., Figures 4-6 and associated text).
  • the keys may be secured in a subscriber identify module (SIM) as discussed below.
  • SIM subscriber identify module
  • a wakeup receiver 207 is included in one embodiment to wake the loT device from an ultra low power state in which it is consuming virtually no power.
  • the wakeup receiver 207 is configured to cause the loT device 101 to exit this low power state in response to a wakeup signal received from a wakeup transmitter 307 configured on the loT hub 1 10 as shown in Figure 3.
  • the transmitter 307 and receiver 207 together form an electrical resonant transformer circuit such as a Tesla coil. In operation, energy is transmitted via radio frequency signals from the transmitter 307 to the receiver 207 when the hub 1 10 needs to wake the loT device 101 from a very low power state.
  • the loT device 101 may be configured to consume virtually no power when it is in its low power state because it does not need to continually "listen" for a signal from the hub (as is the case with network protocols which allow devices to be awakened via a network signal). Rather, the microcontroller 200 of the loT device 101 may be configured to wake up after being effectively powered down by using the energy electrically transmitted from the transmitter 307 to the receiver 207.
  • the loT hub 1 10 also includes a memory 317 for storing program code and data 305 and hardware logic 301 such as a microcontroller for executing the program code and processing the data.
  • a wide area network (WAN) interface 302 and antenna 310 couple the loT hub 1 10 to the cellular service 1 15.
  • WAN wide area network
  • the loT hub 1 10 may also include a local network interface (not shown) such as a WiFi interface (and WiFi antenna) or Ethernet interface for establishing a local area network communication channel.
  • the hardware logic 301 also includes a secure key store for storing encryption keys used by the embodiments described below (see, e.g., Figures 4-6 and associated text).
  • the keys may be secured in a subscriber identify module (SIM) as discussed below.
  • SIM subscriber identify module
  • a local communication interface 303 and antenna 31 1 establishes local communication channels with each of the loT devices 101 -105.
  • the local communication interface 303/antenna 31 1 implements the Bluetooth LE standard.
  • the underlying principles of the invention are not limited to any particular protocols for establishing the local communication channels with the loT devices 101 -105.
  • the WAN interface 302 and/or local communication interface 303 may be embedded within the same chip as the hardware logic 301 .
  • the program code and data includes a communication protocol stack 308 which may include separate stacks for communicating over the local communication interface 303 and the WAN interface 302.
  • device pairing program code and data 306 may be stored in the memory to allow the loT hub to pair with new loT devices.
  • each new loT device 101 -105 is assigned a unique code which is communicated to the loT hub 1 10 during the pairing process.
  • the unique code may be embedded in a barcode on the loT device and may be read by the barcode reader 106 or may be communicated over the local
  • the unique ID code is embedded magnetically on the loT device and the loT hub has a magnetic sensor such as an radio frequency ID (RFID) or near field communication (NFC) sensor to detect the code when the loT device 101 is moved within a few inches of the loT hub 1 10.
  • RFID radio frequency ID
  • NFC near field communication
  • the loT hub 1 10 may verify the unique ID by querying a local database (not shown), performing a hash to verify that the code is acceptable, and/or communicating with the loT service 120, user device 135 and/or Website 130 to validate the ID code. Once validated, in one embodiment, the loT hub 1 10 pairs the loT device 101 and stores the pairing data in memory 317 (which, as mentioned, may include non-volatile memory). Once pairing is complete, the loT hub 1 10 may connect with the loT device 101 to perform the various loT functions described herein.
  • the organization running the loT service 120 may provide the loT hub 1 10 and a basic hardware/software platform to allow developers to easily design new loT services.
  • developers may be provided with a software development kit (SDK) to update the program code and data 305 executed within the hub 1 10.
  • the SDK may include an extensive set of library code 202 designed for the base loT hardware (e.g., the low power microcontroller 200 and other components shown in Figure 2) to facilitate the design of various different types of applications 101 .
  • the SDK includes a graphical design interface in which the developer needs only to specify input and outputs for the loT device.
  • the SDK also includes a library code base to facilitate the design of apps for mobile devices (e.g., iPhone and Android devices).
  • the loT hub 1 10 manages a continuous bi-directional stream of data between the loT devices 101 -105 and the loT service 120.
  • the loT hub may maintain an open TCP socket to provide regular updates to the user device 135 and/or external Websites 130.
  • the specific networking protocol used to provide updates may be tweaked based on the needs of the underlying application. For example, in some cases, where may not make sense to have a continuous bi-directional stream, a simple request/response protocol may be used to gather information when needed.
  • both the loT hub 1 10 and the loT devices 101 -105 are automatically upgradeable over the network.
  • a new update is available for the loT hub 1 10 it may automatically download and install the update from the loT service 120. It may first copy the updated code into a local memory, run and verify the update before swapping out the older program code.
  • updates are available for each of the loT devices 101 -105, they may initially be downloaded by the loT hub 1 10 and pushed out to each of the loT devices 101 -105. Each loT device 101 -105 may then apply the update in a similar manner as described above for the loT hub and report back the results of the update to the loT hub 1 10. If the update is successful, then the loT hub 1 10 may delete the update from its memory and record the latest version of code installed on each loT device (e.g., so that it may continue to check for new updates for each loT device).
  • the loT hub 1 10 is powered via A/C power.
  • the loT hub 1 10 may include a power unit 390 with a transformer for transforming A/C voltage supplied via an A/C power cord to a lower DC voltage.
  • Figures 4A-B illustrate one particular embodiment of an loT device 400 which is capable of receiving a card 410 containing a list of selectable items 41 1 -415.
  • the card may have a barcode 420 printed thereon which may be read by the barcode reader of the loT device 400 to identify each of the printed items and associate the items with each of a corresponding plurality of user- selectable buttons 401 .
  • button 401 is associated with item 41 1
  • button 402 is associated with item 412
  • button 403 is associated with item 413
  • button 404 is associated with item 414
  • button 405 is associated with item 415.
  • each of the items 41 1 -415 comprise grocery items (e.g., water, prune juice, rice, toiler paper, and tuna).
  • grocery items e.g., water, prune juice, rice, toiler paper, and tuna.
  • a set of magnets 430-432 may be coupled to the back of the loT device 400 to allow the user to magnetically attach the loT device 400 to the front of a refrigerator.
  • the illustrated loT device 400 is particularly suitable for elderly users or other users who are not technically savvy (and/or do not have access to a full-featured client).
  • the son/daughter or other relative of the end user may establish an account on a grocery Website and uniquely design a set of cards 410 on behalf of the end user, based on the grocery items commonly ordered by the end user.
  • the grocery Website 130 in this example may have an established business arrangement with the loT service 120 such that the loT service 120 manages the loT devices 400 and cards 410 on behalf of the grocery Website 130.
  • the loT service may send the end user (or the user's relatives) a new loT device 400, an loT hub 1 10 (if the end user does not already have one installed), and the set of cards 410.
  • the loT device 400 is pre-provisioned by the loT service 120 with a unique ID embedded which is known by the loT service.
  • the unique ID associated with the device 400 and identification data identifying the items selected by the end user are transmitted over the celluar service 1 15 (or WiFi) to the loT service and/or directly to the grocery Website 130.
  • the grocery Website maintains a mapping between the end user's account and the device ID which may be communicated to the grocery service by the loT service 120 after provisioning the new device 400. Consequently, the grocery Website 130 identifies the end user with the device ID and fulfills the order for the items selected by the end user.
  • the grocery service may schedule delivery for the items to the end user's home address which may be stored in the end user database 121 along with the association of the user's device ID with the end user's account.
  • the loT service 120 does not need to maintain a database containing any user account data (thereby protecting the end user's privacy and simplifying the implementation of the loT service). Rather, the loT service may only track the device ID for each of the loT devices provisioned to end users.
  • the LED 209 in that button may be illuminated to reflect the selection.
  • the user may select a particular button 401 -405 multiple times.
  • the LEDs may change colors to reflect the number of each item ordered.
  • each button may have a small LCD (or other electronic visual display) configured to show the number of items selected by the end user.
  • the user may insert multiple cards 410 to select items in this manner and, when complete, select a completion button 406 which completes the transaction.
  • the transaction may be completed automatically after a specified period of time has passed with no additional user input. Once the transaction is completed, in one embodiment, the LED within button 406 (or a separate "order on route" LED) may remain illuminated until a delivery is made to indicate that the ordered items are on the way.
  • the low power microcontroller 200 transmits the device ID with identification data for each of the selected items (and the number selected) to the loT hub 1 10 which forwards the user's selections to the loT service 120 and/or directly to the grocery website 130.
  • the address and other account information of the user may be associated with the device ID in an end user database 121 .
  • the user's account may be debited by an amount equal to the cost of the selected items, and delivery to the user's home may be scheduled.
  • the loT device 400 may be reset to reflect that no new orders are currently pending.
  • audio feedback is used to communicate the items ordered and the amounts for each item.
  • digital audio samples for each item on each of the cards 410 may be transmitted to the device 400 via the loT hub 410.
  • the audio samples may then be played back using the audio decoder in the low power microcontroller 200 and the speaker 205.
  • the application program code 203 executed on the low power microcontroller 200 may identify the item (based on the barcode) and further identify a digital audio sample associated with the selected item. It may then cause the low power microcontroller 200 to render the digital audio sample on the speaker 205 along with a digital audio sample indicating the number ordered.
  • the application program code 203 executed on the low power microcontroller 200 may be capable of speech synthesis.
  • a text description of each item may be provided to the loT device 400, which will perform text-to-speech synthesis to verbally speak the text description upon selection of each item by the end user.
  • details of the transaction may be audibly read back to the user through the speaker. This may include, for example, a description of the items ordered and/or an anticipated delivery date.
  • the delivery date information is transmitted to the loT device 400 by the grocery Website 130 after the order details have been received and evaluated by the Website.
  • the loT device 400 may be used for virtually any application which requires a user to select among a set of options. For example, a set of such devices may be placed outside of an apartment complex and cards may be inserted listing the names of the residences of each apartment.
  • the loT device 400 may transmit a notification to the loT service 120 (potentially with a picture of the user who made the selection if a network camera is available at the location).
  • the loT service 120 may then ring the doorbell of the appropriate residence and/or send a text or voice call to the user device 135 of the user in the residence.
  • the doorbell is implemented as another loT device communicatively coupled to the loT service via an loT hub as described herein.
  • the loT device 400 may be implemented as a toy or educational device. For example, a listing of different types of dinosaurs, animals, or other subjects may be printed on cards. In response to selection of a button, a description of the corresponding subject may be audibly generated for the end user. A virtually unlimited number of applications are possible in which a user is required to select from a set of displayed options.
  • the loT hub 550 is implemented as a smart clock/calendar device capable of being mounted on a wall of the user's home or placed on an end table.
  • this embodiment includes a video display interface and screen for displaying various types of information including the current time 551 and temperature 552 and a set of calendar events 560-563 for the day.
  • the video display interface may be integrated within the low power microcontroller 200 or may be implemented in a separate chip communicatively coupled to the microcontroller 200.
  • a time scale 565 is shown to provide a visual indication of the time at which each of the calendar events are scheduled to occur and, as illustrated, different graphics are used to connote different types of calendar events.
  • the user has a doctor's appointment 561 at 9am, a lunch appointment 563 at noon, and a travel event at approximately 2pm.
  • a weather event 560 is displayed to indicate that snow in the forecast starting at 3:30pm.
  • transitional weather events such as snow or rain may be displayed in the background using graphics and/or animation (e.g., animation representing snow, rain, wind, etc).
  • a small map may be displayed to indicate the location of the appointment and/or the address of the appointment may simply be displayed.
  • the map/address display may also include an indication of the current amount of time required to travel to the appointment from the location of the loT clock hub 550. All of the travel information may be extracted from an online mapping service such as Google MapsTM or MapquestTM.
  • indications of major events such as Earthquakes may also be displayed on the loT clock hub 550 along with pertinent information (such as the location of the event).
  • pertinent information such as the location of the event.
  • the above are merely illustrative examples.
  • Various other types of information may be displayed on the loT clock hub 550 within the context of the timeline 565.
  • the loT clock hub 550 will connect to the user's social networking service to download recently posted pictures and/or comments form the user's social networking account. These may include postings made by the user and/or made by friends and/or family members specified by the user. For example, the user may configured the loT clock hub 550 to display new postings only made by certain specified "friends" of the user on the social networking site.
  • updates to the data displayed on the clock is transmitted from the loT service 120, one or more Websites 130 on which the user has accounts, and/or directly from an app on the user's device 135.
  • the calendar data may be provided by a calendar managed by the user via an app on the user device 135 and/or may be provided via a server-side calendar such as a Microsoft Exchange Server or a cloud-based server on which the user maintains a calendar (e.g., run on the loT service 120 or Website 130).
  • the current time and temperature may also be provided by network servers such as the loT service 120 and/or may be read from one or more loT devices 101 -105 coupled to the loT clock hub 550.
  • one of the loT devices 101 -105 may be an environmental sensor and may provide the loT clock hub 550 with the current temperature, pressure, humidity, etc.
  • the clock hub 550 is further configured to play back a user's audio playlist from an external server and/or the user's mobile device.
  • the loT clock 550 may retrieve the playlist from the user's music library (e.g., using the protocols common to that library) and may then stream and play back the music in the playlist using the built in audio decoder and speaker 205.
  • the loT clock 550 may retrieve the playlist from the user's music library (e.g., using the protocols common to that library) and may then stream and play back the music in the playlist using the built in audio decoder and speaker 205.
  • the loT clock hub 550 establishes a direct local connection with the user's mobile device 135 using the same network protocols that it uses to communicate with the loT devices 101 -105. For example, it may establish a Bluetooth LE audio
  • the loT clock hub 550 does not include an input device to enter new entries directly on the clock. That is, the loT clock hub 550 receives data from network sources but not directly from the user who updates entries via the app on the mobile device 135. Alternately, in one embodiment, the user may interact directly with the loT clock hub 550 itself to enter new data (e.g., via a touchscreen built in to the loT clock hub 550).
  • one embodiment of the loT clock hub 550 may download pictures to be displayed, either directly from the user's mobile device 135, from the loT service 120, and/or from one or more other external servers (e.g., Website 130) on which the user stores pictures.
  • the specific pictures, audio and other content to be displayed on the loT clock hub 550 may be specified by the user interacting with and configuring the hub via the loT service 120 (which, as mentioned, may be accessible via an app installed on the user's computing device 135).
  • the loT clock hub 550 may be configured to receive and display electronic messages sent by the end user. For example, it may be configured with an email message address or a text message address. For example, if the loT clock hub 550 is in a highly visible location in the user's home, the user may send a message to the entire family by sending a text message or an email message to the loT clock hub 550. In one embodiment, if the message contains a photo, then the loT clock hub 550 may display the photo.
  • the loT service 120 acts as a translator for content to be displayed or played back on the loT hub 1 10 and/or loT devices 101 -105.
  • photos transmitted from the user's mobile device 135 are converted by the loT service 120 into a format/resolution which the loT hub 1 10 and/or loT devices 101 -105 are capable of rendering.
  • the loT service 120 may convert the audio into a format (potentially at a lower bitrate or different type of compression) that the loT hub 1 10 and/or loT devices 101 -105 are configured to play back.
  • the loT clock hub 550 may be designed with mounting brackets or holes so that it may be mounted on a wall in a convenient location such as the user's kitchen.
  • the loT clock hub 550 may be adapted to interface with different types/styles of artistic frames 501 .
  • magnets 506 are attached or embedded within each frame 501 to magnetically attach the frame to the loT hub clock 550 with may include corresponding magnets or metal around its periphery.
  • the loT clock hub 550 may detect the model of frame which is attached based on the locations of the magnets 506 and/or based on an ID code encoded in the magnets.
  • the position of the magnets or the encoding contained within the magnetic material may act as a fingerprint to uniquely identify different types of frames.
  • the loT clock hub 550 may include a physical interface to interface with the frame 501 .
  • an ID code identifying the frame may be provided over the interface.
  • the interface may include a physical audio connection for embodiments described below in which the frame includes speakers 505.
  • the style of the information displayed within the loT clock hub display may automatically be modified based on the type of frame being attached.
  • the colors/fonts/graphical styles used to display information on the loT clock hub 550 may automatically switch to match the modern frame style.
  • the colors/fonts/graphical styles used to display information on the loT clock hub 550 may automatically switch to match the traditional frame style.
  • One embodiment of the frame 501 may be designed for use in a child's room (e.g., a Hello KittyTM frame or a Cuckoo clock may be designed).
  • the loT clock hub 550 may be configured to display an appropriate background to match the frame type (e.g., displaying pictures of Hello Kitty or a Cuckoo on the hour).
  • the display on the loT clock hub 550 may be adjusted to accommodate the frame shape (e.g., not displaying content in regions of the screen obscured by the frame).
  • the frame 501 is equipped with a set of high quality speakers 505 for generating audio provided over the audio interface from the loT clock hub 550.
  • the loT clock hub 550 downloads a user's audio playlist (as discussed above) and streams/decodes the audio identified in the playlist, the audio may be played through the high quality speakers 505 rather than the speaker 205 built in to the loT clock hub 550.
  • a variety of different types of frames 501 may be coupled to the loT hub 550 to provide various different I/O capabilities.
  • a frame with an embedded camera may be installed to take pictures or capture video in response to commands sent to the loT hub 550 from the user's mobile device/app 135.
  • the frame 501 may act as a local security camera in the user's home.
  • the frame may have an integrated IR blaster to act as a remote control device, controllable via the user device/app (e.g., to control local A/V equipment such as the user's TV and receiver).
  • the frame 501 may be equipped with a heat sensor, smoke sensor, and/or carbon monoxide detector.
  • the loT clock hub 550 may generate an alarm in response to any of the sensors indicating levels above acceptable thresholds. It may also be configured to transmit the alarm to a service such as a home monitoring service and/or the local fire department.
  • FIG. 5C-F Another embodiment of the loT clock hub 550 is illustrated in Figures 5C-F which includes options for mounting the loT clock hub 550 on a wall or resting the loT clock hub 550 on a desk (or other structure).
  • the loT clock hub 550 may be shipped to the end user with a circular plate 510 magnetically affixed within a circular cavity 513 formed on the back of the loT clock hub 550.
  • Figure 5C shows the circular plate 510 magnetically attached within the cavity 513
  • Figure 5D shows the circular plate 510 removed from the cavity 513.
  • the circular plate 510 may be formed from magnetic material and/or magnetic material may be included beneath the circular cavity 513 to allow the plate 510 to be fixedly attached when in contact with the circular cavity 513.
  • the circular plate 510 includes holes 512 through which screws may be drilled to affix the circular plate to a wall.
  • the loT clock hub 550 may then be attached to the circular plate 510 to affix the loT clock hub 550 to a wall, as shown in Figure 5E.
  • a circular plate 510 is particularly beneficial for wall mounting because a user may affix the circular plate 510 to the wall in any orientation (i.e., without using a level). The user may then magnetically affix and loT clock hub 550 to the wall by magnetically engaging the circular plate 510 with the circular cavity 513 on the back of the loT clock hub 550 and rotating the loT clock hub 550 as needed to achieve the correct level.
  • the back of the loT clock hub 550 may include an insertion slot 51 1 into which the circular plate 510 may be inserted to provide support if the user chooses to rest the loT clock hub 550 on a table or desk (or other structure).
  • Figure 5F illustrates the circular plate 510 inserted in insertion slot 51 1 of one embodiment of the loT clock hub 550. As illustrated, once inserted, the loT clock hub 550 may be leaned backwards in a slightly angled orientation, relying on the balance provided by the circular plate 510.
  • a single support element - the circular plate 510 - may be used for both wall mounting of the loT clock hub 550 and for supporting the loT clock hub 550 on a table or other surface.
  • Figure 6 illustrates a specific application in which one loT device 101 is coupled to or embedded in a water dispenser 601 and another loT device 102 is embedded in a rice dispenser 602.
  • the loT device 101 includes a sensor (illustrated as 250 in Figure 2) to detect whether the amount of water currently in the dispenser 601 is below a specified threshold amount.
  • the sensor 250 may measure the weight of the water in the dispenser and report the current weight to the low power microcontroller 200.
  • the loT device 101 may transmit a message indicating that a new water container is needed.
  • the message may be passed through the loT hub 1 10 to the loT service 120 and/or an external Website 130 to place an order for additional water.
  • the order may include the identify of the loT device 101 (using a unique ID code) which is associated with the user's account including the user's home address and billing data.
  • the new water container may then be automatically shipped to the user's home.
  • the loT device 102 within the rice dispenser 602 may detect when the weight of the rice contained therein reaches a specified threshold.
  • the loT device 102 may then automatically send a message (based on the application program code 203) when the weight reaches a specified threshold.
  • loT devices 101 -105 may be integrated within loT devices 101 -105 to collect various different types of information.
  • loT devices with heat sensors may be configured on or near a stove to detect when the stove's burners are on.
  • the loT devices may also be configured to control the stove (e.g., turn it on/off) in response to signals transmitted from the app on the user's device 135.
  • loT devices may include accelerometers and be coupled to devices around the user's home and/or to the user himself to detect motion (to detect, for example, the number of steps taken by the user, or the frequency with which certain objects in the user's home are used, etc).
  • the underlying principles of the invention may be implemented in a virtually unlimited number of applications and contexts.
  • Embodiments of the invention may include various steps, which have been described above.
  • the steps may be embodied in machine-executable instructions which may be used to cause a general-purpose or special-purpose processor to perform the steps.
  • these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination thereof
  • instructions may refer to specific configurations of hardware such as application specific integrated circuits (ASICs) configured to perform certain operations or having a predetermined functionality or software instructions stored in memory embodied in a non-transitory computer readable medium.
  • ASICs application specific integrated circuits
  • the techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., an end station, a network element, etc.).
  • Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer machine-readable media, such as non-transitory computer machine-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer machine-readable
  • non-transitory computer machine-readable storage media e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory
  • Such electronic devices typically include a set 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 (e.g., a keyboard, a touchscreen, and/or a display), and network connections.
  • the coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers).
  • 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.
  • 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.
  • one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.
  • numerous specific details were set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. In certain instances, well known structures and functions were not described in elaborate detail in order to avoid obscuring the subject matter of the present invention. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.

Abstract

An Internet of Things system and method are described. For example, one embodiment of a system comprises: an IoT hub comprising a WAN interface to couple the IoT hub to an IoT service over the WAN, and a local communication interface to communicatively couple the IoT hub to a plurality of different types of IoT devices; and at least one IoT device having a memory for storing program code and a microcontroller for executing the program code, wherein the program code includes library program code comprising basic building blocks usable by a developer to implement any IoT device by creating application program code which utilizes the library program code, wherein at least one of the basic building blocks comprises a communication stack to enable communication with the IoT hub, the library program code provided to the developer in a software development kit (SDK) with the microcontroller.

Description

INTERNET OF THINGS PLATFORMS, APPARATUSES, AND METHODS
BACKGROUND
Field of the Invention
[0001] This invention relates generally to the field of computer systems. More particularly, the invention relates to Internet of Things (loT) platforms, apparatuses, and methods.
Description of the Related Art
[0002] The "Internet of Things" refers to the interconnection of uniquely-identifiable embedded devices within the Internet infrastructure. Ultimately, loT is expected to result in new, wide-ranging types of applications in which virtually any type of physical thing may provide information about itself or its surroundings and/or may be controlled remotely via client devices over the Internet.
[0003] loT development and adoption has been slow due to issues related to connectivity, power, and a lack of standardization. For example, one obstacle to loT development and adoption is that no standard platform exists to allow developers to design and offer new loT devices and services. In order enter into the loT market, a developer must design the entire loT platform from the ground up, including the network protocols and infrastructure, hardware, software and services required to support the desired loT implementation. As a result, each provider of loT devices uses proprietary techniques for designing and connecting the loT devices, making the adoption of multiple types of loT devices burdensome for end users. Another obstacle to loT adoption is the difficulty associated with connecting and powering loT devices.
Connecting appliances such as refrigerators, garage door openers, environmental sensors, home security sensors/controllers, etc, for example, requires an electrical source to power each connected loT device, and such an electrical source is often not conveniently located.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
[0005] FIGS. 1 A-B illustrates different embodiments of an loT system architecture;
[0006] FIG. 2 illustrates an loT device in accordance with one embodiment of the invention;
[0007] FIG. 3 illustrates an loT hub in accordance with one embodiment of the invention;
[0008] FIGS. 4A-B illustrate one embodiment of an loT device for receiving and processing input from an end user;
[0009] FIG. 5A illustrates one embodiment of an loT hub implemented as a clock and information device;
[0010] FIG. 5B illustrates one embodiment of the loT hub clock/information device coupled to a frame with integrated speakers;
[0011] FIGS. 5C-F illustrate different embodiments of an loT clock hub; and
[0012] FIG. 6 illustrates a specific application of loT devices for detecting when certain products in a user's home need to be replenished.
DETAILED DESCRIPTION
[0013] In the following description, for the 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 apparent, however, to one skilled in the art that the 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 to avoid obscuring the underlying principles of the embodiments of the invention.
[0014] One embodiment of the invention comprises an Internet of Things (loT) platform which may be utilized by developers to design and build new loT devices and applications. In particular, one embodiment includes a base hardware/software platform for loT devices including a predefined networking protocol stack and an loT hub through which the loT devices are coupled to the Internet. In addition, one embodiment includes an loT service through which the loT hubs and connected loT devices may be accessed and managed as described below. In addition, one embodiment of the loT platform includes an loT app or Web application (e.g., executed on a client device) to access and configured the loT service, hub and connected devices. Existing online retailers and other Website operators may leverage the loT platform described herein to readily provide unique loT functionality to existing user bases.
[0015] Figure 1 A illustrates an overview of an architectural platform on which embodiments of the invention may be implemented. In particular, the illustrated embodiment includes a plurality of loT devices 101 -105 communicatively coupled over local communication channels 130 to a central loT hub 1 10 which is itself
communicatively coupled to an loT service 120 over the Internet 220. Each of the loT devices 101 -105 may initially be paired to the loT hub 1 10 (e.g., using the pairing techniques described below) in order to enable each of the local communication channels 130.
[0016] The loT 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 loT service 120, user devices 135 and/or external Websites 130 via the loT hub 1 10. Some of the loT devices 101 -105 may perform a specified function in response to control commands sent through the loT hub 1 10. Various specific examples of information collected by the loT devices 101 -105 and control commands are provided below. In one embodiment described below, the loT device 101 is a user input device designed to record user selections and send the user selections to the loT service 120 and/or Website.
[0017] In one embodiment, the loT hub 1 10 includes a cellular radio to establish a connection to the Internet 220 via a cellular service 1 15 such as a 4G (e.g., Mobile WiMAX, LTE) or 5G cellular data service. Alternatively, or in addition, the loT hub 1 10 may include a WiFi radio to establish a WiFi connection through a WiFi access point or router 1 1 6 which couples the loT hub 1 10 to the Internet (e.g., via an Internet Service Provider providing Internet service to the end user). 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.
[0018] In one embodiment, the loT devices 101 -105 are ultra low-power devices capable of operating for extended periods of time on battery power (e.g., years). To conserve power, the local communication channels 130 may be implemented using a low-power wireless communication technology such as Bluetooth Low Energy (LE). In this embodiment, each of the loT devices 101 -105 and the loT hub 1 10 are equipped with Bluetooth LE radios and protocol stacks.
[0019] As mentioned, in one embodiment, the loT platform includes an loT app or Web application executed on user devices 135 to allow users to access and configure the connected loT devices 101 -105, loT hub 1 10, and/or loT service 120. In one embodiment, the app or web application may be designed by the operator of a Website 130 to provide loT functionality to its user base. As illustrated, the Website may maintain a user database 131 containing account records related to each user.
[0020] Figure 1 B illustrates additional connection options for a plurality of loT hubs 1 10-1 1 1 , 190 In this embodiment a single user may have multiple hubs 1 10-1 1 1 installed onsite at a single user premises 180 (e.g., the user's home or business). This may be done, for example, to extend the wireless range needed to connect all of the loT devices 101 -105. As indicated, if a user has multiple hubs 1 10, 1 1 1 they may be connected via a local communication channel (e.g., Wifi, Ethernet, Power Line
Networking, etc). In one embodiment, each of the hubs 1 10-1 1 1 may establish a direct connection to the loT service 120 through a cellular 1 15 or WiFi 1 1 6 connection (not explicitly shown in Figure 1 B). Alternatively, or in addition, one of the loT hubs such as loT hub 1 10 may act as a "master" hub which provides connectivity and/or local services to all of the other loT hubs on the user premises 180, such as loT hub 1 1 1 (as indicated by the dotted line connecting loT hub 1 10 and loT hub 1 1 1 ). For example, the master loT hub 1 10 may be the only loT hub to establish a direct connection to the loT service 120. In one embodiment, only the "master" loT hub 1 10 is equipped with a cellular communication interface to establish the connection to the loT service 120. As such, all communication between the loT service 120 and the other loT hubs 1 1 1 will flow through the master loT hub 1 10. In this role, the master loT hub 1 10 may be provided with additional program code to perform filtering operations on the data exchanged between the other loT hubs 1 1 1 and loT service 120 (e.g., servicing some data requests locally when possible).
[0021] Regardless of how the loT hubs 1 10-1 1 1 are connected, in one embodiment, the loT service 120 will logically associate the hubs with the user and combine all of the attached loT devices 101 -105 under a single comprehensive user interface, accessible via a user device with the installed app 135 (and/or a browser-based interface).
[0022] In this embodiment, the master loT hub 1 10 and one or more slave loT hubs 1 1 1 may connect over a local network which may be a WiFi network 1 1 6, an Ethernet network, and/or a using power-line communications (PLC) networking (e.g., where all or portions of the network are run through the user's power lines). In addition, to the loT hubs 1 10-1 1 1 , each of the loT devices 101 -105 may be interconnected with the loT hubs 1 10-1 1 1 using any type of local network channel such as WiFi, Ethernet, PLC, or Bluetooth LE, to name a few.
[0023] Figure 1 B also shows an loT hub 190 installed at a second user premises 181 . A virtually unlimited number of such loT hubs 190 may be installed and configured to collect data from loT devices 191 -192 at user premises around the world. In one embodiment, the two user premises 180-181 may be configured for the same user. For example, one user premises 180 may be the user's primary home and the other user premises 181 may be the user's vacation home. In such a case, the loT service 120 will logically associate the loT hubs 1 10-1 1 1 , 190 with the user and combine all of the attached ΙοΤ devices 101 -105, 191 -192 under a single comprehensive user interface, accessible via a user device with the installed app 135 (and/or a browser-based interface).
[0024] As illustrated in Figure 2, an exemplary embodiment of an loT 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 the data. The memory 210 may be a volatile memory such as dynamic random access memory (DRAM) or may be a non-volatile memory such as Flash memory. In one embodiment, a non-volatile memory may be used for persistent storage and a volatile memory may be used for execution of the program code and data at runtime. Moreover, 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 communication fabric. The underlying principles of the invention are not limited to any particular implementation of the memory 210.
[0025] As illustrated, the program code may include application program code 203 defining an application-specific set of functions to be performed by the loT device 201 and library code 202 comprising a set of predefined building blocks which may be utilized by the application developer of the loT device 101 . In one embodiment, the library code 202 comprises a set of basic functions required to implement an loT device such as a communication protocol stack 201 for enabling communication between each loT device 101 and the loT hub 1 10. As mentioned, in one embodiment, the
communication protocol stack 201 comprises a Bluetooth LE protocol stack. In this embodiment, 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.
[0026] The particular embodiment shown in Figure 2 also includes a plurality of input devices or sensors 210 to receive user input and provide the user input to the low power microcontroller, which processes the user input in accordance with the
application code 203 and library code 202. In one embodiment, each of the input devices include an LED 209 to provide feedback to the end user.
[0027] In addition, the illustrated embodiment includes a battery 208 for supplying power to the low power microcontroller. In one embodiment, a non-chargeable coin cell battery is used. However, in an alternate embodiment, an integrated rechargeable battery may be used (e.g., rechargeable by connecting the loT device to an AC power supply (not shown)). [0028] A speaker 205 is also provided for generating audio. In one embodiment, the low power microcontroller 299 includes audio decoding logic for decoding a compressed audio stream (e.g., 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 the application code/data 203 may include digitally sampled snippets of audio to provide verbal feedback to the end user as the user enters selections via the input devices 210.
[0029] In one embodiment, one or more other/alternate I/O devices or sensors 250 may be included on the loT device 101 based on the particular application for which the loT device 101 is designed. For example, an environmental sensor may be included to measure temperature, pressure, humidity, etc. A security sensor and/or door lock opener may be included if the loT device is used as a security device. Of course, these examples are provided merely for the purposes of illustration. The underlying principles of the invention are not limited to any particular type of loT device. In fact, given the highly programmable nature of the low power microcontroller 200 equipped with the library code 202, an application developer may readily develop new application code 203 and new I/O devices 250 to interface with the low power microcontroller for virtually any type of loT application.
[0030] In one embodiment, the low power microcontroller 200 also includes a secure key store for storing encryption keys used by the embodiments described below (see, e.g., Figures 4-6 and associated text). Alternatively, the keys may be secured in a subscriber identify module (SIM) as discussed below.
[0031] A wakeup receiver 207 is included in one embodiment to wake the loT device from an ultra low power state in which it is consuming virtually no power. In one embodiment, the wakeup receiver 207 is configured to cause the loT device 101 to exit this low power state in response to a wakeup signal received from a wakeup transmitter 307 configured on the loT hub 1 10 as shown in Figure 3. In particular, in one embodiment, the transmitter 307 and receiver 207 together form an electrical resonant transformer circuit such as a Tesla coil. In operation, energy is transmitted via radio frequency signals from the transmitter 307 to the receiver 207 when the hub 1 10 needs to wake the loT device 101 from a very low power state. Because of the energy transfer, the loT device 101 may be configured to consume virtually no power when it is in its low power state because it does not need to continually "listen" for a signal from the hub (as is the case with network protocols which allow devices to be awakened via a network signal). Rather, the microcontroller 200 of the loT device 101 may be configured to wake up after being effectively powered down by using the energy electrically transmitted from the transmitter 307 to the receiver 207.
[0032] As illustrated in Figure 3, the loT hub 1 10 also includes a memory 317 for storing program code and data 305 and hardware logic 301 such as a microcontroller for executing the program code and processing the data. A wide area network (WAN) interface 302 and antenna 310 couple the loT hub 1 10 to the cellular service 1 15.
Alternatively, as mentioned above, the loT hub 1 10 may also include a local network interface (not shown) such as a WiFi interface (and WiFi antenna) or Ethernet interface for establishing a local area network communication channel. In one embodiment, the hardware logic 301 also includes a secure key store for storing encryption keys used by the embodiments described below (see, e.g., Figures 4-6 and associated text).
Alternatively, the keys may be secured in a subscriber identify module (SIM) as discussed below.
[0033] A local communication interface 303 and antenna 31 1 establishes local communication channels with each of the loT devices 101 -105. As mentioned above, in one embodiment, the local communication interface 303/antenna 31 1 implements the Bluetooth LE standard. However, the underlying principles of the invention are not limited to any particular protocols for establishing the local communication channels with the loT devices 101 -105. Although illustrated as separate units in Figure 3, the WAN interface 302 and/or local communication interface 303 may be embedded within the same chip as the hardware logic 301 .
[0034] In one embodiment, the program code and data includes a communication protocol stack 308 which may include separate stacks for communicating over the local communication interface 303 and the WAN interface 302. In addition, device pairing program code and data 306 may be stored in the memory to allow the loT hub to pair with new loT devices. In one embodiment, each new loT device 101 -105 is assigned a unique code which is communicated to the loT hub 1 10 during the pairing process. For example, the unique code may be embedded in a barcode on the loT device and may be read by the barcode reader 106 or may be communicated over the local
communication channel 130. In an alternate embodiment, the unique ID code is embedded magnetically on the loT device and the loT hub has a magnetic sensor such as an radio frequency ID (RFID) or near field communication (NFC) sensor to detect the code when the loT device 101 is moved within a few inches of the loT hub 1 10.
[0035] In one embodiment, once the unique ID has been communicated, the loT hub 1 10 may verify the unique ID by querying a local database (not shown), performing a hash to verify that the code is acceptable, and/or communicating with the loT service 120, user device 135 and/or Website 130 to validate the ID code. Once validated, in one embodiment, the loT hub 1 10 pairs the loT device 101 and stores the pairing data in memory 317 (which, as mentioned, may include non-volatile memory). Once pairing is complete, the loT hub 1 10 may connect with the loT device 101 to perform the various loT functions described herein.
[0036] In one embodiment, the organization running the loT service 120 may provide the loT hub 1 10 and a basic hardware/software platform to allow developers to easily design new loT services. In particular, in addition to the loT hub 1 10, developers may be provided with a software development kit (SDK) to update the program code and data 305 executed within the hub 1 10. In addition, for loT devices 101 , the SDK may include an extensive set of library code 202 designed for the base loT hardware (e.g., the low power microcontroller 200 and other components shown in Figure 2) to facilitate the design of various different types of applications 101 . In one embodiment, the SDK includes a graphical design interface in which the developer needs only to specify input and outputs for the loT device. All of the networking code, including the communication stack 201 that allows the loT device 101 to connect to the hub 1 10 and the service 120, is already in place for the developer. In addition, in one embodiment, the SDK also includes a library code base to facilitate the design of apps for mobile devices (e.g., iPhone and Android devices).
[0037] In one embodiment, the loT hub 1 10 manages a continuous bi-directional stream of data between the loT devices 101 -105 and the loT service 120. In
circumstances where updates to/from the loT devices 101 -105 are required in real time (e.g., where a user needs to view the current status of security devices or environmental readings), the loT hub may maintain an open TCP socket to provide regular updates to the user device 135 and/or external Websites 130. The specific networking protocol used to provide updates may be tweaked based on the needs of the underlying application. For example, in some cases, where may not make sense to have a continuous bi-directional stream, a simple request/response protocol may be used to gather information when needed.
[0038] In one embodiment, both the loT hub 1 10 and the loT devices 101 -105 are automatically upgradeable over the network. In particular, when a new update is available for the loT hub 1 10 it may automatically download and install the update from the loT service 120. It may first copy the updated code into a local memory, run and verify the update before swapping out the older program code. Similarly, when updates are available for each of the loT devices 101 -105, they may initially be downloaded by the loT hub 1 10 and pushed out to each of the loT devices 101 -105. Each loT device 101 -105 may then apply the update in a similar manner as described above for the loT hub and report back the results of the update to the loT hub 1 10. If the update is successful, then the loT hub 1 10 may delete the update from its memory and record the latest version of code installed on each loT device (e.g., so that it may continue to check for new updates for each loT device).
[0039] In one embodiment, the loT hub 1 10 is powered via A/C power. In particular, the loT hub 1 10 may include a power unit 390 with a transformer for transforming A/C voltage supplied via an A/C power cord to a lower DC voltage.
[0040] As mentioned, Figures 4A-B illustrate one particular embodiment of an loT device 400 which is capable of receiving a card 410 containing a list of selectable items 41 1 -415. As shown in Figure 4B, the card may have a barcode 420 printed thereon which may be read by the barcode reader of the loT device 400 to identify each of the printed items and associate the items with each of a corresponding plurality of user- selectable buttons 401 . For example, in Figure 4A, once the card 410 has been inserted into a slot on the device 400, button 401 is associated with item 41 1 , button 402 is associated with item 412, button 403 is associated with item 413, button 404 is associated with item 414, and button 405 is associated with item 415. In this specific example, each of the items 41 1 -415 comprise grocery items (e.g., water, prune juice, rice, toiler paper, and tuna). However, the underlying principles of the invention are not limited to any particular type of items. A set of magnets 430-432 may be coupled to the back of the loT device 400 to allow the user to magnetically attach the loT device 400 to the front of a refrigerator.
[0041] The illustrated loT device 400 is particularly suitable for elderly users or other users who are not technically savvy (and/or do not have access to a full-featured client). In one embodiment, the son/daughter or other relative of the end user may establish an account on a grocery Website and uniquely design a set of cards 410 on behalf of the end user, based on the grocery items commonly ordered by the end user. The grocery Website 130 in this example may have an established business arrangement with the loT service 120 such that the loT service 120 manages the loT devices 400 and cards 410 on behalf of the grocery Website 130. Thus, once items have been selected for each of the cards, the loT service may send the end user (or the user's relatives) a new loT device 400, an loT hub 1 10 (if the end user does not already have one installed), and the set of cards 410. [0042] In one embodiment, the loT device 400 is pre-provisioned by the loT service 120 with a unique ID embedded which is known by the loT service. When the end user inserts a card 410 in the slot and selects one or more buttons 401 -405 corresponding to items 41 1 -415 displayed on the card, the unique ID associated with the device 400 and identification data identifying the items selected by the end user are transmitted over the celluar service 1 15 (or WiFi) to the loT service and/or directly to the grocery Website 130. In one embodiment, the grocery Website maintains a mapping between the end user's account and the device ID which may be communicated to the grocery service by the loT service 120 after provisioning the new device 400. Consequently, the grocery Website 130 identifies the end user with the device ID and fulfills the order for the items selected by the end user. For example, the grocery service may schedule delivery for the items to the end user's home address which may be stored in the end user database 121 along with the association of the user's device ID with the end user's account. Thus, in this embodiment, the loT service 120 does not need to maintain a database containing any user account data (thereby protecting the end user's privacy and simplifying the implementation of the loT service). Rather, the loT service may only track the device ID for each of the loT devices provisioned to end users.
[0043] In one embodiment, when a user has selected a particular item, the LED 209 in that button may be illuminated to reflect the selection. In one embodiment, to order multiple instances of an item, the user may select a particular button 401 -405 multiple times. In this case, the LEDs may change colors to reflect the number of each item ordered. Alternatively, each button may have a small LCD (or other electronic visual display) configured to show the number of items selected by the end user. In one embodiment, the user may insert multiple cards 410 to select items in this manner and, when complete, select a completion button 406 which completes the transaction. In addition, the transaction may be completed automatically after a specified period of time has passed with no additional user input. Once the transaction is completed, in one embodiment, the LED within button 406 (or a separate "order on route" LED) may remain illuminated until a delivery is made to indicate that the ordered items are on the way.
[0044] In response, the low power microcontroller 200 transmits the device ID with identification data for each of the selected items (and the number selected) to the loT hub 1 10 which forwards the user's selections to the loT service 120 and/or directly to the grocery website 130. As mentioned, the address and other account information of the user may be associated with the device ID in an end user database 121 . Accordingly, upon receipt of the transaction details, the user's account may be debited by an amount equal to the cost of the selected items, and delivery to the user's home may be scheduled. Upon delivery, the loT device 400 may be reset to reflect that no new orders are currently pending.
[0045] In one embodiment, audio feedback is used to communicate the items ordered and the amounts for each item. For example, in one embodiment, digital audio samples for each item on each of the cards 410 may be transmitted to the device 400 via the loT hub 410. The audio samples may then be played back using the audio decoder in the low power microcontroller 200 and the speaker 205. For example, when the user selects one package of water 41 1 , the application program code 203 executed on the low power microcontroller 200 may identify the item (based on the barcode) and further identify a digital audio sample associated with the selected item. It may then cause the low power microcontroller 200 to render the digital audio sample on the speaker 205 along with a digital audio sample indicating the number ordered.
[0046] In an alternate embodiment, the application program code 203 executed on the low power microcontroller 200 may be capable of speech synthesis. In this case, a text description of each item may be provided to the loT device 400, which will perform text-to-speech synthesis to verbally speak the text description upon selection of each item by the end user.
[0047] In one embodiment, once the user has finished selecting items and presses the completion button 406, details of the transaction may be audibly read back to the user through the speaker. This may include, for example, a description of the items ordered and/or an anticipated delivery date. In one embodiment, the delivery date information is transmitted to the loT device 400 by the grocery Website 130 after the order details have been received and evaluated by the Website.
[0048] Although described above in the context of a grocery application, the loT device 400 may be used for virtually any application which requires a user to select among a set of options. For example, a set of such devices may be placed outside of an apartment complex and cards may be inserted listing the names of the residences of each apartment. In response to a selection, the loT device 400 may transmit a notification to the loT service 120 (potentially with a picture of the user who made the selection if a network camera is available at the location). The loT service 120 may then ring the doorbell of the appropriate residence and/or send a text or voice call to the user device 135 of the user in the residence. In one embodiment, the doorbell is implemented as another loT device communicatively coupled to the loT service via an loT hub as described herein.
[0049] As another example, the loT device 400 may be implemented as a toy or educational device. For example, a listing of different types of dinosaurs, animals, or other subjects may be printed on cards. In response to selection of a button, a description of the corresponding subject may be audibly generated for the end user. A virtually unlimited number of applications are possible in which a user is required to select from a set of displayed options.
[0050] In one embodiment, illustrated in Figure 5A, the loT hub 550 is implemented as a smart clock/calendar device capable of being mounted on a wall of the user's home or placed on an end table. In addition to the architectural components shown in Figure 3, this embodiment includes a video display interface and screen for displaying various types of information including the current time 551 and temperature 552 and a set of calendar events 560-563 for the day. The video display interface may be integrated within the low power microcontroller 200 or may be implemented in a separate chip communicatively coupled to the microcontroller 200.
[0051] A time scale 565 is shown to provide a visual indication of the time at which each of the calendar events are scheduled to occur and, as illustrated, different graphics are used to connote different types of calendar events. In the specific example shown in Figure 5A, the user has a doctor's appointment 561 at 9am, a lunch appointment 563 at noon, and a travel event at approximately 2pm. In addition, a weather event 560 is displayed to indicate that snow in the forecast starting at 3:30pm. As indicated, transitional weather events such as snow or rain may be displayed in the background using graphics and/or animation (e.g., animation representing snow, rain, wind, etc). In one embodiment, when the user has an appointment, a small map may be displayed to indicate the location of the appointment and/or the address of the appointment may simply be displayed. The map/address display may also include an indication of the current amount of time required to travel to the appointment from the location of the loT clock hub 550. All of the travel information may be extracted from an online mapping service such as Google Maps™ or Mapquest™. In one embodiment, indications of major events such as Earthquakes may also be displayed on the loT clock hub 550 along with pertinent information (such as the location of the event). Of course, the above are merely illustrative examples. Various other types of information may be displayed on the loT clock hub 550 within the context of the timeline 565. [0052] In one embodiment, the loT clock hub 550 will connect to the user's social networking service to download recently posted pictures and/or comments form the user's social networking account. These may include postings made by the user and/or made by friends and/or family members specified by the user. For example, the user may configured the loT clock hub 550 to display new postings only made by certain specified "friends" of the user on the social networking site.
[0053] In one embodiment, updates to the data displayed on the clock is transmitted from the loT service 120, one or more Websites 130 on which the user has accounts, and/or directly from an app on the user's device 135. For example, the calendar data may be provided by a calendar managed by the user via an app on the user device 135 and/or may be provided via a server-side calendar such as a Microsoft Exchange Server or a cloud-based server on which the user maintains a calendar (e.g., run on the loT service 120 or Website 130). The current time and temperature may also be provided by network servers such as the loT service 120 and/or may be read from one or more loT devices 101 -105 coupled to the loT clock hub 550. For example, one of the loT devices 101 -105 may be an environmental sensor and may provide the loT clock hub 550 with the current temperature, pressure, humidity, etc.
[0054] In one embodiment, the clock hub 550 is further configured to play back a user's audio playlist from an external server and/or the user's mobile device. For example, the loT clock 550 may retrieve the playlist from the user's music library (e.g., using the protocols common to that library) and may then stream and play back the music in the playlist using the built in audio decoder and speaker 205. In one
embodiment, the loT clock hub 550 establishes a direct local connection with the user's mobile device 135 using the same network protocols that it uses to communicate with the loT devices 101 -105. For example, it may establish a Bluetooth LE audio
connection with the user's mobile device 135 and then operate as a connected audio output for the mobile device.
[0055] In one embodiment, to keep the cost of the loT clock hub 550 low, it does not include an input device to enter new entries directly on the clock. That is, the loT clock hub 550 receives data from network sources but not directly from the user who updates entries via the app on the mobile device 135. Alternately, in one embodiment, the user may interact directly with the loT clock hub 550 itself to enter new data (e.g., via a touchscreen built in to the loT clock hub 550).
[0056] In addition to audio, one embodiment of the loT clock hub 550 may download pictures to be displayed, either directly from the user's mobile device 135, from the loT service 120, and/or from one or more other external servers (e.g., Website 130) on which the user stores pictures. The specific pictures, audio and other content to be displayed on the loT clock hub 550 may be specified by the user interacting with and configuring the hub via the loT service 120 (which, as mentioned, may be accessible via an app installed on the user's computing device 135).
[0057] In one embodiment, the loT clock hub 550 may be configured to receive and display electronic messages sent by the end user. For example, it may be configured with an email message address or a text message address. For example, if the loT clock hub 550 is in a highly visible location in the user's home, the user may send a message to the entire family by sending a text message or an email message to the loT clock hub 550. In one embodiment, if the message contains a photo, then the loT clock hub 550 may display the photo.
[0058] In one embodiment, the loT service 120 acts as a translator for content to be displayed or played back on the loT hub 1 10 and/or loT devices 101 -105. For example, in one embodiment, photos transmitted from the user's mobile device 135 are converted by the loT service 120 into a format/resolution which the loT hub 1 10 and/or loT devices 101 -105 are capable of rendering. Similarly, with respect to audio, the loT service 120 may convert the audio into a format (potentially at a lower bitrate or different type of compression) that the loT hub 1 10 and/or loT devices 101 -105 are configured to play back.
[0059] As mentioned above, the loT clock hub 550 may be designed with mounting brackets or holes so that it may be mounted on a wall in a convenient location such as the user's kitchen. In addition, in one embodiment illustrated in Figure 5B, the loT clock hub 550 may be adapted to interface with different types/styles of artistic frames 501 . In one embodiment, magnets 506 are attached or embedded within each frame 501 to magnetically attach the frame to the loT hub clock 550 with may include corresponding magnets or metal around its periphery. Moreover, the loT clock hub 550 may detect the model of frame which is attached based on the locations of the magnets 506 and/or based on an ID code encoded in the magnets. Thus, the position of the magnets or the encoding contained within the magnetic material may act as a fingerprint to uniquely identify different types of frames. Alternatively, or in addition to the use of magnets, the loT clock hub 550 may include a physical interface to interface with the frame 501 . In this embodiment, an ID code identifying the frame may be provided over the interface. In addition, the interface may include a physical audio connection for embodiments described below in which the frame includes speakers 505. [0060] In one embodiment, the style of the information displayed within the loT clock hub display may automatically be modified based on the type of frame being attached. For example, if a frame with a "modern" style is attached, then the colors/fonts/graphical styles used to display information on the loT clock hub 550 may automatically switch to match the modern frame style. Similarly, if a frame with a "traditional" style is attached, then the colors/fonts/graphical styles used to display information on the loT clock hub 550 may automatically switch to match the traditional frame style. One embodiment of the frame 501 may be designed for use in a child's room (e.g., a Hello Kitty™ frame or a Cuckoo clock may be designed). In response, the loT clock hub 550 may be configured to display an appropriate background to match the frame type (e.g., displaying pictures of Hello Kitty or a Cuckoo on the hour). Moreover, while a rectangular frame is shown in Figure 5B, other shapes such as circular or oval frames are also contemplated. In the case of a circular/oval frame, the display on the loT clock hub 550 may be adjusted to accommodate the frame shape (e.g., not displaying content in regions of the screen obscured by the frame).
[0061] As mentioned, in one embodiment, the frame 501 is equipped with a set of high quality speakers 505 for generating audio provided over the audio interface from the loT clock hub 550. For example, in an embodiment in which the loT clock hub 550 downloads a user's audio playlist (as discussed above) and streams/decodes the audio identified in the playlist, the audio may be played through the high quality speakers 505 rather than the speaker 205 built in to the loT clock hub 550.
[0062] A variety of different types of frames 501 may be coupled to the loT hub 550 to provide various different I/O capabilities. For example, a frame with an embedded camera may be installed to take pictures or capture video in response to commands sent to the loT hub 550 from the user's mobile device/app 135. Thus, the frame 501 may act as a local security camera in the user's home. In another embodiment, the frame may have an integrated IR blaster to act as a remote control device, controllable via the user device/app (e.g., to control local A/V equipment such as the user's TV and receiver). In another embodiment, the frame 501 may be equipped with a heat sensor, smoke sensor, and/or carbon monoxide detector. In this embodiment, the loT clock hub 550 may generate an alarm in response to any of the sensors indicating levels above acceptable thresholds. It may also be configured to transmit the alarm to a service such as a home monitoring service and/or the local fire department.
[0063] Another embodiment of the loT clock hub 550 is illustrated in Figures 5C-F which includes options for mounting the loT clock hub 550 on a wall or resting the loT clock hub 550 on a desk (or other structure). Referring first to Figures 5C-D, the loT clock hub 550 may be shipped to the end user with a circular plate 510 magnetically affixed within a circular cavity 513 formed on the back of the loT clock hub 550. Figure 5C shows the circular plate 510 magnetically attached within the cavity 513 and Figure 5D shows the circular plate 510 removed from the cavity 513. The circular plate 510 may be formed from magnetic material and/or magnetic material may be included beneath the circular cavity 513 to allow the plate 510 to be fixedly attached when in contact with the circular cavity 513. In one embodiment, the circular plate 510 includes holes 512 through which screws may be drilled to affix the circular plate to a wall. The loT clock hub 550 may then be attached to the circular plate 510 to affix the loT clock hub 550 to a wall, as shown in Figure 5E.
[0064] A circular plate 510 is particularly beneficial for wall mounting because a user may affix the circular plate 510 to the wall in any orientation (i.e., without using a level). The user may then magnetically affix and loT clock hub 550 to the wall by magnetically engaging the circular plate 510 with the circular cavity 513 on the back of the loT clock hub 550 and rotating the loT clock hub 550 as needed to achieve the correct level.
[0065] In addition, as shown in Figures 5C-D, the back of the loT clock hub 550 may include an insertion slot 51 1 into which the circular plate 510 may be inserted to provide support if the user chooses to rest the loT clock hub 550 on a table or desk (or other structure). Figure 5F illustrates the circular plate 510 inserted in insertion slot 51 1 of one embodiment of the loT clock hub 550. As illustrated, once inserted, the loT clock hub 550 may be leaned backwards in a slightly angled orientation, relying on the balance provided by the circular plate 510.
[0066] Thus, a single support element - the circular plate 510 - may be used for both wall mounting of the loT clock hub 550 and for supporting the loT clock hub 550 on a table or other surface.
[0067] Figure 6 illustrates a specific application in which one loT device 101 is coupled to or embedded in a water dispenser 601 and another loT device 102 is embedded in a rice dispenser 602. In one embodiment, the loT device 101 includes a sensor (illustrated as 250 in Figure 2) to detect whether the amount of water currently in the dispenser 601 is below a specified threshold amount. For example, the sensor 250 may measure the weight of the water in the dispenser and report the current weight to the low power microcontroller 200. Based on the application program code 203, when the weight reaches a specified threshold value, the loT device 101 may transmit a message indicating that a new water container is needed. The message may be passed through the loT hub 1 10 to the loT service 120 and/or an external Website 130 to place an order for additional water. The order may include the identify of the loT device 101 (using a unique ID code) which is associated with the user's account including the user's home address and billing data. The new water container may then be automatically shipped to the user's home. Similarly, the loT device 102 within the rice dispenser 602 may detect when the weight of the rice contained therein reaches a specified threshold. The loT device 102 may then automatically send a message (based on the application program code 203) when the weight reaches a specified threshold.
[0068] Various other sensors may be integrated within loT devices 101 -105 to collect various different types of information. For example, in one embodiment, loT devices with heat sensors may be configured on or near a stove to detect when the stove's burners are on. In one embodiment, the loT devices may also be configured to control the stove (e.g., turn it on/off) in response to signals transmitted from the app on the user's device 135. As another example, loT devices may include accelerometers and be coupled to devices around the user's home and/or to the user himself to detect motion (to detect, for example, the number of steps taken by the user, or the frequency with which certain objects in the user's home are used, etc). The underlying principles of the invention may be implemented in a virtually unlimited number of applications and contexts.
[0069] Embodiments of the invention may include various steps, which have been described above. The steps may be embodied in machine-executable instructions which may be used to cause a general-purpose or special-purpose processor to perform the steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any
combination of programmed computer components and custom hardware components.
[0070] As described herein, instructions may refer to specific configurations of hardware such as application specific integrated circuits (ASICs) configured to perform certain operations or having a predetermined functionality or software instructions stored in memory embodied in a non-transitory computer readable medium. Thus, the techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., an end station, a network element, etc.). Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer machine-readable media, such as non-transitory computer machine-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer machine-readable
communication media (e.g., electrical, optical, acoustical or other form of propagated signals - such as carrier waves, infrared signals, digital signals, etc.). In addition, such electronic devices typically include a set 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 (e.g., a keyboard, a touchscreen, and/or a display), and network connections. The coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers). The storage device and signals carrying the network traffic
respectively represent one or more machine-readable storage media and machine- readable communication media. 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 this detailed description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. In certain instances, well known structures and functions were not described in elaborate detail in order to avoid obscuring the subject matter of the present invention. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.

Claims

CLAIMS What is claimed is:
1 . An Internet of Things (loT) system comprising:
an loT hub comprising a WAN interface to couple the loT hub to an loT service over the WAN, and a local communication interface to communicatively couple the loT hub to a plurality of different types of loT devices; and
at least one loT device having a memory for storing program code and a microcontroller for executing the program code, wherein the program code includes library program code comprising basic building blocks usable by a developer to implement any loT device by creating application program code which utilizes the library program code, wherein at least one of the basic building blocks comprises a
communication stack to enable communication with the loT hub, the library program code provided to the developer in a software development kit (SDK) with the
microcontroller.
2. The system as in claim 1 wherein the loT device comprises a sensor to collect local data in accordance with the application program code and/or an output control device to perform an output control function in accordance with the application program code.
3. The system as in claim 1 wherein the application program code
executable by the microcontroller to cause the loT device to perform one or more application-specific functions, at least one of the functions including collecting local data or performing a local control function.
4. The system as in claim 1 wherein the loT device further comprises a low power communication interface for establishing a local communication channel with the loT hub in accordance with the library program code.
5. The system as in claim 3 wherein the local communication interface comprises a Bluetooth Low Energy (LE) radio for establishing a Bluetooth LE
communication channel with the loT hub.
6. The system as in claim 1 wherein the WAN comprises the Internet.
7. The system as in claim 1 wherein the SDK includes the loT hub and provides the developer with access to the loT service.
8. A method comprising:
providing an loT hub comprising a WAN interface to couple the loT hub to an loT service over the WAN, and a local communication interface to communicatively couple the loT hub to a plurality of different types of loT devices; and
providing at least one loT device having a memory for storing program code and a microcontroller for executing the program code;
providing the program code including library program code comprising basic building blocks usable by a developer to implement any loT device by creating application program code which utilizes the library program code, wherein at least one of the basic building blocks comprises a communication stack to enable communication with the loT hub, the library program code provided to the developer in a software development kit (SDK) with the microcontroller.
9. The method as in claim 8 wherein the loT device comprises a sensor to collect local data in accordance with the application program code and/or an output control device to perform an output control function in accordance with the application program code.
10. The method as in claim 8 wherein the application program code executable by the microcontroller to cause the loT device to perform one or more application-specific functions, at least one of the functions including collecting local data or performing a local control function.
1 1 . The method as in claim 8 wherein the loT device further comprises a low power communication interface for establishing a local communication channel with the loT hub in accordance with the library program code.
12. The method as in claim 10 wherein the local communication interface comprises a Bluetooth Low Energy (LE) radio for establishing a Bluetooth LE
communication channel with the loT hub.
13. The method as in claim 8 wherein the WAN comprises the Internet.
14. The method as in claim 8 wherein the SDK includes the loT hub and provides the developer with access to the loT service.
15. An apparatus comprising:
a memory for storing program code and a microcontroller for executing the program code;
a communication interface for coupling the microcontroller to a network;
a plurality of input elements communicatively coupled to the microcontroller to detect user input;
a slot for receiving a selection card, the selection card comprising a plurality of user-selectable items displayed thereon, wherein each of the input elements are associated with at least one of the user-selectable items displayed on the card when the selection card is inserted in the slot; and
wherein upon selection of a particular input element corresponding to a particular item, the microcontroller transmits an identification code for the item to a service over the network, the service identifying the item using the identification code and performing one or more operations responsive to selection of the item by the user.
1 6. The apparatus as in claim 15 wherein the item is a grocery item and wherein the service is a grocery service.
17. The apparatus as in claim 1 6 wherein each card comprises a listing of grocery items selectable by the user via the input elements associated with each of the grocery items when each card is inserted into the slot.
18. The apparatus as in claim 15 wherein the communication interface comprises a local communication interface coupling the apparatus to a local hub device which is coupled to the service over a wide area network (WAN).
19. The apparatus as in claim 18 wherein the communication interface comprises a Bluetooth Low Energy (LE) interface.
20. The apparatus as in claim 15 wherein the plurality of input elements comprise user-selectable buttons.
21 . The apparatus as in claim 20 wherein each user-selectable button has a light emitting diode (LED) associated therewith, wherein when the user has selected an item, the microcontroller causes the LED associated with the button for that item to be illuminated.
22. The apparatus as in claim 15 further comprising:
an audio decoder within the microcontroller or communicatively coupled to the microcontroller, the audio decoder to decode audio content associated with the items as the user selects the items via the input elements; and
a speaker integrated within the apparatus and producing sound contained in the audio content.
23. The apparatus as in claim 22 further comprising:
a speech synthesis module to convert text associated with the items to audio content, the audio content then being decoded by the audio decoder and output on the speaker.
24. A system comprising:
an loT hub comprising a WAN interface to couple the loT hub to an loT service over the WAN, and a local communication interface to communicatively couple the loT hub to a plurality of different types of loT devices; and
an loT device comprising:
a memory for storing program code and a microcontroller for executing the program code;
a communication interface for coupling the microcontroller to the loT hub over a network;
a plurality of input elements communicatively coupled to the microcontroller to detect user input;
a slot for receiving a selection card, the selection card comprising a plurality of user-selectable items displayed thereon, wherein each of the input elements are associated with at least one of the user-selectable items displayed on the card when the selection card is inserted in the slot; and wherein upon selection of a particular input element corresponding to a particular item, the microcontroller transmits an identification code for the item to a service over the network, the service identifying the item using the identification code and performing one or more operations responsive to selection of the item by the user.
25. The system as in claim 24 wherein the item is a grocery item and wherein the service is a grocery service.
26. The system as in claim 25 wherein each card comprises a listing of grocery items selectable by the user via the input elements associated with each of the grocery items when each card is inserted into the slot.
27. The system as in claim 24 wherein the communication interface comprises a local communication interface coupling the loT device to the loT hub.
28. The system as in claim 27 wherein the communication interface comprises a Bluetooth Low Energy (LE) interface.
29. The system as in claim 24 wherein the plurality of input elements comprise user-selectable buttons.
30. The system as in claim 29 wherein each user-selectable button has a light emitting diode (LED) associated therewith, wherein when the user has selected an item, the microcontroller causes the LED associated with the button for that item to be illuminated.
31 . The system as in claim 24 further comprising:
an audio decoder within the microcontroller or communicatively coupled to the microcontroller, the audio decoder to decode audio content associated with the items as the user selects the items via the input elements; and
a speaker integrated within the loT device and producing sound contained in the audio content.
32. The system as in claim 31 further comprising:
a speech synthesis module to convert text associated with the items to audio content, the audio content then being decoded by the audio decoder and output on the speaker.
33. A method comprising:
providing an loT hub comprising a WAN interface to couple the loT hub to an loT service over the WAN, and a local communication interface to communicatively couple the loT hub to a plurality of different types of loT devices; and
providing an loT device comprising:
a memory for storing program code and a microcontroller for executing the program code;
a communication interface for coupling the microcontroller to a network;
a plurality of input elements communicatively coupled to the microcontroller to detect user input;
a slot for receiving a selection card, the selection card comprising a plurality of user-selectable items displayed thereon, wherein each of the input elements are associated with at least one of the user-selectable items displayed on the card when the selection card is inserted in the slot; and
wherein upon selection of a particular input element corresponding to a particular item, the microcontroller transmits an identification code for the item to a service over the network, the service identifying the item using the identification code and performing one or more operations responsive to selection of the item by the user.
34. An Internet of Things (loT) clock hub comprising:
a memory for storing program code and a microcontroller for executing the program code;
a WAN interface to couple the loT clock hub to an loT service over the WAN, and a local communication interface to communicatively couple the loT hub to a plurality of different types of loT devices; and
a display to display a clock indicating a current time, a current temperature, and one or more calendar events retrieved from a user's calendar, wherein the calendar events are provided to the loT clock hub over the WAN interface.
35. The loT clock hub as in claim 34 wherein the calendar events are provided from a server-side calendar managed by the user through a user client device.
36. The loT clock hub as in claim 34 wherein at least some of the loT devices are configured to collect data and provide the data to the loT clock hub to be displayed on the display.
37. The loT clock hub as in claim 34 further comprising:
an audio decoder to decode audio content streamed to the loT clock device over the WAN or over the local communication interface; and
a speaker integrated within or on the loT clock hub to generate audible sound of the audio content.
38. The loT clock hub as in claim 37 wherein the audio content is identified by a user downloading a playlist to the loT clock hub.
39. The loT clock hub as in claim 37 wherein the audio content is provided directly from the user's mobile device over the local communication interface.
40. The loT clock hub as in claim 37 wherein the local communication interface comprises a Bluetooth Low Energy (LE) radio for establishing a Bluetooth LE communication channel with the loT devices.
41 . The loT clock hub as in claim 34 further comprising:
a frame sized in accordance with a width and height of the loT clock hub and adapted to be attached around a periphery of the loT clock hub.
42. The loT clock hub as in claim 41 wherein, in response to a picture frame being attached, the microcontroller of the loT clock hub detects one or more
characteristics of the attached frame and responsively updates one or more graphical characteristics used for the display.
43. The loT clock hub as in claim 42 wherein the one or more graphical characteristics comprises graphical characteristics which have been determined to match the frame.
44. The loT clock hub as in claim 41 wherein the frame comprises speakers to play back audio content from the loT clock hub, wherein the speakers are electrically coupled to an audio output of the loT clock hub when the frame is attached to the loT clock hub.
45. An Internet of Things (loT) clock hub system comprising:
a memory for storing program code and a microcontroller for executing the program code;
a WAN interface to couple the loT clock hub to an loT service over the WAN, and a local communication interface to communicatively couple the loT hub to a plurality of different types of loT devices;
a display to display a clock indicating a current time, a current temperature, and one or more calendar events retrieved from a user's calendar, wherein the calendar events are provided to the loT clock hub over the WAN interface; and
at least one loT device having a memory for storing program code and a microcontroller for executing the program code, wherein the program code includes library program code comprising basic building blocks usable by a developer to implement any loT device by creating application program code which utilizes the library program code, wherein at least one of the basic building blocks comprises a
communication stack to enable communication with the loT hub, the library program code provided to the developer in a software development kit (SDK) with the
microcontroller.
46. The loT clock hub system as in claim 45 wherein the calendar events are provided from a server-side calendar managed by the user through a user client device.
47. The loT clock hub system as in claim 45 wherein at least some of the loT devices are configured to collect data and provide the data to the loT clock hub to be displayed on the display.
48. The loT clock hub system as in claim 45 further comprising:
an audio decoder to decode audio content streamed to the loT clock device over the WAN or over the local communication interface; and a speaker integrated within or on the loT clock hub to generate audible sound of the audio content.
49. The loT clock hub system as in claim 37 wherein the audio content is identified by a user downloading a playlist to the loT clock hub.
50. The loT clock hub system as in claim 49 wherein the audio content is provided directly from the user's mobile device over the local communication interface.
51 . The loT clock hub system as in claim 48 wherein the local communication interface comprises a Bluetooth Low Energy (LE) radio for establishing a Bluetooth LE communication channel with the loT devices.
52. The loT clock hub system as in claim 45 further comprising:
a frame sized in accordance with a width and height of the loT clock hub and adapted to be attached around a periphery of the loT clock hub.
53. The loT clock hub system as in claim 52 wherein, in response to a picture frame being attached, the microcontroller of the loT clock hub detects one or more characteristics of the attached frame and responsively updates one or more graphical characteristics used for the display.
54. The loT clock hub system as in claim 53 wherein the one or more graphical characteristics comprises graphical characteristics which have been determined to match the frame.
55. The loT clock hub system as in claim 52 wherein the frame comprises speakers to play back audio content from the loT clock hub, wherein the speakers are electrically coupled to an audio output of the loT clock hub when the frame is attached to the loT clock hub.
PCT/US2015/061308 2014-11-21 2015-11-18 Internet of things platforms, apparatuses, and methods WO2016081582A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017527371A JP6907114B2 (en) 2014-11-21 2015-11-18 Internet of Things Platforms, Devices, and Methods
KR1020177016711A KR102592880B1 (en) 2014-11-21 2015-11-18 Internet of things platforms, apparatuses, and methods
KR1020237009536A KR102541542B1 (en) 2014-11-21 2015-11-18 Internet of things platforms, apparatuses, and methods
CN201580062819.3A CN107251490B (en) 2014-11-21 2015-11-18 Internet of things platform, equipment and method
HK18104820.8A HK1245533A1 (en) 2014-11-21 2018-04-13 Internet of things platforms, apparatuses, and methods

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US14/550,667 US9497572B2 (en) 2014-11-21 2014-11-21 Internet of things platforms, apparatuses, and methods
US14/550,775 2014-11-21
US14/550,735 US9641400B2 (en) 2014-11-21 2014-11-21 Internet of things device for registering user selections
US14/550,735 2014-11-21
US14/550,775 US20160150021A1 (en) 2014-11-21 2014-11-21 Internet of things clock hub device and method
US14/550,667 2014-11-21

Publications (1)

Publication Number Publication Date
WO2016081582A1 true WO2016081582A1 (en) 2016-05-26

Family

ID=56014499

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/061308 WO2016081582A1 (en) 2014-11-21 2015-11-18 Internet of things platforms, apparatuses, and methods

Country Status (5)

Country Link
JP (1) JP6907114B2 (en)
KR (2) KR102541542B1 (en)
CN (1) CN107251490B (en)
HK (1) HK1245533A1 (en)
WO (1) WO2016081582A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091342A (en) * 2017-11-16 2019-06-13 Kddi株式会社 Log analysis server, log analysis system, log analysis method, and log analysis program
WO2020025785A1 (en) * 2018-08-02 2020-02-06 Lecosse Jean Christophe Configurable kit for connected object, associated connected object and method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101876183B1 (en) * 2017-11-20 2018-08-02 수상에스티(주) Security-enhanced residential gateway device based on internet of things
KR101933638B1 (en) * 2018-01-22 2019-03-15 정철오 Wellness service system using security-enhanced residential gateway device
TWI818019B (en) * 2018-05-17 2023-10-11 日商日本碍子股份有限公司 Coin-type lithium secondary batteries and IoT devices
KR102116845B1 (en) * 2018-08-29 2020-05-29 (주)피플인소프트 System and method for providing of delivery address using internet of thing
KR20200079081A (en) * 2018-12-24 2020-07-02 삼성전자주식회사 Method for sharing content and electronic device thereof
KR102501375B1 (en) * 2020-12-04 2023-02-21 한국전자기술연구원 Software development method for mission service support using unmanned vehicles
KR20220124589A (en) 2021-03-03 2022-09-14 주식회사 업링크 SDK GENERATION METHOD AND APPARATUS FOR CONNECTING IoT DEVICE AND PLATFORM

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013784A1 (en) * 2000-07-31 2002-01-31 Swanson Raymond H. Audio data transmission system and method of operation thereof
US20080120701A1 (en) * 1999-12-10 2008-05-22 Dean Schiller Method and Apparatus for Distributing Picture Mail to a Frame Device Community
US20130085614A1 (en) * 2011-09-30 2013-04-04 Johnson Controls Technology Company Systems and methods for controlling energy use in a building management system using energy budgets
US20130307702A1 (en) * 2011-01-13 2013-11-21 Tata Consultancy Services Limited Method and system for effective management of energy consumption by household appliances
WO2014131021A2 (en) * 2013-02-25 2014-08-28 Qualcomm Incorporated Methods to discover, configure, and leverage relationships in internet of things (iot) networks
US20140282357A1 (en) * 2013-03-15 2014-09-18 Wolters Kluwer U.S. Corporation Smart endpoint architecture
US20140304381A1 (en) * 2013-04-05 2014-10-09 Nokia Corporation Method and apparatus for communicating with smart objects

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005101987A (en) * 2003-09-25 2005-04-14 Matsushita Electric Works Ltd Integrated radio id tag
JP2009045139A (en) * 2007-08-16 2009-03-05 Sony Corp Image display system, photoframe, image display device, image display method and program
US20110191787A1 (en) 2010-02-02 2011-08-04 Sun Microsystems, Inc. System and method for providing sensor data from embedded device to software development environment
CN103428830B (en) * 2012-05-15 2016-12-07 深圳市华奥通通信技术有限公司 A kind of wireless communication system and method
CN103781159A (en) * 2012-10-17 2014-05-07 中国移动通信集团公司 Method and device for remotely waking up terminal, and instruction initiating terminal and destination terminal
CN103685574A (en) * 2014-01-02 2014-03-26 清华大学 Service-oriented general Internet of Things resource distributing method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080120701A1 (en) * 1999-12-10 2008-05-22 Dean Schiller Method and Apparatus for Distributing Picture Mail to a Frame Device Community
US20020013784A1 (en) * 2000-07-31 2002-01-31 Swanson Raymond H. Audio data transmission system and method of operation thereof
US20130307702A1 (en) * 2011-01-13 2013-11-21 Tata Consultancy Services Limited Method and system for effective management of energy consumption by household appliances
US20130085614A1 (en) * 2011-09-30 2013-04-04 Johnson Controls Technology Company Systems and methods for controlling energy use in a building management system using energy budgets
WO2014131021A2 (en) * 2013-02-25 2014-08-28 Qualcomm Incorporated Methods to discover, configure, and leverage relationships in internet of things (iot) networks
US20140282357A1 (en) * 2013-03-15 2014-09-18 Wolters Kluwer U.S. Corporation Smart endpoint architecture
US20140304381A1 (en) * 2013-04-05 2014-10-09 Nokia Corporation Method and apparatus for communicating with smart objects

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091342A (en) * 2017-11-16 2019-06-13 Kddi株式会社 Log analysis server, log analysis system, log analysis method, and log analysis program
WO2020025785A1 (en) * 2018-08-02 2020-02-06 Lecosse Jean Christophe Configurable kit for connected object, associated connected object and method
FR3084759A1 (en) * 2018-08-02 2020-02-07 Lecosse Jean-Christophe CONFIGURABLE KIT FOR CONNECTED OBJECT, CONNECTED OBJECT AND RELATED METHOD

Also Published As

Publication number Publication date
JP2018507451A (en) 2018-03-15
JP6907114B2 (en) 2021-07-21
CN107251490B (en) 2021-07-02
CN107251490A (en) 2017-10-13
KR102592880B1 (en) 2023-10-20
HK1245533A1 (en) 2018-08-24
KR102541542B1 (en) 2023-06-08
KR20230042415A (en) 2023-03-28
KR20170088904A (en) 2017-08-02

Similar Documents

Publication Publication Date Title
US9497572B2 (en) Internet of things platforms, apparatuses, and methods
US9641400B2 (en) Internet of things device for registering user selections
US20160150021A1 (en) Internet of things clock hub device and method
KR102592880B1 (en) Internet of things platforms, apparatuses, and methods
US10571877B2 (en) Systems and methods for programming and controlling devices with sensor data and learning
US20220329665A1 (en) Location Monitoring via a Gateway
US10102507B2 (en) Systems and methods to faciliate replacement of depleted batteries
US9774497B2 (en) System and method for implementing internet of things (IOT) remote control applications
US9933768B2 (en) System and method for implementing internet of things (IOT) remote control applications
US11570676B2 (en) Method and system for realizing function by causing elements of hardware to perform linkage operation
US20200410797A1 (en) Method and system for activating electronic lockers
US20170364106A1 (en) Systems and methods for provisioning components of an hvac system
US20160197798A1 (en) System and method for collecting and utilizing user behavior data within an iot system
US20160197786A1 (en) System and method for notifying a user of conditions associated with an internet-of-things (iot) hub
US20160197769A1 (en) System and method for filtering events at an iot hub
US20160198465A1 (en) System and method for selecting a cell carrier to connect an iot hub
US20130073681A1 (en) Creating interactive zones
JP2013258656A (en) Information notification system, information notification server, information notification method and program
KR101182050B1 (en) Energy management terminal and an energy management apparatus
CN114035445A (en) Intelligent household equipment control method, device and system based on indoor positioning
JP6897696B2 (en) Servers, methods, and programs
JP6060122B2 (en) Information providing system and information providing apparatus
JP2013012015A (en) Non-contact type communication device and ic card information re-writer
Vargic et al. Smart technologies
KR20130015758A (en) System and method of notifying arrival of acquaintance

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15860427

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017527371

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20177016711

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 15860427

Country of ref document: EP

Kind code of ref document: A1