Secure BLE MQTT Monitoring Platform
Built a Raspberry Pi 5 monitoring platform that ingests BLE sensor data, secures transport with TLS-enabled MQTT, processes events in Node-RED, stores metrics in InfluxDB, and visualizes them in Grafana.



Key results
- TLS / X.509
- Secured MQTT transport
- Podman Compose
- Containerized services
- InfluxDB
- Time-series storage
- Grafana
- Telemetry visualization
Case Snapshot
Role
End-to-end IoT integration: BLE ingestion, secure MQTT transport, containerized services, telemetry processing, time-series storage, dashboarding and operational documentation.
Scope
I combined the BLE collector, Mosquitto broker, Node-RED flow, InfluxDB, and Grafana into a Podman Compose stack on Raspberry Pi 5. MQTT traffic is protected with X.509 certificates, Grafana and InfluxDB credentials are injected...
Constraints
Mutual TLS with X.509 certificates protects MQTT traffic, Podman secrets isolate admin passwords and token keys, and the GitHub repository excludes local env files, generated tokens, and private certificate material. Decoupled...
Architecture
Node
BLE sensor nodes publish environmental telemetry from ESP32-class devices into the local gateway path.
Edge
Raspberry Pi 5 hosts containerized BLE ingestion, Mosquitto, Node-RED, InfluxDB, and Grafana as one local monitoring stack managed with Podman Compose.
Cloud
The design is local-first and does not require a public cloud; processed telemetry can later be forwarded to remote dashboards or alerting systems if needed.
Technical Decisions
- BLE ingestion on Raspberry Pi 5 with MQTT as the backbone transport
- Mosquitto secured with TLS and client certificates
- Node-RED processing, InfluxDB time-series storage, and Grafana dashboards
- Podman Compose orchestration with Podman secrets and GitHub-safe repo structure
Challenges
- Separate homework-style steps do not communicate real engineering depth. The system needed to be combined into one coherent platform with secure transport, secret management, processing,...
- Mutual TLS with X.509 certificates protects MQTT traffic, Podman secrets isolate admin passwords and token keys, and the GitHub repository excludes local env files, generated tokens, and...
- Decoupled services, restart policies, health checks, and a repeatable secret bootstrap script make the platform easier to redeploy after service failures, host changes, or fresh Pi setups.
Lessons Learned
- Turned several separate assignments into one coherent monitoring platform
- Published a public GitHub repository without shipping secrets or private key material
- Shows systems integration, observability, and secure deployment on Raspberry Pi
Future Improvements
- Update diagrams when the architecture changes materially.
- Keep documentation concise: align README, architecture decisions, and screenshots.
Tech Stack
Artifacts
Related Project
Follow the adjacent case study to see how this project connects with the rest of the work.
Telemetry Processing and Dashboard Layer
Built the Node-RED, InfluxDB, and Grafana layer that transforms MQTT telemetry into stored metrics and operator-facing dashboards.