Ana içeriğe geç

Sentetik Veri — MQTT

MQTT için hazırlanan Demo Fabrika akışı, Node-RED üzerinden dört topic'e gerçek zamanlı JSON mesajları yayınlar. Bu sayede Pirivision'da MQTT veri kaynağını gerçek bir broker bağlantısıyla deneyebilirsiniz.


Yayınlanan Topic'ler

Topic Periyot İçerik
fabrika/hat1/sicaklik 2 sn Sıcaklık (°C)
fabrika/hat1/basinc 2 sn Basınç (bar)
fabrika/hat1/tank_seviye 5 sn Tank doluluk oranı (%)
fabrika/hat1/sayac 1 sn Monoton artan üretim sayacı

Her mesaj şu alanları içeren bir JSON nesnesidir:

{ "ts": "2026-05-14T09:12:04.521Z", "value": 72.34, "unit": "°C", "makine_id": "M01", "hat_id": "HAT-1" }

Payload Üretim Mantığı

Her topic için Node-RED içindeki bir JavaScript fonksiyonu çalışır.

fabrika/hat1/sicaklik

70 °C baz üzerine 30 saniyelik periyotlu sinüs dalgası ve rassal gürültü:

const t      = Date.now() / 1000;
const base   = 70;
const wave   = 5 * Math.sin(t / 30);          // ±5 °C dalga, 30 sn periyot
const jitter = (Math.random() - 0.5) * 1.5;   // ±0.75 °C gürültü
const value  = +(base + wave + jitter).toFixed(2);

msg.payload = {
    ts:        new Date().toISOString(),
    value:     value,
    unit:      "°C",
    makine_id: "M01",
    hat_id:    "HAT-1"
};

fabrika/hat1/basinc

6.5 bar baz üzerine 45 saniyelik sinüs ve küçük gürültü:

const t      = Date.now() / 1000;
const base   = 6.5;
const wave   = 0.4 * Math.sin(t / 45);        // ±0.4 bar dalga, 45 sn periyot
const jitter = (Math.random() - 0.5) * 0.3;   // ±0.15 bar gürültü
const value  = +(base + wave + jitter).toFixed(2);

msg.payload = {
    ts:        new Date().toISOString(),
    value:     value,
    unit:      "bar",
    makine_id: "M01",
    hat_id:    "HAT-1"
};

fabrika/hat1/tank_seviye

%25–%85 arasında 120 saniyelik periyotlu salınım:

const t     = Date.now() / 1000;
const value = +(25 + 60 * (Math.sin(t / 120) + 1) / 2).toFixed(2);

msg.payload = {
    ts:      new Date().toISOString(),
    value:   value,   // %25..%85 arası
    unit:    "%",
    tank_id: "T-01"
};

fabrika/hat1/sayac

Her tetiklenmede bir artar; Node-RED yeniden başlatılana kadar sıfırlanmaz:

let n = context.get('n') || 0;
n = n + 1;
context.set('n', n);

msg.payload = {
    ts:     new Date().toISOString(),
    sayac:  n,
    hat_id: "HAT-1"
};

Node-RED'e Yükleme

  1. Node-RED arayüzünü (http://<sunucu>:1880) tarayıcınızda açın.
  2. Sağ üst köşedeki menü → Import seçeneğine tıklayın.
  3. demo_fabrika_mqtt.json dosyasını seçin → ImportDeploy.

Akış devreye girdikten sonra broker'a bağlanır ve topic'lere mesaj yayınlamaya başlar.


Pirivision'a Ekleme

  1. Port → Yeni Veri Kaynağı → MQTT yolunu izleyin.
  2. Broker adresini ve portunu girin.
  3. Save ile kaynağı kaydedin.

Kayıt tamamlandıktan sonra Compass'ta bu kaynağı seçerek yukarıdaki topic'lerden birini dinleyebilirsiniz.