-
Notifications
You must be signed in to change notification settings - Fork 7
Systems Architecture ‐ top level
The basic architecture consists of:
- Affordable sensor nodes based on off-the-shelf boards and sensor components.
- Optional Local hub so the system can operate when the net is down.
- Nodes connected in a mix of direct to WiFi or GSM; Lora Mesh network to a gateway node with WiFi or GSM;
- MQTT Broker that can relay large volumes of messages
- MQTT Logger that can selectively store data for later analysis and also forward to Google Sheets or other platforms
- HTTP Server providing access to the Broker (current) and Logger (past) data
- HTML / CSS / Javascript User interface that can be viewed on Phone or Desktop browsers.
Typically either: a: an off the shelf development with off the shelf sensors attached in an ABS box. b: A reprogrammed device - currently supporting Sonoff switches and Lilygo Higrow plant sensors
More on Wiki: "Frugal IoT - nodes"
The code is on github:mitra42/frugal-iot
The concept is to support data connections locally, and allow a group of nodes to work better if the internet is intermittent.
No work has been done on it as of March 2026.
A variety of means of nodes communicating with the net are being explored.
Direct connect to WiFi is well tested.
Nodes connected to each other via LoRa Mesh network and then to a gateway is built and tested in lab, but not in the field.
Gateway nodes from LoRa Mesh to WiFi is built and tested in the lab. We've tested it over distances exceeding 500m and reputedly with good antennas it can go to 7km radius. With multi-hop this means simple nodes within about a km of each other are likely to work.
GSM - either direct or in a gateway has not yet been built.
See Google Doc:"Frugal IoT - Communications Architecture" (which may be a bit obsolete)
Using an off the shelf package "Mosquito", with trivial configuration, and running on our server at naturalinnovation.org.
This is easy to change if anyone wants to run their own infrastructure.
A separate and efficient package that logs MQTT messages to CSV files, allowing back data to be analysed in the client or elsewhere.
The Logger can also write to Google Sheets, and the plan is to extend it at the (end of 2025) to talk to Firebase.
Its on github:mitra42/frugal-iot-logger and works well on laptops for example to collect any kind of MQTT data.
A simple server, that can deliver up the User Interface. It can also host, or work independently with, the MQTT Logger.
There is an instance on frugaliot.naturalinnovation.org.
The code is on github:mitra42/frugal-iot-server and also works well on laptops for development.
A user interface has been developed.
It uses a mixture of configuration of known node types, and discovery of new node types to ensure that in most cases a reasonable UI is delivered even for new sensors.
It runs in phone or desktop browsers. It uses static files and connects to the MQTT Broker for current data, and MQTT Logger for past data, so should be light on peoples cellphone data plans. It works well, but is under active development.
It can already display both dashboards and a graphical UI of current sensor readings and can also control variables on the nodes.
The code is on github:mitra42/frugal-iot-client and also works well on laptops for development.