Find a file
Oliver Wallisch c49cc6e72e
Some checks are pending
🧪 Go CI Pipeline / Build & Test Go Application (push) Waiting to run
testpush for feature
2026-03-13 16:34:52 +01:00
.github/workflows integrated QoL pipelines 2025-10-28 13:42:00 +01:00
.idea add: included mqtt connection, establish mqtt client 2025-10-27 10:36:07 +01:00
backend testpush for feature 2026-03-13 16:34:52 +01:00
config fix: updated project structure 2025-10-27 16:22:56 +01:00
lua/plugins updated architecture 2026-01-26 14:59:37 +01:00
src updated main.py 2025-10-24 22:52:37 +02:00
venv first configuration files for esp32 2025-10-24 22:34:05 +02:00
.DS_Store updated architecture 2026-01-26 14:59:37 +01:00
.gitignore Sensitive Daten aus Repository entfernt 2026-01-27 08:24:27 +01:00
docker-compose.yaml testpush for feature 2026-03-13 16:34:52 +01:00
go.mod add: integrated caching, Dockerfile; removed influx 2026-02-23 20:32:52 +01:00
go.sum add: integrated caching, Dockerfile; removed influx 2026-02-23 20:32:52 +01:00
pyrightconfig.json Refactor pyrightconfig.json formatting 2025-10-28 14:20:56 +01:00
README.md Initialize README with project description and goals 2025-10-28 11:22:02 +01:00

🌐 ESP32 IoT Simulation Platform

Dieses Projekt ist ein Proof of Concept (PoC) für eine skalierbare IoT-Architektur,
bei der virtuelle ESP32-Geräte Messwerte (z. B. Temperatur, Luftfeuchtigkeit, Luftdruck)
an einen MQTT-Broker senden.
Ein Go-Backend empfängt diese Daten, leitet sie über Kafka weiter, speichert sie in einer Datenbank
und stellt sie später über eine Weboberfläche und ein Monitoring-Dashboard bereit.


🚀 Ziel des Projekts

Das Ziel ist es, den kompletten Datenfluss von
IoT-Sensor → MQTT → Kafka → Go-Backend → PostgreSQL → Web/Grafana
zu demonstrieren und eine Architektur zu entwerfen, die auf über 1 000 Kunden skalierbar bleibt.


🧩 Systemübersicht

         ┌────────────────────────────────────────────┐
         │                Simulationsebene            │
         │ (ESP32 virtuell in Wokwi oder Go-Simulator)│
         │  → sendet Metriken (Temp, Feuchte, Druck)  │
         └─────────────────────┬──────────────────────┘
                               │ MQTT (Topic: iot/metrics)
                               ▼
                 ┌──────────────────────────┐
                 │   MQTT-Broker (HiveMQ)    │
                 │   • empfängt Sensordaten  │
                 │   • verteilt an Kafka     │
                 └──────────────┬────────────┘
                                │ MQTT → Kafka Bridge
                                ▼
                ┌──────────────────────────────┐
                │   Apache Kafka                │
                │   • Topic: iot-metrics        │
                │   • Topic: iot-control        │
                │   • Message Backbone für      │
                │     Skalierung & Services     │
                └──────────────┬───────────────┘
                               │
               ┌───────────────┼────────────────────┐
               │               │                    │
               ▼               ▼                    ▼
     ┌────────────────┐  ┌────────────────┐  ┌────────────────┐
     │ Go Backend API │  │ Control Service│  │  Redis Cache    │
     │  (Consumer)    │  │  (Producer)    │  │  • Schneller     │
     │  • verarbeitet │  │  • sendet      │  │    Zugriff auf   │
     │    Metriken    │  │    Befehle     │  │    letzte Werte  │
     │  • speichert in│  │    an MQTT     │  └────────────────┘
     │    PostgreSQL  │  └────────────────┘
     └──────┬─────────┘
            │ REST / WebSocket API
            ▼
      ┌─────────────────────────────┐
      │ Web Dashboard (Frontend)    │
      │ • Visualisiert Live-Daten   │
      │ • Sendet Steuerkommandos    │
      └──────────────┬──────────────┘
                     ▼
        ┌──────────────────────────┐
        │ Monitoring (Grafana)     │
        │ • greift auf PostgreSQL  │
        │   oder Prometheus zu     │
        │ • zeigt historische &    │
        │   Live-Metriken          │
        └──────────────────────────┘