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
Node
BLE-Sensorknoten senden Umgebungs-Telemetrie von ESP32-basierten Geräten in den lokalen Gateway-Pfad.
Edge
Der Raspberry Pi 5 hostet containerisierte BLE-Ingestion, Mosquitto, Node-RED, InfluxDB und Grafana als lokalen Monitoring-Stack, verwaltet mit Podman Compose.
Cloud
Das Design ist local-first und benötigt keine Public Cloud; verarbeitete Telemetrie kann später bei Bedarf an entfernte Dashboards oder Alerting-Systeme weitergeleitet werden.
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.



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
Messaging & Verarbeitung
Daten & Visualisierung
Runtime & 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.