Integrating IoT technology into a project can drastically expand that project’s capabilities and functionality. But this requires many decisions regarding both hardware and software. In this blog post, we will look at how to choose which IoT platform is right for you.
The Main Considerations
When choosing an IoT platform, there are many criteria that need to be considered.
Language and Libraries
All software on the market is inevitably made up of single instructions that a CPU executes, but, most of the time, this code is automatically generated by libraries, so you can focus on the functionality of the program as a whole. Chances are, any IoT platform available on the market should work with any computer language, but the platform developers may have made libraries that work better with specific languages.
If, for example, you have created a project using MicroPython and want to use an IoT platform, it would be a good idea to choose a platform that has premade libraries written in MicroPython. Otherwise, you may have to create your own code from scratch!
Message Protocol Requirements
Any device that is connected to the internet and wishes to send messages to others (including IoT platforms) needs to use a predefined protocol. There are many different types of protocol on the market, and HTTP and MQTT are some of the most popular. Because of the wide range of protocols available, IoT platforms may use different messaging systems.For a high-end system such as a Raspberry Pi, this does not matter, but devices that run on microcontrollers, such as Arduino, PIC devices, or AVRs, may not be able to handle the protocol. If a device cannot handle a protocol, it is usually due to limited RAM space. When picking an IoT platform, make sure to find out if your device can handle its messages and communication.
Security is an odd one, and it can make or break an IoT project quickly. One of the biggest problems with security is the processing power and RAM typically needed to implement it. Just like with messaging protocols, smaller devices such as PICs and Arduinos may struggle to perform advanced security features, including certificates, decryption, and encryption. That is not to say that it’s impossible, but it could cause problems down the line when your device has run out of RAM or has poor throughput. Some IoT platforms will use very basic security measures, such as basic API keys, but others may implement SSL and other complex certificate-based security systems.
Bandwidth and Cost
Bandwidth and usage allowance is very important if you expect your project to stream a lot of data. Most IoT platforms offer some kind of free service, but different platforms will have pros and cons. Some may offer large amounts of data storage, but they might limit the number of messages per minute that can be sent, while others may have an unlimited data stream rate, but they cap the maximum number of data points that can be stored. These same services will also offer paid services, which allow for higher bandwidth and messaging rates, but these prices may differ drastically. If you expect your project to grow, this is something that you should keep in mind.
Application can also be a very important consideration as some environments may have different requirements. Environments such as the medical field will require absolute reliability if used in life critical environments but if used in simple devices such as monitoring wearables then reliability is not much of an issue. IoT devices in logistics (products and packaging) may only require to be incredibly simple and run on a single RFID device which when powered could inform a database of its current location and condition. IoT in homes and business will not require reliability or simplicity but must absolutely consider security. A home that has potential monitoring devices needs to consider if those devices can be abused remotely through unsecure connections.
Choosing an IoT platform is not easy, but taking the time to research and compare different services could be a game-changer. Jumping in feet-first with a service because it has a neat feature or is having a sale is a recipe for misery, especially with projects that involve microcontrollers and low-end devices. To find out more about what IoT actually is, read our Maker.IO article, IoT!