If you're building a product in the exciting but challenging industry of Internet of Things, there are a few important decisions you have to make. We've already taken a close look at hardware platforms to choose from, so now it's the software's turn.
Any IoT solution revolves around a certain software solution that allows to retrieve, store, monitor and analyze data from all kinds of sensors. Volumes of data from sensors even in a reasonably sized IoT ecosystem is huge, which is why a cloud-based software platform is the best solution for your new product in most cases.
You must have noticed that IoT is a hot topic in the world of technology. In 2014, this market reached $655 billion in size, while IDC predicts this number to rise to $1.7 trillion in 2020. New products and solution appear every day, and most of them require a secure, versatile and flexible cloud platform to work on top of.
That need is no secret to cloud platform providers and numerous startups, who now offer tailor-made solutions for IoT appliances. We've done some research in order to see how all these offerings stack up against each other.
Questions to ask
Before diving into the wide variety of different cloud IoT platforms, it's vital to define the main aspects to learn about them.
What hardware the platform supports. First of all, we need to know what hardware the platform supports; that's particularly important if you already what your product is going to be based on.
Instruments available for the platform. In addition to that, you should care about instruments available for the platform, including but not limited to an IDE for coding and API that you use to access your data.
Data management experience. There's also the overall data management experience that consists of a dashboard, native and/or web-based mobile and desktop applications and so on.
The platform's support for firmware updates. The other important things we've looked into are the platform's support for firmware updates, its ease of use, supporting documentation and the existence of a healthy community around it. And, of course, the price, at which all this is available.
As the name suggests, SensorCloud is a platform designed specifically for sensor data that promises to be able to store data with precision time information. It is created by Lord Microstrain, a US-based sensor manufacturer.
Developers who want to work with the platform can access an elaborate SDK with code examples in Python, Java and C#.
SensorCloud also offers a RESTful API, with which you can integrate all sorts of dashboards with the data stored there into your website or app in different ways
Hardware-wise, SensorCloud obviously supports Lord Microstrain sensors, as well as products from any web capable platform using the API. There's also support for CSV (text-based data) files. There's unfortunately no way to send firmware updates via the platform, so you'll have to do this differently, e.g. using Lord Microstrain PC software.
The platform's GitHub repo contains quite a bit of documentation to look through. The company claims the community around the platform consists of thousands of users though there doesn't seem to be any dedicated place online to have a discussion with fellow users.
Prices at SensorCloud are per gateway/API device and range from free to $100 per month.
Our platform of choice that we love working with is Particle.io, formerly known as Spark. Particle's offering is a software and hardware suite that allows to quickly create prototypes and scale easily to full-fledged volume production.
The hardware bits sold by Particle include a few development kits with Wi-Fi or cellular chips onboard, as well as various shields and accessories. Combining those with sensors and actuators, you can build an IoT system of any complexity in no time.
Conveniently, Particle also allows you to update firmware of your microcontrollers over the air. There are security measures and a set of tools that make it easy to push updates and roll back to the previous version if there's a problem.
Developers are offered a few IDE options: Particle Build is a full-scale web IDE that runs in any browser, while for those who prefers offline solutions there's Particle Dev, a traditional IDE build on GitHub's Atom project.
Prices for the cloud solution range from free for individual developers to $99 per user per month for big teams with big needs.
Another cloud platform, or rather Platform-as-a-Service (PaaS), designed with Internet of Things in mind, Carriots offers support for a huge number of devices and sensors, both for prototyping and industrial-scale. Among the first category are Arduino, Raspberry Pi, Beagle Bone and other similar solutions, while the second includes CloudGate, TST, Satel and so on.
For developers, Carriots offers thoroughly documented REST API and an SDK based on Groovy scripting technology. Carriots doesn't offer any ready-made dashboard but can be integrated with any visualization solution that can talk to its REST API.
Carriots allows users to update firmware and remotely configure their devices. For questions not covered in the documentation and tutorials (which are pretty good), there's a forum that looks quite lively.
The price of Carriots' cloud platform for corporate customers is €2 per month per device, with free accounts available with the number of devices limited to 10.
Unlike the rest of the platforms we've talked about, Google-owned Firebase wasn't built to cater for IoT developers' needs and is rather a universal cloud platform. It plays well with the Internet of Things, however: a good example here would be another Google-owned project and one of the IoT pioneers, Nest, which was build on Firebase.
The platform can work with any hardware that can talk to its REST API, including but not limited to the ubiquitous Arduino kits. Being a universal cloud platform, Firebase doesn't seem to provide an ability to update connected devices' firmware over the air and doesn't include data visualization tools, which might be fine with those willing to assemble an IoT project from parts they choose themselves.
There's a comprehensive set of manuals for every occasion, and we'd also recommend reading these two posts to get a general idea of the way Firebase works with IoT appliances:
- Realtime Internet of Things Development with Firebase
- Interact With the Web in Real-time Using Arduino, Firebase and Angular.js
Same as with most other platforms, pricing of Firebase ranges from free for small installations to $1,499 per month for lots of devices that generate tons of data.
The cloud IoT platforms we've mentioned should be able to satisfy requirements of developers of any scale and industry. Which one is your platform of choice? Share your experience in the comments section.