Choosing a cloud platform for your IoT devices
Today’s affordable MEMS devices and powerful but inexpensive microcontrollers make it easier than ever to build highly miniaturised smart sensors for anything from a maker project like a home occupancy detector or intruder alarm to commercial products such as industrial sensors or environmental monitors.
Naturally, whether a maker or professional engineer, you will want to make your creations smarter and add more and better capabilities. However, processing raw sensor data locally adds to the host-system workload, and may not be a suitable option from a power, cost, or code-complexity standpoint.
An alternative is to tap into the power of the Cloud and take advantage of the powerful applications available there on a pay-per-use basis. You can also scale more easily and augment your commercial products with value-added digital services: the Cloud provides all the resources needed to aggregate data from a large number of sensors and make the results readily available to diverse user groups.
IoT-oriented development kits currently in the market, such as the STMicroelectronics SensorTile kit, not only provide an easy start to developing with MEMS sensors but are also ready to send the sensor data to Cloud services that can bring valuable extra power to small or simple projects. SensorTile not only contains a set of MEMS motion sensors, a pressure sensor, silicon microphone, and low-power STM32L4 microcontroller, but also comes with the STBLESensor mobile app and BlueST-SDK Android/iOS/Python library that make it easy to access the sensor data and interact with the IoT platforms of major Cloud service providers including AWS, Microsoft, and IBM.
Getting into the Cloud
The leading Cloud IoT platforms contain a growing selection of powerful compute, storage, database, messaging, analytics, and machine learning applications, and you can get everything you need to connect your devices and take advantage of them. Many services are available free of charge on an evaluation or low-use basis, which is great if you just want to learn, or if you’re a maker looking to get a little bit more out of your creations. If your ultimate goals are commercial, pay-as-you-go rates that start from the equivalent of just a few cents or dollars per month let you start small with low risk and minimal commitment.
Either way, you can take advantage of powerful and scalable applications, or get help to create or customize your own to run in the Cloud, without needing to do heavyweight software development or build your own infrastructure. Also, you can deliver a new service to market in a short timeframe, and scale quickly and cost-effectively with no practical limit on the number of customers or geographical locations you can serve. This could enable you to establish your brand quickly and maximise market share while you still have first-mover advantage, with less fear of being overtaken by larger or richer competitors.
You don’t have to be big to claim a slice of the IoT action.
Amazon Web Services
One example is AWS IoT from Amazon Web Services, which provides a gateway for devices to connect securely and communicate with the platform, a message broker to handle publish/subscribe exchanges, and services for device registration, provisioning, and shadowing. The shadowing service maintains a JSON document for each device that allows state information to be stored and retrieved. There is support for creating Thing types and groups, authentication including handling X.509 certificates, and custom authentication, which allows you to set up your own authorisers and authorization strategies. There is also a Jobs service that lets users create operations to be executed remotely on connected devices, such as updating the firmware, installing applications, or managing certificates.
Ready-to-use services including event detection, data handling, analytics and device management are available in the Cloud. As far as costs are concerned, you can use these services in the AWS Free Tier for the first 12 months. More intensive or longer-term usage is charged according to quantity of data, messages, or connection time, at rates in the order of $0.20 per GB, $1.00 per billion messages, or $0.10 per million minutes. There are pricing calculators for IoT services like AWS IoT Core or AWS IoT Analytics that show what’s available in the Free Tier and what you might pay for a large-scale workload.
AWS IoT also includes edge software including a free microcontroller operating system optimised for the IoT and software for running IoT-related functions including machine-learning inference on connected devices.
IBM Watson IoT
The IBM Watson IoT Platform has a similar introductory structure for entry-level users. As a basic introduction, with no registration required, there is help to connect your smartphone to the IBM Cloud and see the sensor data streaming into the dashboard; a quick and graphic way to get a flavour of the service.
You can get access to everything you need to connect devices and ingest their data. There is a quick-start service that helps you get a feel for what’s happening without worrying about device registration or security. Obviously, this is only suitable for trial exercises using non-sensitive data. Guidance for managing security, such as creating device and API keys, and authentication procedures, is also provided.
The documentation provides recipes that help you connect various kinds of devices or gateways to the Cloud. The recipes get your devices sending data to the Watson IoT Platform using the MQTT protocol. These recipes are part of the IBM partner program, so a wide variety is available for numerous specific devices, provided by third-party contributors, and all are verified by IBM.
Once you have connected your devices to the platform, you can create applications that will access the device data using available REST or real-time APIs. The applications can run in the IBM Cloud or other Cloud services.
Like AWS IoT, IBM Watson IoT Platform provides APIs for defining data flows in various languages. In addition, you can use Node-RED – IBM’s open-source graphical development tool – or third-party MQTT client libraries. Online resources include tutorials that explain how to use either approach to get data from your devices into the Cloud, covering issues such as describing the device address and ID, and complying with the Platform’s rules on message and data format, and publish/subscribe restrictions. Using Node-RED you can create flows by dragging and dropping nodes into the workspace and configuring and connecting them as required. When finished, it’s easy to deploy the runtime with a single click.
You can learn about the Watson IoT Platform and sign up to the Quick Start introduction free of charge. Pricing starts at $500 per month per instance of the Watson IoT Platform, for the basic Connection Service with support for 1000 sensor-type devices. Services offering higher performance or special features such as blockchain are available at extra cost.
Google Cloud IoT core
Google services for IoT developers are part of the Google Cloud Platform. As with the other providers’ IoT offerings, it contains SDKs, tools for registering and authenticating devices, and APIs to enable interactions between the devices, data, and IoT applications. You can sign up for a free 12-month trial of the Google Cloud Platform, which comes with $300 of credit to explore the services.
Google Cloud IoT includes Cloud IoT Core, a fully managed service that enables you to connect, manage and ingest data from devices. It comprises a protocol bridge that supports HTTP and MQTT, among others, and a device manager as major components. The device manager handles establishing device identities and authentication, maintaining configuration, and remotely controlling devices from the Cloud.
Google lets you take advantage of managed services that are suitable for IoT use cases, many of which can be trialled free of charge. These include Cloud Functions, which is a serverless compute platform for running code in the Cloud, and a variety of Big Data applications for operational and analytical tasks such as data aggregation, messaging, data preparation and processing, NoSQL database, and ad hoc analysis.
You can also get access to Cloud Machine Learning and data-usage services like Cloud Datalab and Data Studio, which can help you gain insights from the data collected and train neural network models. Pricing of the Cloud IoT Core services is based on usage, and in particular, per MB of data exchanged between your devices and the service. Data volume of up to 250MB per month is free.
Google also provides the Cloud IoT Edge package to help build gateways or edge devices that incorporate machine-learning capabilities that otherwise would typically run in the Cloud. It comprises two runtime components – Edge Connect for handling data exchanges with Cloud IoT Core, and Edge ML for running machine-learning inference engines locally. If you plan to build an edge or gateway device, with a view to running machine-learning applications, an AI chip, Edge TPU, is also available, which is optimised for running inference engines at low power and with low latency.
Google’s Cloud platform supports machine-learning inference on edge or gateway devices, as well as providing a portfolio of core services. (source: Google)
Microsoft Azure IoT Hub
Microsoft Azure is another Cloud service that allows easy access to IoT services. Setting up an account is free, and there is a free edition of the Azure IoT Hub that has a maximum limit of 500 device identities and allows you to send 8000 messages per day. One free IoT hub is allowed per subscription.
If you are paying for Azure IoT Hub, there are various Editions in Basic and Standard tiers with prices ranging from about £7.50 in the Basic tier for 400,000 messages to just under £1900 for 300 million messages with Standard tier services that provide extra features such as support for Cloud-to-device messaging and device management. There is no limitation on the number of device identities.
Standard support packages for production workloads or business-critical applications range from £21 to £745 per month, or MS will configure a bespoke package if required. It’s easy to switch between the various IoT Hub editions within either the Basic or Standard tier, and upgrading from a Basic to a Standard edition is also possible. Downgrading is more difficult, requiring devices to be re-registered, and you cannot switch from the Free Edition to a paid edition because free access is intended to be for proof-of-concept testing only.
As with other IoT services, Azure IoT Hub includes SDKs for building apps to run on IoT devices, for managing the hub and communicating with devices, and for provisioning devices. There are device SDKs and service SDKs for .NET, C, Java, Node.js, Python and iOS.
There are also APIs for handling the typical functions needed to manage IoT deployments, such as accessing assets and resources, managing device identities and jobs, sending and receiving messages, and deploying IoT Hub resources.
If you’re an individual or a small organisation seeking a stake in the IoT revolution, you can take advantage of the same Cloud applications that major corporations are using to power digital transformation. The major Cloud service providers all offer similar services on a pay-per-use basis, with facilities to help prove your concept at low or zero cost and to scale your vision economically as demand grows.
There is no reason why you shouldn’t trial any or all of these offerings simultaneously, to discover which one has the most suitable applications, or is the easiest to use, or offers you the best opportunities to sell your own skills in their marketplace. Connecting one or a small number of devices is so easy that you could move from one platform to another with little inconvenience. On the other hand, transferring an established service containing a large number of connected devices could be more labour intensive.
In the end, choosing which of these organisations to connect with may come down to a decision about which corporate identity you prefer.