Industrial Data Visualization with Grafana: Real-Time Monitoring and Dashboard Design

Amazeng Technical Team
8 min read
GrafanaData VisualizationDashboardIoTMonitoringInfluxDBTime Series

Introduction

In industrial facilities, data flows from dozens of sensors every second: temperature, pressure, weight, vibration... However, if this data is not made meaningful, it remains just "numbers." This is where Grafana stands out as the most powerful open-source tool for visualizing and making industrial data meaningful.

In this article, we'll cover how to use Grafana in industrial IoT projects, its integration with our ZMA/GDT devices, and professional dashboard design.

What is Grafana?

Grafana is an open-source platform used to visualize data from time-series databases (InfluxDB, Prometheus, TimescaleDB, Amazon Timestream, etc.). It's particularly preferred in IoT and industrial monitoring systems because:

  • Real-Time Data Flow: Can update at millisecond intervals.
  • Flexible Dashboard Design: Create rich visualization panels with drag-and-drop.
  • Alarm System: Generates automatic alarms at defined threshold values (email, Slack, Telegram, etc.).
  • Multiple Data Sources: Can combine multiple databases in a single dashboard.

Grafana Architecture for Industrial IoT

A typical industrial Grafana integration works like this:

ZMA/GDT Devices → MQTT/Modbus → IoT Gateway → Time Series DB (InfluxDB) → Grafana Dashboard

1. Data Collection: ZMA and GDT

Our ZMA Data Acquisition and GDT Digital Transmitter devices:

  • Collect high-precision data with 24-bit resolution
  • Communicate via Modbus RTU/TCP
  • Transmit to cloud/local servers via MQTT or HTTP

2. Time Series Database

Data sources that work best with Grafana:

  • InfluxDB: Open-source, high-performance time-series DB
  • Amazon Timestream: Cloud-based, managed service (Our Amazon Timestream article)
  • TimescaleDB: PostgreSQL-based time-series extension

3. Grafana Dashboard

Dashboards consist of different panels:

  • Graph Panel: Time series charts
  • Gauge Panel: Instant value indicator (RPM, temperature, etc.)
  • Stat Panel: Single numerical value display
  • Table Panel: Tabular data display
  • Heatmap: Density maps

Real-World Application: Weighing System Dashboard

Example Grafana dashboard structure for a milk tank monitoring system:

Panel 1: Current Weight (Gauge)

SELECT last("weight") FROM "tank_data"
WHERE ("device_id" = 'GDT-001') AND time > now() - 5m

Panel 2: Fill Trend (Graph)

SELECT mean("weight") FROM "tank_data"
WHERE time > now() - 24h
GROUP BY time(10m)

Panel 3: Temperature Monitoring

SELECT "temperature" FROM "sensor_data"
WHERE ("sensor_id" = 'ZMA-TEMP-01') AND time > now() - 1h

Panel 4: Alarm Status (Stat Panel)

SELECT count("alarm") FROM "alerts"
WHERE time > now() - 1h

Grafana Alert Configuration

Automatic alarm setup for critical situations:

alert:
  name: "Tank Overflow Warning"
  condition:
    - query: SELECT last("weight") FROM "tank_data"
    - threshold: > 950 kg
  notification:
    - email: [email protected]
    - telegram: @factory_alarms

ZMA/GDT Integration with Grafana

Step 1: MQTT Broker Setup

# Mosquitto MQTT broker installation
sudo apt-get install mosquitto mosquitto-clients

Step 2: InfluxDB Installation

# InfluxDB 2.x installation
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.1-amd64.deb
sudo dpkg -i influxdb2-2.7.1-amd64.deb

Step 3: Data Flow with Node-RED

// Writing ZMA data from MQTT to InfluxDB
msg.payload = {
  measurement: 'sensor_data',
  tags: {
    device_id: msg.topic.split('/')[1],
  },
  fields: {
    weight: parseFloat(msg.payload.weight),
    temperature: parseFloat(msg.payload.temp),
  },
  timestamp: new Date(),
}
return msg

Step 4: Grafana Data Source Configuration

URL: http://localhost:8086
Organization: amazeng
Token: [InfluxDB API Token]
Default Bucket: industrial_data

Dashboard Design Tips

1. Color Coding

  • 🟢 Green: Normal operation (0-80%)
  • 🟡 Yellow: Caution (80-95%)
  • 🔴 Red: Critical (95-100%)

2. Panel Organization

  • Top row: Instant values (Gauge, Stat)
  • Middle section: Trend graphs (Graph)
  • Bottom section: Alarm logs (Table)

3. Variable Usage

Add dynamism to your dashboard:

$device_id = InfluxDB Query: SHOW TAG VALUES WITH KEY = "device_id"

Grafana Cloud vs. Self-Hosted

FeatureGrafana CloudSelf-Hosted
CostLimited free, then paidServer cost only
MaintenanceNoneUpdates and backups required
PerformanceHighHardware-dependent
Data ControlIn cloudOn-premise

Amazeng Recommendation: Self-hosted InfluxDB + Grafana setup for critical data.

Example Dashboard: ZMA Desk Integration

You can visualize data generated by our ZMA Desk software in Grafana:

  1. ZMA Desk → CSV/JSON export
  2. Transfer to InfluxDB via Telegraf
  3. Create custom dashboard in Grafana

Advanced Features

1. Annotations

Mark important events (maintenance, failures, etc.) on the timeline.

2. Variables and Templating

Monitor all devices with a single dashboard:

SELECT * FROM "data" WHERE "device_id" = '$device'

3. Grafana Loki (Log Management)

Search and analyze device logs within Grafana.

Real Project: Fully Integrated Solution

Our fully integrated weighing system offered by Amazeng:

  • GDT → Modbus → ZMA → MQTT → InfluxDB → Grafana
  • HMI Panel (local) + Grafana (remote monitoring)
  • Cloud integration with AWS IoT Core

Conclusion and Recommendations

Grafana is a powerful tool that makes industrial data meaningful and accelerates decision-making processes. When integrated with our ZMA and GDT devices:

✅ Real-time factory monitoring
✅ Proactive maintenance (predictive maintenance)
✅ Data-driven decision making
✅ Remote access and mobile monitoring

For more information about Grafana-based monitoring systems and ZMA/GDT integration, contact our engineers.