Zum Inhalt springen
Projekte
Umgesetzt2026Raspberry Pi 5TLS/X.509Mosquitto MQTTPodman ComposePython

Sichere BLE-MQTT-Monitoring-Plattform

Entwickelt eine Raspberry-Pi-5-Monitoring-Plattform, die BLE-Sensordaten erfasst, den Transport über TLS-abgesichertes MQTT schützt, Ereignisse in Node-RED verarbeitet, Metriken in InfluxDB speichert und in Grafana visualisiert.

Rolle

End-to-End-IoT-Integration: BLE-Ingestion, sicherer MQTT-Transport, containerisierte Dienste, Telemetrieverarbeitung, Zeitreihenspeicherung, Dashboarding und Betriebsdokumentation.

Kernergebnisse

TLS / X.509
Abgesicherter MQTT-Transport
Podman Compose
Containerisierte Dienste
InfluxDB
Zeitreihenspeicherung
Grafana
Telemetrievisualisierung

Problem und Rahmenbedingungen

Getrennte aufgabenartige Teilschritte vermitteln keine wirkliche Engineering-Tiefe. Das System musste zu einer zusammenhängenden Plattform mit sicherem Transport, Secret-Management, Verarbeitung, Speicherung, Dashboards und einer sicher publizierbaren Repository-Struktur zusammengeführt werden.

Sicherheit

Gegenseitiges TLS mit X.509-Zertifikaten schützt den MQTT-Verkehr, Podman-Secrets kapseln Admin-Passwörter und Token-Schlüssel, und das GitHub-Repository schließt lokale Env-Dateien, generierte Tokens und privates Zertifikatsmaterial aus.

Zuverlässigkeit

Entkoppelte Services, Restart-Policies, Health Checks und ein wiederholbarer Secret-Bootstrap machen die Plattform nach Servicefehlern, Host-Wechseln oder frischen Pi-Setups leichter neu ausrollbar.

Was ich gebaut habe

Ich habe BLE-Collector, Mosquitto-Broker, Node-RED-Flow, InfluxDB und Grafana zu einem Podman-Compose-Stack auf dem Raspberry Pi 5 zusammengeführt. Der MQTT-Verkehr ist mit X.509-Zertifikaten geschützt, Grafana- und InfluxDB-Zugangsdaten werden über Podman-Secrets injiziert, Node-RED-Credentials aus der hartkodierten Konfiguration herausgelöst und das öffentliche Repository mit .env.example, .gitignore und einem wiederverwendbaren create_secrets.sh-Workflow ausgestattet.

Architektur

Architekturdiagramme

Technische Entscheidungen

  • BLE-Ingestion auf dem Raspberry Pi 5 mit MQTT als Rückgrat des Transports
  • Mosquitto abgesichert mit TLS und Client-Zertifikaten
  • Node-RED-Verarbeitung, InfluxDB-Zeitreihenspeicherung und Grafana-Dashboards
  • Podman-Compose-Orchestrierung mit Podman-Secrets und GitHub-sicherer Repository-Struktur

Validierung

  • Bestätigt, dass Node-RED Temperatur- und Feuchtigkeitsnachrichten über MQTT empfängt und normalisierte Payload-Werte im Debug-Output ausgibt.
  • Bestätigt, dass der Verarbeitungsflow Telemetrie von Mosquitto über einen Transformationsschritt nach InfluxDB leitet und parallel einen Debug-Zweig zur Prüfung beibehält.
  • InfluxDB Data Explorer abgefragt und persistierte Temperatur- und Feuchtigkeitsfelder in der Measurement sensor_data nachgewiesen.
  • Das öffentliche Repository darauf geprüft, dass lokale Umgebungsdateien, generierte Tokens und privates Zertifikatsmaterial ausgeschlossen sind.
Node-RED-Flow vom Mosquitto-Eingang über eine Verarbeitungsfunktion zu InfluxDB- und Debug-Ausgabe
Verarbeitungspfad: Mosquitto-Eingang, Payload-Transformation, InfluxDB-Schreibvorgang und Debug-Prüfung.
Node-RED-Debug-Ausgabe mit Temperatur- und Feuchtigkeitswerten aus MQTT-Payloads
Laufzeitnachweis: abwechselnde Temperatur- und Feuchtigkeits-Payloads in Node-RED empfangen.
InfluxDB-Data-Explorer-Tabelle mit gespeicherten Temperatur- und Feuchtigkeitsfeldern der Measurement sensor_data
Persistenznachweis: Temperatur- und Feuchtigkeitsfelder in der Measurement sensor_data gespeichert.

Ergebnisse

Mehrere getrennte Aufgaben in eine zusammenhängende Monitoring-Plattform überführt

Ein öffentliches GitHub-Repository veröffentlicht, ohne Secrets oder privates Key-Material mitzuliefern

Ein stärkeres Portfolio-Signal für Systemintegration, Observability und sicheres Deployment auf dem Raspberry Pi geschaffen

Vollständiger Stack

Hardware & Ingestion

Raspberry Pi 5ESP32BLEPython

Messaging & Verarbeitung

Mosquitto MQTTTLSX.509Node-RED

Daten & Visualisierung

InfluxDBGrafana

Runtime & Secrets

Podman ComposePodman secrets

Artefakte

Nächster technischer Schritt

Geplante Arbeit

Einen wiederholbaren End-to-End-Integrationstest ergänzen, der eine synthetische BLE-Payload über MQTT-Verarbeitung bis zur persistierten Metrik und Dashboard-Abfrage verfolgt.