Everyone seems to want to provide an IoT solution, but it's a tough market to crack. Now Arduino has an easy to use cloud solution, but can you trust it? And is it even needed?
One of the reassuring things about the Arduino, and something that contributed to making it a sucess, was its open source nature. Of course, this caused Arduino - the company - problems. How to make money and keep control of an open source product is a headache. One solution is to move things online.
Once upon a time the Arduino was programmed exclusively using an open source desktop IDE. Using it gave the security of open source. Now if you visit the Arduino site it says:
"If you have a reliable Internet connection, you should use the(Arduino Web Editor). It will allow you to save your sketches in the cloud, having them available from any device and backed up. You will always have the most up-to-date version of the IDE without the need to install updates or community generated libraries."
Guess what - the online editor isn't open source. You don't have to pay to use it and presumably it is subsidized from profits from the hardware. If you are a school then they do charge - $0.99 per user per month and less for bigger schools. The big problem is do you trust this closed online free service with your work? Presumably not, if it is important. I've stuck with the desktop editor for exactly this reason.
So now we have the Arduino IoT cloud to add to the mix. This is an easy to use way of creating IoT devices. Arduino's isn't the only attempt at making things easy - Mozilla has one and Google has just given up on one and started another. A really good one is Cayenne.
To see what the Arduino Cloud it is all about, have a look at the following video:
I can see that it makes doing standard things easier and having the data transferred to the cloud doesn't need any extra effort. I'm less convinced that this is as creative as starting with a board and writing C code, however. What if I want to do something completely new? Then I'm back to writing a Sketch. This is the problem with most "put together" systems.
Another small problem is that at the moment it only works with a limited number of devices:
"Currently only the MKR1000 and MKR WiFi 1010 boards are supported. In future the MKR GSM 1400, MKR Vidor 4000 and Arduino Uno WiFi Rev2 will be supported too."
A much bigger worry is what if they have to pull the plug after I've spent months implementing a project. The fact that the service is free at the moment doesn't encourage me to believe in it. I asked about future charges and the response was:
"we will have multiple paid plans for makers, professionals and enterprises.
The price is not yet public and varies a lot based on features. As of now the free tier includes 1 thing (virtual online object) with up to 5 properties (thing's characteristics and variables) and a limited properties' history (up to 48 hours)
Paid plans will provide more data retentions, no limit for webhook endpoints, more things and more properties each thing."
So the free tier isn't going to be that useful if you are trying to do something for real and until we know the price of the paid-for tier it is difficult to know if it is affordable.
A bigger worry is the same worry that is associated with the risk of using someone else's cloud solution for your project. Are you really prepared to depend on the continued existence of the cloud service to keep your product going? IoT products have a long life span and cloud services tend not to. I'm not saying that Arduino is any more untrustworthy than any other cloud service - it is a constant risk.
The solution is to make the server software open source so that you can take it and host it on AWS, Azure or something in-house. I doubt that Arduino is going to do this, which is a shame because open source worked so well for them in the beginning.