A cloud-native EV Charging Management System built for a provider of mobile, containerized EV chargers. The system enables secure, real-time monitoring and control of a distributed, rapidly deployable charging fleet.
Goals
- Real-time telemetry ingestion and visualization
- Remote control of charging units
- Scalable analytics for operational insights
- Low-latency, secure communication with field devices
Technologies Used
IoT & Communication
- MQTT – Lightweight messaging protocol for real-time telemetry
- Azure IoT Hub – Secure device provisioning and message routing
Backend & Serverless
- C# / .NET – Core backend development
- Azure Functions – Event-driven compute for processing and APIs
- Azure Event Hubs – High-throughput telemetry ingestion
- Azure Stream Analytics – Real-time data filtering and alerting
Data & Analytics
- SQL Server – Structured storage for metadata and operational logs
- Azure Data Explorer (ADX) – Time-series analytics and fleet-level insights
Frontend
- Nuxt (Vue.js) – SSR-compatible, responsive dashboard application
Architecture
Data Flow
Telemetry Path:
- Chargers connect via MQTT to Azure IoT Hub
- Data is routed to Azure Event Hubs
- Azure Stream Analytics filters/processes events
- Output is stored in:
- SQL Server for structured state
- Azure Data Explorer for analytics
Command Path:
- Operator commands (e.g., reboot, reconfigure) are sent from the dashboard
- Routed through Azure Functions
- Delivered back to devices via MQTT through IoT Hub
Dashboard Features
Built with Nuxt (Vue 3) and powered by Azure APIs:
- Live charger status (state, health, telemetry)
- Interactive map with GPS tracking
- Remote actions: restart, lock/unlock, update config
- Historical trends and fleet performance charts
Results
- Fleet-wide real-time observability with low latency
- Remote control and device action execution via MQTT
- Scalable ingestion and processing of high-frequency telemetry
- Actionable analytics via Azure Data Explorer
- Cloud-native, serverless architecture with minimal maintenance overhead
Key Learnings
- MQTT is ideal for lightweight, bi-directional IoT communication
- Combining Azure Stream Analytics and ADX balances real-time and historical data needs
- Azure Functions scale efficiently for reactive backends
- Nuxt provides fast, modern UI development for data-heavy apps
Tools and Skills Used
- C#
- Azure Functions
- Azure IoT Hub
- Azure Event Hubs
- Azure Stream Analytics
- Azure Data Explorer
- MQTT
- SQL Server
- GitHub Actions