Grafana ile Endüstriyel Veri Görselleştirme: Gerçek Zamanlı İzleme ve Dashboard Tasarımı

Amazeng Teknik Ekip
8 dakika okuma
GrafanaVeri GörselleştirmeDashboardIoTMonitoringInfluxDBTime Series

Giriş

Endüstriyel tesislerde her saniye onlarca sensörden veri akıyor: sıcaklık, basınç, ağırlık, titreşim... Ancak bu veriler anlamlı hale getirilmezse sadece "sayılar" olarak kalır. İşte tam bu noktada Grafana, endüstriyel verileri görselleştirmenin ve anlamlı hale getirmenin en güçlü açık kaynak aracı olarak öne çıkıyor.

Bu yazımızda, Grafana'nın endüstriyel IoT projelerinde nasıl kullanılacağını, ZMA/GDT cihazlarımızla entegrasyonunu ve profesyonel dashboard tasarımını ele alacağız.

Grafana Nedir?

Grafana, zaman serisi veritabanlarından (InfluxDB, Prometheus, TimescaleDB, Amazon Timestream vb.) gelen verileri görselleştirmek için kullanılan açık kaynak bir platformdur. Özellikle IoT ve endüstriyel izleme sistemlerinde tercih edilir çünkü:

  • Gerçek Zamanlı Veri Akışı: Milisaniye seviyesinde güncelleme yapabilir.
  • Esnek Dashboard Tasarımı: Drag-and-drop ile zengin görselleştirme panelleri oluşturabilirsiniz.
  • Alarm Sistemi: Belirlediğiniz eşik değerlerde otomatik alarm üretir (e-posta, Slack, Telegram vb.).
  • Çoklu Veri Kaynağı: Birden fazla veritabanını tek bir dashboard'da birleştirebilir.

Endüstriyel IoT için Grafana Mimarisi

Tipik bir endüstriyel Grafana entegrasyonu şu şekilde çalışır:

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

1. Veri Toplama: ZMA ve GDT

ZMA Data Acquisition ve GDT Digital Transmitter cihazlarımız:

  • 24-bit çözünürlükte yüksek hassasiyetli veri toplar
  • Modbus RTU/TCP ile haberleşir
  • MQTT veya HTTP ile bulut/yerel sunuculara iletir

2. Zaman Serisi Veritabanı

Grafana'nın en iyi çalıştığı veri kaynakları:

  • InfluxDB: Açık kaynak, yüksek performanslı time-series DB
  • Amazon Timestream: Bulut tabanlı, yönetilmeyen servis (Amazon Timestream yazımız)
  • TimescaleDB: PostgreSQL tabanlı time-series uzantısı

3. Grafana Dashboard

Dashboard'lar farklı panellerden oluşur:

  • Graph Panel: Zaman serisi grafikleri
  • Gauge Panel: Anlık değer göstergesi (RPM, sıcaklık vb.)
  • Stat Panel: Tek bir sayısal değer gösterimi
  • Table Panel: Tablosal veri gösterimi
  • Heatmap: Yoğunluk haritaları

Gerçek Dünya Uygulaması: Tartım Sistemi Dashboard'u

Bir süt tankı izleme sistemi için örnek Grafana dashboard yapısı:

Panel 1: Anlık Ağırlık (Gauge)

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

Panel 2: Dolum Trendi (Graph)

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

Panel 3: Sıcaklık İzleme

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

Panel 4: Alarm Durumu (Stat Panel)

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

Grafana Alert Yapılandırması

Kritik durumlar için otomatik alarm kurulumu:

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

ZMA/GDT ile Grafana Entegrasyonu

Adım 1: MQTT Broker Kurulumu

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

Adım 2: InfluxDB Kurulumu

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

Adım 3: Node-RED ile Veri Akışı

// MQTT'den gelen ZMA verilerini InfluxDB'ye yazma
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

Adım 4: Grafana Data Source Ayarı

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

Dashboard Tasarım İpuçları

1. Renk Kodlaması

  • 🟢 Yeşil: Normal çalışma (0-80%)
  • 🟡 Sarı: Dikkat (80-95%)
  • 🔴 Kırmızı: Kritik (95-100%)

2. Panel Organizasyonu

  • Üst satır: Anlık değerler (Gauge, Stat)
  • Orta bölge: Trend grafikleri (Graph)
  • Alt bölge: Alarm logları (Table)

3. Değişken Kullanımı

Dashboard'a dinamiklik kazandırın:

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

Grafana Cloud vs. Self-Hosted

ÖzellikGrafana CloudSelf-Hosted
MaliyetSınırlı ücretsiz, sonra ücretliSadece sunucu maliyeti
BakımYokGüncelleme ve yedekleme gerekli
PerformansYüksekDonanıma bağlı
Veri KontrolüBuluttaYerinde (on-premise)

Amazeng Önerisi: Kritik veriler için self-hosted InfluxDB + Grafana kurulumu.

Örnek Dashboard: ZMA Desk Entegrasyonu

ZMA Desk yazılımımızın ürettiği verileri Grafana'da görselleştirebilirsiniz:

  1. ZMA Desk → CSV/JSON export
  2. Telegraf ile InfluxDB'ye aktarım
  3. Grafana'da özel dashboard oluşturma

Gelişmiş Özellikler

1. Annotations (İşaretlemeler)

Önemli olayları (bakım, arıza vb.) timeline üzerinde işaretleyin.

2. Variables ve Templating

Tek bir dashboard ile tüm cihazları izleyin:

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

3. Grafana Loki (Log Yönetimi)

Cihaz loglarını Grafana içinde arayın ve analiz edin.

Gerçek Proje: Tam Entegre Çözüm

Amazeng olarak sunduğumuz tam entegre tartım sistemi:

  • GDT → Modbus → ZMA → MQTT → InfluxDB → Grafana
  • HMI Panel (lokal) + Grafana (uzaktan izleme)
  • AWS IoT Core ile bulut entegrasyonu

Sonuç ve Öneriler

Grafana, endüstriyel verileri anlamlı hale getiren ve karar verme süreçlerini hızlandıran güçlü bir araçtır. ZMA ve GDT cihazlarımızla entegre edildiğinde:

✅ Gerçek zamanlı fabrika izleme
✅ Proaktif bakım (predictive maintenance)
✅ Veri tabanlı karar verme
✅ Uzaktan erişim ve mobil izleme

Grafana tabanlı izleme sistemleri ve ZMA/GDT entegrasyonu hakkında daha fazla bilgi için mühendislerimize ulaşın.

İlgili Yazılar