From 8f480f4c94c08061b3a089f80cede43588f134a3 Mon Sep 17 00:00:00 2001 From: simonox Date: Sat, 16 Sep 2023 16:44:40 +0200 Subject: [PATCH] architecture overview --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9faeed8..057a2b7 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,16 @@ This project is a backend solution for prototyping Internet of Things (IoT) serv * [InfluxDB](https://www.influxdata.com/): High-performance data storage * [Node-RED](https://nodered.org/): Flow-based development tool for visual programming and data flow automation +## Architecture overview + +Data is collected by IoT devices, e.g. an ESP32 based power monitor. These devices *publish* their data via MQTT into a topic in a message broker. We use Eclipse Mosquitto as a MQTT message broker. + +Node-RED is used to read and transform or combine data and to implement more sophicsticated use cases like notifications or worksflow. Node-RED *subscribes* to topics in Mosquitto and can be used to save transformed data into a database. + +As our data is bases on time, we are using a *time series database* to store information. We used InfluxDB as this database. + +Dashboards can already be created in Node-RED, but to be more flexible (and include more options) we are using Grafana. Grafana reads data from our *database* and *other sources* (like CSV files on the Internet) and displays them in a nice dashboard. + ## Prerequisites ### Docker @@ -23,6 +33,7 @@ First install Docker and `docker-compose`: If you want to use an UI for Docker, you can optionally also use [Docker Desktop](https://www.docker.com/products/docker-desktop/). + ## Installation ### Clone the Repository @@ -63,7 +74,7 @@ Node-RED is also running in Docker and is exposed on port `1880`: http://localho ### InfluxDB -[InfluxDB](https://www.influxdata.com) is a database for any time series data with a single. It runs in Docker and is exposed on port `8086`: http://localhost:8086/ (you have to create an initial user in just a few simple steps) +[InfluxDB](https://www.influxdata.com) is a database for any time series data. It runs in Docker and is exposed on port `8086`: http://localhost:8086/ (you have to create an initial user in just a few simple steps) ### Grafana