Wind Turbine Sensors
Industrial telemetry arrives through MQTT topics.
Current Project
A live industrial telemetry platform that moves wind-turbine sensor data through Kafka, stores time-series history in InfluxDB, and serves realtime plus historical monitoring to a Shiny dashboard.
Project Story
The platform is designed around a practical data-engineering split: Kafka carries the live stream, InfluxDB keeps historical time-series data queryable, and the dashboard uses each system for the thing it does best. Live views connect to the Kafka live stream API over `/ws/live`, while historical charts call `/history`, which queries InfluxDB.
Architecture
Industrial telemetry arrives through MQTT topics.
Receives normalized windfarm telemetry and makes it available to storage and live API consumers.
Consumes Kafka, keeps a live buffer, broadcasts `/ws/live`, and serves `/history` from InfluxDB.
Consumes Kafka messages and writes clean time-series points into InfluxDB.
Stores historical readings for range queries and sensor comparisons.
Shiny + Plotly dashboard combines `/ws/live` updates with Influx-backed historical charts.
Design Decisions
Kafka is the realtime spine. The live API subscribes to the Kafka topic instead of coupling the dashboard to upstream telemetry ingestion.
InfluxDB stores time-series data for historical queries, comparisons, and asset-level sensor analysis.
The dashboard receives snapshot, status, and event payloads through `/ws/live`, backed by the Kafka consumer in the live API.
Engineering Work
This list is intentionally editable as the project grows.
Replaced brittle live polling with websocket-based updates.
Kept live updates on `/ws/live` while historical query charts use `/history` backed by InfluxDB.
Added separate live selection, multi-sensor history comparison, and asset filtering.
Docker Compose keeps the pipeline services runnable as a full local system.
Use Cases
Tech Stack