Industrial IoT energy-monitoring platform — a three-phase Eastron SDM630MCT meter streaming electrical telemetry over LoRaWAN, end to end, from the panel to a live dashboard.
A complete end-to-end telemetry pipeline for collecting, processing, storing, and visualizing electrical measurements from an Eastron SDM630MCT-LoRaWAN three-phase energy meter. Measurements are transmitted over LoRaWAN, decoded by TTN, processed in Node-RED, stored in InfluxDB, and visualized in Grafana — with Modbus-based configuration downlinks back to the meter.
Real-time parameters: Voltage, Current, Total Current, Active Energy (kWh), Reactive Energy (kVARh), Frequency.
- Industrial IoT energy-monitoring solution with real commercial hardware
- Long-range LoRaWAN communication (uplinks + downlinks)
- Real-time telemetry acquisition and payload decoding
- Node-RED automation workflow with type validation
- InfluxDB time-series storage · Grafana dashboards and analytics
- Modbus CRC16 validation on configuration downlinks
- End-to-end telemetry architecture, documented as an engineering case study
The parts of this project that required real problem-solving:
The SDM630MCT-LoRaWAN meter is configured through Modbus-based downlink commands (batch size, transmission interval, active registers, device parameters). Getting reliable communication meant handling correct byte ordering and generating a valid CRC16 for every command — an error there means the meter silently ignores the downlink.
InfluxDB requires numerical values for aggregation and analytics. Incoming payload fields were validated and converted to floating-point before storage, preventing telemetry corruption from malformed or string-typed values.
During development, TTN reached a local Node-RED instance through an ngrok tunnel. Tunnel expiration and connectivity limits required extra validation and automation to keep the pipeline stable.
Grafana dashboards were built to present electrical measurements clearly — correct units, legends, and time-series structure — because a dashboard is only useful if the data is readable at a glance.
flowchart LR
Meter["Eastron SDM630MCT-LoRaWAN"]
Gateway["LoRaWAN Gateway"]
TTN["The Things Network (TTN)"]
NodeRED["Node-RED"]
Influx["InfluxDB"]
Grafana["Grafana"]
Meter -->|Telemetry Uplinks| Gateway
Gateway -->|LoRaWAN| TTN
TTN -->|Webhook JSON| NodeRED
NodeRED -->|Processed Measurements| Influx
Influx -->|Time-Series Queries| Grafana
TTN -. Configuration Downlinks .-> Meter
Data flow: energy meter → LoRaWAN gateway → TTN (decode + webhook) → Node-RED (validate + transform) → InfluxDB (time-series) → Grafana (dashboards).
| Component | Purpose |
|---|---|
| Eastron SDM630MCT-LoRaWAN | Three-phase energy meter |
| LoRaWAN Gateway | Packet forwarding |
| The Things Network (TTN) | LoRaWAN network server |
| Node-RED | Data processing and automation |
| InfluxDB | Time-series database |
| Grafana | Monitoring dashboards |
| Ngrok | Development webhook tunnel |
- The Eastron energy meter captures electrical measurements.
- Measurements are transmitted through LoRaWAN.
- The gateway forwards packets to TTN.
- TTN decodes payloads and triggers webhooks.
- Node-RED receives and validates telemetry.
- Data is transformed into structured measurements.
- InfluxDB stores the measurements as time-series data.
- Grafana visualizes the information through dashboards.
| Parameter | Unit |
|---|---|
| Voltage | V |
| Current | A |
| Total Current | A |
| Active Energy | kWh |
| Reactive Energy | kVARh |
| Frequency | Hz |
- LoRaWAN payloads require strict formatting.
- CRC validation is critical in Modbus communication.
- Node-RED significantly simplifies IoT integrations.
- Time-series databases require consistent field types.
- Dashboard design is as important as data collection.
- Proper validation prevents telemetry corruption.
eastron-lorawan-energy-monitoring/
├── README.md
├── LICENSE
├── .gitignore
├── docs/
│ └── MEMORIA_PRACTICAS.pdf
├── images/
│ ├── ttn-configuration.png
│ ├── node-red-flow.png
│ ├── influxdb-data-explorer.png
│ └── grafana-dashboard.png
├── examples/
│ ├── sample-uplink.json
│ ├── sample-downlinks.md
│ └── payload-description.md
└── notes/
├── lessons-learned.md
└── future-improvements.md
- Docker Compose deployment
- MQTT integration
- Alerting via Telegram and Email
- Multiple meter support
- Grafana / Node-RED flow versioning
- VPS or cloud deployment
- Remote device management and automatic provisioning
Before publishing any IoT project, remove TTN API keys, InfluxDB tokens, Grafana credentials, active webhook URLs and ngrok endpoints, and rotate any exposed secrets. This repository is a public engineering case study and contains no active production secrets.
Developed as part of a university internship focused on Internet of Things (IoT), LoRaWAN networks, telemetry systems, industrial monitoring, and data visualization. The repository serves as technical documentation and a portfolio project demonstrating a complete Industrial IoT telemetry stack.
Zoel Arias Manchón — July 2025
Released under the MIT License.



