The current explosion of the Internet of Things (IoT) is the result of complementary advancements in underlying hardware and software technologies. In brief, IoT refers to the growing number of devices that are connected to the global Internet. Examples include smart-home products like the programmable thermostat Nest to industrial devices like temperature and humidity sensors.
Specifically, the recent convergence of three tech trends have made the IoT possible:
Increasing the processing power of embedded platforms. General-purpose CPUs have gradually replaced microcontrollers in devices due to the falling size, cost, and power requirements of the same amount of computing power. This transition to CPU’s is critical because CPU’s can do something microcontrollers can’t: run operating systems with complete networking stacks, and support for popular programming languages.
Development of small-footprint OS and protocols. As the performance of embedded platforms rose, the hardware requirements for lightweight versions of mainstream operating systems like Windows and Linux (and the BSD family) either dropped or held steady. As these OS’s displaced embedded stalwarts like QNX, and VxWorks, these invaders each brought their massive software ecosystems, and a large pool of developers, with them.
A similar dynamic was taking place on the protocol side as stripped-down TCP/IP stacks were written for resource-scarce embedded platforms and new protocols like MQTT were written specifically for the limited processing power and bandwidth of these devices.
Development of wireless communications. Just as WiFi has gotten faster with each new addition to the 802.11 class of protocols, the connectivity options for low-power devices have been expanding in the industrial and consumer electronics markets: Zigbee, Xbee, mesh networking, cellular communications, Bluetooth, etc.
The convergence of these three trends made it possible for almost anything to transmit data to or be controlled from the Internet, for the very little added cost to the base device.
Bringing connectivity and processing power to all these devices is only the first step. Now you have to collect, analyze and make sense of that fire hose of data before you can actually use it. Thus, the usefulness of having lots of connected devices is very limited without a fourth tech trend converging on the three we already listed above.
Cloud computing platforms. Commercial cloud IoT platforms like Amazon IoT and Microsoft’s Azure IoT Suite provide the massive bandwidth, data storage, processing power, and software tools needed to fully benefit from a large IoT deployment. These clouds are the meeting point between the data streaming from your IoT devices and the applications which display and analyze that data.
Both of these IoT cloud platforms work in a very similar way:
- A client program (based a vendor-supplied SDK) is installed on the device if that device is running an operating system (like Windows or Linux).
- Once that client program is installed on the device, that device can connect directly to the customer’s account on the cloud if it is connected to the Internet.
- If the device isn’t connected to the Internet, it can connect indirectly through another “gateway” device which in turn is connected to the cloud. These gateway devices can also be used to attach “dumb” microcontroller-based devices to the cloud.
- The IoT cloud component uses encryption to secure all communication to and from the devices as well as to authenticate each device. Amazon’s IoT platform, for example, uses X509 certificates.
- The continuous stream of device data is then displayed, stored, filtered, and analyzed by that vendor’s other cloud offerings like Microsoft’s Azure Machine Learning and Azure Stream Analytics.
- From the cloud, the customer can manually control the connected devices, or build applications which automate certain actions based on the received data from the devices.
Here’s what you should be looking for from an IoT platform vendor.
Accessibility: How reliable is this cloud platform? Do they offer redundancy?
Security: How strong is the encryption of the data to and from our devices? Are the latest encryption standards supported? Is the data encrypted all the way from the cloud to the device itself? Does this platform support per-device permissions?
Support for your specific devices: Do the client programs and SDK’s support the CPU and OS combinations present on our deployed devices? How well does their software support our “dumb” devices which don’t run an OS?
Control of your own data: How vulnerable would we be to vendor lock-in? Does this platform use proprietary or open standards for storing our data?
The Internet of Things is fueled by powerful embedded platforms combined with the Big Data capabilities of the cloud. Deployed wisely, they can improve your most important data point of all: your bottom line.