How the Best IoT Platforms in 2022 Look Like
List of platforms I’ve worked on over the years 🤙🏻
IoT is no longer the cool kid in town, it’s matured to the level of invisibility in our lives. And building on IoT is supposed to be as methodic as any other tech stack like web development. But it isn’t so long since our colleges started offering IoT as a standalone degree. The highest number of IoT engineers come from a hardware/embedded background. Companies have started to hire fuller-stack developers which are usually embedded engineers who have transitioned to web development. And the tech stack of IoT couldn’t be higher. You need expertise in embedded systems, networks, database design, and web (frontend and backend) development. While companies can gradually train their engineers in all that over a span of 5–10 years, there are tools (brokers like Mosquitto) and IoT platforms (Grandeur and Particle) which take it off their plate. For an engineer, they abstract out the unnecessary, and many times redundant, low level stuff and give out APIs that get your data across, store it, and fetch it when you need it, with simple function calls. No need to worry about writing servers, setting up databases, renewing certificates, or building OTA for your devices. IoT platforms take care of the humongous development stack (including scaling with devOps). Having them in your stack can help you iterate on your prototypes faster and get your product to market much earlier and cheaper than building it all by yourself or hiring a team of web, database, and devOps engineers.
But there are hundreds of IoT platforms out there, with more or less the same offerings. It can be a hassle to scan through them and find out the one that fits your use case. So I’ve compiled a list of platforms I’ve worked on over the years and found to have the flattest learning curve, pack the most flexibility w.r.t. the use cases they can support, and are cheap.
Arduino Cloud is the IoT platform offered by Arduino itself. At the base of it, it takes the experience of Arduino IDE to the browser and, lets you program your Arduinos via OTA software updates. So unlike Arduino IDE, you can update your device softwares without connecting them to your laptop. This is particularly useful in production when your devices are out there in the field, gathering data. On top of a web editor in browser and OTA updates, Arduino Cloud gives you:
- Realtime monitoring of your devices.
- Powerful drag and drop dashboards to visualize the incoming data and control your devices.
- Support for sharing dashboards with your team.
- Support for Alexa that enables voice control of your devices.
- Webhooks to send live data to GCP or AWS or any other IoT platform.
- Support for programming and connecting all Arduino’s WiFi and cellular boards and third party boards like ESP8266 and ESP32.
- Support for connecting (but not programming) linux based boards like Raspberry Pi.
- Support for Arduino’s huge set of libraries.
- The best documentation and support out of all the IoT platforms.
- Prebuilt project templates that you can use.
Arduino is a platform for hobbyists and Arduino Cloud is particularly useful for people already using Arduino boards. Arduino ecosystem is its biggest pro. But it’s not designed to support business use cases, for example, if you want to send OTA software updates to your fleet of a hundred devices, you wouldn’t want to update every device separately, or if you want to sell your smart light bulbs to people, it doesn’t give you automatic device provisioning.
Pricing is a bit complex than Particle. Free tier only supports two devices as opposed to 100 devices from particle, no OTA updates, and your historical data will be deleted after 24 hours. If you upgrade to their Maker package for $7/month, you can connect 25 devices, get OTA updates and dashboard sharing, and historical data will be saved for a month.
Particle is an edge-to-cloud platform. It takes care of complexities in connectivity and OTA software updates and offers a variety of certified WiFi and cellular boards that connect directly to its cloud platform. This eliminates unnecessary IoT vendors, particularly for cellular connectivity.
Particle only supports their own hardware lineup, which means they have control over both the hardware and the cloud. This lets them get rid of a lot of complexities and support some common features out of the box, which is why, Particle requires less development effort to set up than Arduino Cloud. The platform gives you a dashboard that offers complete visibility of all IoT devices at scale, their online status, health, and the data they are sending in. It also lets you send commands and update device softwares.
Particle particularly helps use cases where you want to monitor or track something for example package delivery, fleet management, telemetry, etc. It supports tracking of your devices in realtime using geolocation and stores the history to allow the analyses of data and determine, for example, the best route in future operations.
It’s a really solid platform. Here’s a list of features that Particle offers:
- Web editor to program and update your devices over-the-air.
- Uses Arduino-like syntax for device programming, so low learning curve there.
- SSL/TLS Encrypted communication with the Cloud.
- Realtime monitoring.
- Geolocation of each device.
- Integrations with cloud platforms like GCP, Azure, and AWS, and Webhooks for others.
- Cloud APIs in JS, android, and iOS to programmatically do whatever you can from the Particle Dashboard.
Here is why you might want to reconsider using Particle for your IoT product:
- Particle’s reliability has its price. Unlike Arduino Cloud, you can’t use Particle with an ESP32/8266 or an open source cellular board. It only works with its own hardware lineup.
- There isn’t any dashboard interface to flexibly control your devices, if your use case demands that.
Particle Cloud has a free starter package that supports 100 devices but you have to buy those devices from Particle, and the cheapest board is photon that costs about $20 to start. In comparison, you can get an ESP32 for $5 and an ESP8266 for less than $2.
This is an open source IoT platform for daCalls itself an open source IoT platform for data collection, data processing, visualization, and device management. Its design model employing entities, assets, and relations offers the most flexibility of all. To be honest, if there is one platform that can support the most use cases, it’s ThingsBoard. But this comes at the cost of a steep learning curve. It’s not as no-brainer as Particle or Arduino Cloud.
ThingsBoard enables connectivity via industry standard protocols including MQTT, COAP, and HTTP and supports both cloud and on-premise deployment. Here are some features ThingsBoard boasts of:
- Realtime monitoring and collection.
- Drag and drop dashboards to create rich visualization of data.
- Drag and drop rule engine to model the flow of data from devices to database or to trigger scripts.
- Multi-tenancy (role-based access to assets and data).
- Microservices architecture.
- Integrations with popular IoT platforms and networks like AWS IoT, IBM Watson, ThingPark, The Things Network, etc.
- Community edition which you can install on your PC instead of the Cloud.
ThingsBoard’s community edition is free as it lies on your local PC and can connect as many devices as you want. ThingsBoard Cloud pricing starts from $10 for 30 devices and assets and 10 million data points per month.
Grandeur is a fullstack IoT platform, designed to simplify the DX (developer experience) of IoT, and support IoT development at the prototyping phase, to product-market fit, all the way to scaling up.
Packed within a PubSub broker and data storage, it gives out simple APIs to connect your devices to the platform and send data. The APIs are high-level and abstract the unnecessary details about communication protocols, message formatting, event emission, etc. You start from a dashboard where you can manage your devices and accounts (we’ll see this in a while) at scale, view their data live or control them, build apps and dashboards to visualize the data and share them with your customers or teams. It also offers App SDKs for JS, Android, and iOS, so you can build white-label apps at a late stage when you are ready.
Accounts is equivalent to multi-tenancy feature of ThingsBoard but simpler and happens automatically on Grandeur. It enables you to SELL your devices to people, people can pair the devices they buy from you with their accounts in your app, and the paired devices automatically get unavailable for the rest of your users. This automates device provisioning for applications where you want to sell your devices to people.
Grandeur particularly helps teams who are building IoT products/solutions for other people, like consumer appliances (bulbs, air conditioners, inverters). The platform seamlessly separates every customer and its devices like a little subnetwork of each customer, unlike fleet monitoring where all devices are owned by one organization.
Here is a list of features:
- Drag and drop dashboards to monitor and control your devices.
- Live monitoring and control.
- Realtime data storage and query pipelines.
- Supports Accounts (multi-tenancy).
- Automatic device provisioning.
- Web Editor and OTA software updates (coming soon).
- High-level device APIs: no need to learn web and networking protocols.
- Web, Android, iOS APIs to build white-label apps.
- SSL/TLS encrypted communications.
- Does automatic horizontal scalability of the infrastructure (brokers, database, etc).
- Supports open-source hardware: Arduino, ESP8266, ESP32, Raspberry Pi, Particle (coming soon), etc.
- Template projects for major use cases to get you started instantly.
- Has a virally growing developer community.
Grandeur reduces the learning curve of IoT by abstracting away the redundant, complex details, and lets you expand quicker. And you can create your own brand identity by going bespoke. It’s open-ended, which means you can avoid vendor lock-in and save money by adopting open-source hardware.
Free tier of Grandeur is enough to support a small to mid-level project involving 100 devices with 50MB data storage for infinite amount of time.
Arduino Cloud supports IoT projects in prototyping phase with its unmatchable ecosystem of boards and libraries while Particle makes connectivity and OTA at scale feel no-brainer. ThingsBoard is the most powerful but learning curve is relatively huge. Grandeur is relatively the newest and focused on taking smaller projects to actual viable products. It simplifies the overall complexity of IoT with its abstract APIs and simple DX and lets you build quick prototypes at early stage of your project. But as you get ready to grow, it makes devices and users management at scale no-brainer with its dashboard. For use cases like fleet monitoring, asset tracking, and telemetry, there is nothing as quick to set up as Particle. But if you want to sell your IoT devices, you need multitenancy and builtin scalability, and a modern platform like Grandeur is worth your belief.