Node-RED: Veri Akışını Görsel Olarak Tasarlamak

Node-RED: Veri Akışını Görsel Olarak Tasarlamak

Fabrika ortamında, veri her yerde. Sensörler her saniye okuma gönderiyor. PLC’ler durum raporluyor. ERP siparişleri iletişim kurmaya çalışıyor. Makineler hata komutu atıyor. Bu bilgileri alıp, dönüştürüp, uygun yerlere yönlendirmek lazım.

Bunu yapmanın klasik yolu: Python script yaz, kod gönder, uygula. Sonra gereksiniş değişirse, kod değiştir, dağıt. Hızlı değil, tekrar edicidir.

Alternatif: veri akışını bir diyagram gibi çiz. Sensör okur (block 1), filtreleme yap (block 2), ERP’ye gönder (block 3). Blokları bir çizgi ile bağla. Sistem çalışmaya başlar.

Bu, Node-RED’in felsefesi.

Node-RED Nedir?

Node-RED, açık kaynak bir otomasyon aracıdır. İşlevi basit: veri akışlarını görsel bloklarla tasarlarsınız, sistem bunu yürütür.

Blok, bir iş parçası. Örneğin:

Blokları dizilere bağlarsınız. Her blok girişin çıkışını alıp, kendi işini yapar, sonra çıkışı şundan sonrakine sunar. İnsan zihninin çalışmasına yakındır.

Pratikte, Node-RED bir web paneli açar. Solda blok kütüphanesi; sağda tuval. Bloklardır sürükler, bağlarsınız, ayarlarını yaparsınız. Deploy tuşuna basarsınız. Akış çalışmaya başlar.

Neden Node-RED?

Alternatif: her iş için script ya da mikro-hizmet yazmak. Sensör okumasından histogram çıkarmaya, her şey kod.

Problem, bu yaklaşım yavaş. Yeni bir akış eklemek istiyorsunuz. Geliştirici gerekli. Kod yazıp, test ederek, deploy etmeyi beklersiniz. Haftalar alabilir. Ardından, işlemci hızı yetersiz çıkması halinde, kodu refactor etmesi gerekiyor…

Node-RED’de farklı. İhtiyaç yeni? Bloklardır sürükle, bağla, deploy et. Dakikalar. Değişiklik? Hızlı. Sistem üzerinden tarayıcıda bile yapabilirsiniz.

Bu, özellikle rapid prototyping ve küçük-orta ölçekli otomasyonlar için değerlidir.

Pratik Senaryo: Alarm Sistemi

Fabrikada beş makina var. Biri arızalanırsa, kontrol merkezine sesli uyarı ve Slack mesajı gelmeli.

Elle kod: Her makina için okuma döngüsü, hata kontrolü, tetikleme mantığı, API çağrısı ve Slack entegrasyonu. 200-300 satır kod. Test etmek, debuglamak…

Node-RED’de:

  1. MQTT giriş bloğu: “Makina durumları akışını dinle”
  2. Filtreleme bloğu: “durum == ‘error’” kontrolü
  3. Slack bloğu: “Slack’e mesaj gönder”
  4. HTTP bloğu: (opsiyonel) “Kontrol merkezine REST çağrısı yap”
  5. Ses çıkış bloğu: “Buzzer aç” (GPIO üzerinde)

Bloklardır bağlarsınız. Web panelinden ayarları yaparsınız. Deploy.

Ortak Blok Türleri

Low-Code, Code-Free Değil

Önemli not: Node-RED, “code-free” değil. Bloklar zaten kodlanmış, ama size basit UI sunuyor. Karmaşık mantık isterseniz? “Function” bloğu açıp, JavaScript yazarsınız.

Örneğin: gelen sıcaklık okumalarının son 10 dakikanın ortalamasını hesaplamak istiyorsunuz. Function bloğunda, kısa bir JavaScript snippet yazarsınız. Node-RED bunu çalıştırır.

Bu şekilde, hızlı geri-kalmalar için görsel kısım, özel işleri için yine programlama kullanabilirsiniz.

Dağıtım: Edge ve Bulut

Node-RED, hafiftir. Tek bir container’da çalışabilir. Bir Raspberry Pi’de, fabrika ağının kenarında (edge) koşturacağınız kadar küçük. Buluta taşıyabilirsiniz; ölçeklenirse, kubernetes cluster’da çalıştırabilirsiniz.

Veri akışı yerel ağda yapılırsa, gecikmesi minimum. Bulutla senkronize etmek isterseniz, çıkış bloğu olaraktan bulut API’sini bağlarsınız.

Sonuç

Fabrika yazılımında hız ve esneklik kritik. Node-RED, veri akışını görsel tasarladığınız, hızla prototipler geliştirip deploy ettiğiniz bir araçtır. Kod yazmadan başlayıp, gerekirse özel mantığı sonradan ekleyebilirsiniz.

Karmaşık otomasyonlara yönelik değildir (bu durumda, tam mikro-hizmet gerekli); ama orta ölçekli veri transformasyonları, entegrasyonları, alarm sistemleri ve dashboard’lar için, yazılım geliştirme maliyet ve zamanını önemli ölçüde kısaltır.