From Bryn Lewis on Hackster.io:
For school Internet of Things(IoT) projects, I needed a robust field gateway for uploading telemetry data from a number of “cheap n cheerful” sensor nodes.
The distances involved were modest 5M (indoors) to 600M (outdoors) so a mix of Low & high power nRF24L01 wireless modules looked like a suitable choice.
After looking at several Cloud IoT Services AdaFruit.IO looked like it had sufficient flexibility and a reasonable pricing model. The security model (Feb 2018) with a shared API Key will have some challenges in wider scale deployments
Initially, I was going to use the Adafruit.IO MQTT interface but have found that getting an HTTP endpoint (fine for telemetry) white-listed in a school environment is easier.
While reading the AdaFruit.IO API documents I noticed that they have published a swagger definition of the API so I used NSwag to generate a C# client. I added a partial class with a single method to put an HTTP Header with the AdaFruit.IO API Key (see AdaFruit.IO.Swagger\APIKey.cs for details) on every request.
The field gateway hardware is Raspberry PI 2/3 based with an “off the shelf” shield (with some simple modifications).
The Field Gateway configuration is stored in a JSON file (a sample file is provided in the Github repo).
Edit [2018-03-10] application now generates an empty configuration file when first run so the one on GitHub is no longer required.
Here at Adafruit, we sell all of these amazing components, but we couldn’t find a good way to interact with them over the internet. There are certainly a lot of great services out there for datalogging, or communicating with your microcontroller over the web, but these services are either too complicated to get started, or they aren’t particularly fun to use. So, we decided to experiment with our own system, and that is how Adafruit IO got started.
To make it easy for people to get started using Arduino or ESP8266 we have starter packs with just about everything you may want to connect to the internet, with known-working WiFi modules!
ESP8266 Huzzah Kit
CC3000 Huzzah Kit