Exploring IoT Gadgets for Developing Connected Experiences
Connectivity is at our fingertips – figuratively and literally. For the first time in history, the human body is being used to interface with a new generation of gadgets and devices. With the invention of motion and gesture control devices like the Myo Gesture Control Armband and the Emotiv Epoc brain computer interface headset, the human body is now able to control everything with the flick of a finger, simple motion or through thought patterns.
In this article, we are going to highlight key new IoT (Internet of Things) devices that developers should consider when developing connected solutions for the home and medical space.
The Connected Home
Home automation is very popular today and has seen rapid adoption by consumers. Nowadays, consumers can remotely control everything from their door lock, to their living room lights, thermostat, window blinds and more. Being able to remotely control your home allows consumers to further control the way they experience each room in their home, and even cut down on energy costs. Developers can tap into the connected home market by building apps for iOS and Android phones, phablets and tablets and devices like Google Glass and the Moto 360 smart watch. That experience can be further enhanced by gesture controlling your smart home gadgets, allowing you to turn on your lights by waving your hand, or unlocking the front door by making a fist. Most smart home gadgets use a home automation hub (either based on Z-Wave or ZigBee) to connect to the internet and receive commands.
ZWave Overview from Wikipedia:
"Z-Wave is a wireless communications protocol designed for home automation, specifically for remote control applications in residential and light commercial environments. Z-Wave communicates using a low-power wireless technology designed specifically for remote control applications. The Z-Wave wireless protocol is optimized for reliable, low-latency communication of small data packets with data rates up to 100kbit/s, unlike Wi-Fi and other IEEE 802.11-based wireless LAN systems that are designed primarily for high-bandwidth data flow."
ZigBee Overview from Wikipedia:
"ZigBee is a specification for a suite of high-level communication protocols used to create personal area networks built from small, low-power digital radios. ZigBee is based on an IEEE 802.15 standard. Though its low power consumption limits transmission distances to 10–100 meters line-of-sight, depending on power output and environmental characteristics, ZigBee devices can transmit data over long distances by passing data through a mesh network of intermediate devices to reach more distant ones. The technology defined by the ZigBee specification is intended to be simpler and less expensive than other wireless personal area networks (WPANs), such as Bluetooth or Wi-Fi."
Philips Hue Lights are smart bulbs that can be programmatically controlled. The Philips Hue Lights SDK supports REST/JSON, and using REST APIs, you can control the color of the lights, set timers for turning the lights on and off, and even connect them to sensors to automatically control them based on sound or proximity (by connecting them to a beacon, for example).
The Philips Hue Lights Starter Kit includes a Hue Bridge Box (which connects to your network via an Ethernet cable) and 3 wireless LED lights. The Hue Bridge Box uses the ZigBee alliance wireless technology to communicate with the LEDs. The Hue developer site has documentation on how Hue works and how to get started. It also explains some core concepts and presents the REST/JSON based APIs for Lights, Groups, Schedules, Configuration and Portal. Using REST, you can make calls to use the Hue broker server discover process at "www.meethue.com/api/nupnp" to return all of the Hue Bridge Boxes on your network. Once the HUE Bridges have been found, developers can load that data into a data table, and programmatically read and return the IP addresses for all HUE Bridge Boxes that have been detected. Once connected to the Hue Bridge, you can use a JSON PUT method to turn on and off the lights and programmatically control them as you like.
The Kwikset Smart Code Deadbolt Door Lock comes with a Z-Wave card. You can open and close the deadbolt lock using a key, smartphone app or the web browser on your computer. You can lock and unlock your door, and check on the lock status of your door using REST APIs that interface with the door lock using the VeraLite Smart Home Automation Controller. The VeraLite Smart Home Automation Controller allows you to control control Z-Wave based devices like the Kwikset Smart Code Deadbolt. The Home Automation Controller
gets connected to your network and then controls your Kwikset Smart Code Deadbolt by allowing you to send lock and unlock commands to it. To control the Kwikset, you need to establish a connection to the Veralite controller by setting the Veralite IP as your Base URL in your code. You can then send a REST request by defining the resource property and passing a data request with parameters such as the device number and service ID as shown in the Veralite web interface.
The last step is to execute a PUT method request to either lock or unlock the door.
The VeraLite Smart Home Automation Controller provides built-in Wifi and allows you to control Z-Wave based devices via the Internet using smart phone apps or web based controls. VeraLite uses the MiOS operating system and you can build your own apps. The VeraLite Smart Home Automation Controller can be used to control Z-Wave based gadgets that don't come with their own bridge box.
The Connected Medical Office
IoT has many great applications in the medical industry. By adding Wifi and Bluetooth connected medical gadgets to a doctor's office, medical staff can quickly retrieve and update patient data around weight, blood pressure and heart rate and even perform long term studies on sleep patterns to help patients with sleep issues such as insomnia. Data received from these gadgets can then be stored in an encrypted database and displayed on a chart to better analyze patient data over time. By adding beacons, medical staff can automatically check in patients as they arrive in the clinic, or notify them on their mobile device that it's time to update their insurance record or that a co-pay is due.
The Zephyr heart rate monitor is a Bluetooth LE (low energy) device that uses a standard heart rate monitor GATT profile. GATT stands for Generic Attribute Profile and is the combination of service + characteristics. Profiles are high level definitions that define how to use standard services in your applications. For example, there is a heart rate profile that is used for fitness or health applications. The device with a heart rate sensor exposes the standard heart rate service so that developers can programmatically discover the service via Bluetooth and start collecting data such as the beats per minute. Services are collections of characteristics and relationships to other services that encapsulate the behavior of part of a device. A GATT profile includes one or more standard services that are identified by a number. For example, the heart rate service has an official number assigned: "0x180D".
To get a service you need to use the complete UUID which is the assigned number for the standard service + the base Bluetooth code. For example, the complete code for the heart rate service is
When developing a heartate monitor application that uses the standard heart rate Bluetooth profile, other heart rate monitoring devices that use the same heart rate profile can also connect to that same application.
Like the Zephyr heart rate monitor, the Wahoo Fitness Scale is a Bluetooth LE (low energy) device that uses a standard GATT profile. In this case, it is using the weight service. GATT stands for Generic Attribute Profile and is the combination of service + characteristics. The weight characteristic is in hectograms, so in order to calculate the weight, a hectograms to pounds (or kgs) calculation has to be performed.
Weight data (in pounds or kilograms) can be transmitted by subscribing to the weight service using the Bluetooth UUID. You can also get information such as connectivity status (whether or not a connection was made over Bluetooth from the smartphone app to the scale), battery status and more. Data retrieved can then be stored in a local or remote (cloud) database and displayed in a graph for futher analysis.
0x190101 // weight service
0x2B01 // live weight characteristic readings
0x84ae0000 0001 // - 38 lbs 17kg
Motion and Gesture Control IoT Devices
Motion and gesture control devices like the Myo armband bracelet and the Emotiv Epoc brain computer interface headset allow you to further expand the connected experience by controlling IoT devices with a simple gesture or repetive brain pattern. Imagine turning the lights on and off in your house or unlocking your front door with a simple hand gesture, or mind controlling the intensity or hue of your lights by thinking of a specific color. Both the Myo and Emotiv Epoc headsets provide developers with SDKs to develop their own solutions. Building connected experiences has never been more impactful and fun.
Please login first in order for you to submit comments