The use of the ESP8266 in the world of IoT

User avatar
By Toebs
#65910 Hello

This is my first post, I hope this is the right place to post this kind of question.

I have approximately 1 acre of greenhouse (comprised of 10 pretty large greenhouses). I am working on a sensor and automation system for my greenhouses, but i am unsure which 'IoT' platform to use.

I have been looking at many services but have come down to AWS IoT, IBM Watson, Google Cloud services and Microsoft Azure. Basically i like to know that my service will not go bankrupt :).
I think i have ruled Microsoft out, because i am generally unimpressed by microsoft products (i maybe assuming wrong).

I have attached a system diagram

Platform requirements:
- Easy to develop (maybe IBM is the easiest?)
- Suited for large number of sensors. I will probably have at least 1000 devices my self, and i also want to keep the option open to start selling at some point of if that becomes relevant.
- As you can see in diagram, i have a base-station with devices connected. The service should be able to handle this easily.
- Price is important. I am unsure if the difference is big between suppliers, but i think some of the price plans are hard to figure out!
- Device management: eg. if I have a sensor in "tomatoplant 102" and the sensor dies, then i can easily swap it with a new sensor of same kind and maintain historic data for that location/plant.
- Machine learning ("AI") could become relevant at some point. IBM looks very interesting in this aspect.

Somehow i am leaning most towards AWS or Google because it seems lightweight, affordable and they generally make good products imo.

Advice is appreciated!
You do not have the required permissions to view the files attached to this post.
User avatar
By davydnorris
#65934 DISCLAIMER: I used to work for IBM in the Watson IoT division

In my former life I was paid to examine the various IoT platforms and advise on the best solution for my clients, so I ended up very familiar with all the main platforms out there. I am now running my own business and have selected IBM Bluemix as my core platform.

I (and my former clients) have found:
- getting up and running is very, very fast and seamless
- there are a huge range of hosting options from very light cloud application buildpacks in almost any language or variation you would need, to containers, to full blown virtual machines. I use a mix of Node.js (with NodeRED added in most) and Java buildpacks for my apps
- the services are the easiest to integrate and their APIs are the simplest to use BY FAR. This often kills on other platforms
- there are a ton of recipes and repos that will help you connect your devices and build your apps
- the pricing is very competitive, and the 'freemium' thresholds are very generous. I have had a commercial account for 8 months now and have yet to pay a cent for my apps. Mind you, I have designed them reasonably carefully to minimise costs but it's not hard to do that.
User avatar
By davydnorris
#65994 Hope you have as much fun as I have had with it! Design reasonably carefully and even if you decide to move later it'll be a fairly straightforward process. The buildpacks for the CloudFoundry cloud apps and the images for Docker containers are pretty stock and easily transportable - it's just the services on other platforms that will take some work.

Just yell in the forum if you have any problems - I'd be very happy to help.

Oh and FWIW, this is my personal opinion on the main platforms:
- if you want bare VMs for servers, AWS kills it. Super fast spin up, great performance, great range of configuration choices, really good rates. Have recently worked with a client who chose Azure and I can't vouch for the setup and admin, but their range of configurations was really good and the experience inside the VMs was fine, but I had another client where the experience was awful. Very random VM performance issues that I spent ages trying to track down as an application problem. IBM has been doing lots of work on their Softlayer provisioning, but in the early days it took forever to get a VM image spun up. However, once you were done it all 'just worked'.

- if you want regular Cloud apps, then Bluemix all the way. Overall AWS was really good for the core buildpack/container management stuff but their APIs were really difficult to navigate. Azure was fine as long as you were a .NET fan, which you would expect really. I used to run lots of Hackathons and would see people building similar apps side by side, and many would go for AWS because of familiarity. However, the Bluemix devs (even ones brand new to the platform) would regularly complete much faster than anybody else, and would site the simplicity of the APIs and the documentation and examples as a core reason.

- if you want IoT then Bluemix, followed by Azure. The security, device management, raw data analysis, dashboards in Bluemix are so cool. I really liked Azure's dashboards too. Been a while since I used AWS for IoT but it just seemed like a lot of work and not much given for free.

You'll notice I haven't mentioned Google. Out in here in Australia I have not come across a single Cloud dev using it. I am sure they are out there and doing great things, but AWS, Azure and Bluemix seem to be the main ones, in that order.

So there you go!

PS: Don't forget you can totally mix and match - you'll see a whole bunch of recipes on IBM's DeveloperWorks site showing how to call Bluemix Services from an AWS app!