Sensor Station is a collection of software components built to provide a complete Earth to Cloud IoT framework.
TODO Insert Diagram Here.
It starts by collecting data, cleaning and distribtuing the data to a dashboard, databases, control logic and other interesting places.
We will spread a number of Sensor Stations around a yard with the following sensors: soil moisture, light, temperature and humidity sensors. All this data is gathered by small inexpensive devices (micro-controllers) that run off solar or battery power collecting the above mentioned data.
The data is transmitted via wireless network to a Macro-controller that collects, cleanses and passes the data along to it's desired locations, including but not limited to: a real-time dashboard, time-series database and control logic.
The data can then be used to turn on and off lights and sprinklers among a variety of other cool things.
For our purposes we will build Sensor Stations from little, inexpensive micro-controllers that are fitted with sensors including soil moisture, air temp, humidty and such. The devices will be able to transmit data wirelessly back to a Macro Controller that cares for the data and sends it to various destinations such as control logic, databases, dashboards and so on.
TODO esp32 link to esp32
The micro controllers are capable of forming self configuring mesh networks with slimmed down wireless network protocols (wifi & ble) which are ideal for low to moderate data rate sensor advertisements that may include streaming video in certain conditions.
The mesh network allows devices to be scattered about in arbitrary patterns to form networks which are capable of covering large areas even with out any power or network infrastructure. The Mesh is self forming and healing, has zero configuration, zero infrastructure capable network with an optional IP Gateway.
The mesh networks are advertised capable of 10Mps (or 1mps) per device stream up to 200m (NEED TO CHECK THESE NUMBERS) and of course in the real world YMMV.
Dashboard (Web App)
A nice modern dashboard application for monitoring, configuring and maintaining this system.
The Macro-Controller is basically what is known as a micro-server. This one happens to be built with IoT applications in mind. It includes a number of powerful features one would expect from a modern industrial strength micro server.
Serves up HTML for Webapp (SPA)
Serves up HTTP / JSON for REST API
Speaks MQTT with IoT devices
Speaks Websocket to with real-time modern web applications
Simple, very little (to no) configuration required
Zero Configuration (plug it in and let it go!)
Go: fast. REALLY fast!
Application is a single binary, Just like the good ole days!
– No big ass frameworks to lug around, build or conflict.
Separation of Data and Control
What will be seen as this architecture is drawn out, is there is an quasi-abstract layer of communication between the providers of data and the consumers of that data. This provides us with all sorts of advantages to do great things, but it does bring along it's own level of complexity that must be cared for out of the gate.
TODO Speak more about messaging?
Cloud Support and Automation
TODO Write Up cloud automation
A lot can, and will be said about cloud automation.