Dijital İkiz

Açık Kaynak Dijital İkiz Araçları Karşılaştırması: Ditto, BaSyx, Three.js ve Diğerleri

Açık kaynak dijital ikiz araçlarının modelleme, veri, görselleştirme ve geçmiş katmanlarında pratik bir karşılaştırması; her birinin MQTT broker'a nasıl bağlandığı ve ne zaman birlikte kullanılacakları üzerine notlarla.

Bir MQTT broker etrafında modelleme, görselleştirme ve geçmiş katmanlarını kapsayan açık kaynak dijital ikiz araçlarından oluşan bir alet kutusu
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Açık kaynak dijital ikiz araçları, tescilli bir platform lisanslamadan yetenekli bir ikiz kurmanızı sağlar; ancak her şeyi tek başına yapan bir proje yoktur. Bu rehber en kullanışlı seçenekleri kapsadıkları katmana (modelleme, veri entegrasyonu, görselleştirme ve geçmiş) göre karşılaştırır ve her birinin MQTT verisini nasıl tükettiğini açıklar. Sonunda, kullanım senaryonuzu tek bir araca sığdırmaya çalışmak yerine senaryonuza uyan bir yığın kurabileceksiniz.

Konuya henüz yeni giriyorsanız önce dijital ikiz teknolojisi rehberini okuyun.

Platformlarla Değil, Katmanlarla Düşünün

Çalışan bir ikizin dört şeye ihtiyacı vardır:

  1. Bir model: varlığın ne olduğu, özellikleri ve ilişkileri.
  2. Canlı veri: sahadan gelen güncel değerler ve sahaya giden komutlar.
  3. Görselleştirme: panolar, 3D sahneler ya da her ikisi.
  4. Geçmiş: trendler, analiz ve makine öğrenimi için saklanan zaman serileri.

Açık kaynak projeler genellikle bunlardan bir veya ikisinde uzmanlaşır. MQTT, bu araçların tek bir canlı veri akışını paylaşmasını sağlayan yapıştırıcıdır: ağ geçitleri bir kez yayınlar, her araç ihtiyaç duyduğu veriye abone olur. Bu yüzden aşağıdaki "MQTT'yi nasıl tüketir" sütunu, özellik listesi kadar önemlidir.

Araçlara Genel Bakış

Araç Ana katman Model formatı MQTT'yi nasıl tüketir Uygun olduğu alan
Eclipse Ditto Model ve ikiz durum API'si Öznitelikler ve özellikler içeren Thing'ler (JSON) Payload eşlemeli yerleşik MQTT 3.1.1 ve 5 bağlantıları REST/WebSocket API'leri ve arama içeren cihaz ikizleri
Eclipse BaSyx Model (Endüstri 4.0) Asset Administration Shell alt modelleri Veri köprüsü bileşeni MQTT'ye abone olur ve alt modelleri günceller Üretimde AAS tabanlı birlikte çalışabilirlik
FIWARE Orion-LD Bağlam modeli NGSI-LD varlıkları MQTT üzerinden JSON veya UltraLight için IoT Agent Akıllı şehir ve alanlar arası bağlam verisi
Node-RED Entegrasyon ve mantık Akışlar, herhangi bir JSON Yerel MQTT giriş ve çıkış düğümleri Yapıştırıcı katman, dönüşümler, hızlı panolar
Three.js 3D görselleştirme glTF sahneleri Tarayıcıda Secure WebSocket üzerinden MQTT.js Özel web tabanlı 3D ikizler
Babylon.js 3D görselleştirme glTF ve Babylon sahneleri Secure WebSocket üzerinden MQTT.js Yerleşik inspector ve GUI ile web 3D
Telegraf + InfluxDB Geçmiş Zaman serisi ölçümleri Telegraf mqtt_consumer giriş eklentisi Trendler için telemetri saklama
Grafana Panolar Veri kaynakları üzerinde paneller Bir veritabanı veya MQTT veri kaynağı eklentisi aracılığıyla Operasyon panoları ve alarmlar

Eclipse Ditto

Ditto, en eksiksiz açık kaynak "ikiz durumu" servisidir. Her ikiz; öznitelikleri (çoğunlukla statik) ve özellikleri (değişen durum) olan bir Thing'dir. Ditto güncel durumu saklar, bunu REST ve WebSocket API'leri üzerinden sunar, Thing'ler arasında aramayı destekler ve kimin neyi okuyup yazabileceğine dair ayrıntılı politikalar uygular.

Ditto, MQTT broker'lara bağlantı servisi (connectivity service) aracılığıyla bağlanır: kaynak adresleri (abone olunacak topic'ler), hedef adresleri (değişikliklerin yayınlanacağı topic'ler) ve cihaz JSON'unuzu Ditto protokol mesajlarına dönüştüren bir payload eşlemesi içeren bir bağlantı tanımlarsınız. Diğer uygulamalar ikiz durumunu MQTT'ye abone olmak yerine HTTP üzerinden sorgulamak istediğinde iyi çalışır. MQTT ile Eclipse Ditto rehberimiz eksiksiz bir bağlantı kurulumunu adım adım anlatır.

Dikkat edin: operasyonel yük. Ditto birkaç servis ve bir veritabanı olarak çalışır; bu nedenle container'lar ve Kubernetes konusunda rahat olan ekiplere uygundur.

Eclipse BaSyx

BaSyx, Endüstri 4.0 topluluğunun standartlaştırılmış dijital ikiz modeli olan Asset Administration Shell'i (AAS) uygular. Bir AAS, varlığı isim plakası, teknik veriler ve operasyonel veriler gibi alt modeller üzerinden tanımlar; semantik ID'ler bu alt modellerin farklı üreticiler arasında anlaşılabilir olmasını sağlar.

Canlı veri için BaSyx'in veri köprüsü MQTT topic'leri gibi kaynaklara abone olur ve değerleri alt model öğelerine yazar. Müşterileriniz veya iş ortaklarınız AAS bekliyorsa BaSyx bariz açık kaynak seçimdir. Asset Administration Shell rehberi modeli açıklar.

Dikkat edin: AAS metamodellerinin ve semantik ID'lerin öğrenme eğrisi. Kendi alt modellerinizi tasarlamak yerine standart alt model şablonlarıyla başlayın.

FIWARE Orion-LD

FIWARE'in bağlam broker'ı (context broker) varlıkları NGSI-LD formatında saklar; bu bağlantılı veri formatı, birçok alandan gelen verinin birleştirilmesi gereken şehirler, kamu hizmetleri ve tarım için oldukça uygundur. IoT Agent'lar, MQTT üzerinden JSON dahil cihaz protokollerini varlık güncellemelerine çevirir. Kurumlar arası veri paylaşımına ve standart bir API'ye ihtiyaç duyduğunuzda tercih edin; tek bir fabrika hücresi için daha az uygundur.

Node-RED

Node-RED bir ikiz platformu değildir, ancak entegrasyonu hızlandırdığı için neredeyse her açık kaynak ikiz yığınında karşımıza çıkar. MQTT giriş ve çıkış düğümleri, dönüşümler için function düğümleri ve bir pano eklentisi, ilk ikizin şaşırtıcı ölçüde büyük bir kısmını karşılar. Tipik görevler: üretici payload'larını kendi şemanıza normalize etmek, türetilmiş değerler hesaplamak ve bir veritabanına veya ikiz servisine köprü kurmak. Kurulum ve MQTT düğümleri için resmi Node-RED dokümantasyonuna bakın.

Dikkat edin: büyük akışların sürümlenmesi ve gözden geçirilmesi zorlaşabilir. Mantığı küçük tutun ve karmaşık modelleri uygun servislere taşıyın.

Three.js ve Babylon.js

3D için önde gelen iki açık kaynak web kütüphanesi Three.js ve Babylon.js'tir. İkisi de CAD veya Blender'dan dışa aktarılmış glTF modellerini yükler ve tarayıcının çalıştığı her yerde çalışır. Herhangi birini Secure WebSocket üzerinden MQTT.js ile eşleştirdiğinizde tarayıcı canlı duruma doğrudan abone olur; arada bir backend aktarıcısına gerek kalmaz.

Three.js, devasa bir topluluğa sahip yalın bir render kütüphanesidir; kontrolleri, yükleyicileri ve arayüzü kendiniz bir araya getirirsiniz. Babylon.js ise yerleşik inspector, GUI sistemi ve fizik motoruyla daha çok eksiksiz bir motordur. Three.js dijital ikiz eğitimi ve Babylon.js dijital ikiz rehberi her ikisini uygulamada gösterir.

Telegraf, InfluxDB ve Grafana

Geçmiş katmanı en az göz alıcı ve en sık unutulan katmandır. Telegraf'ın MQTT consumer eklentisi topic'lere abone olur ve ölçümleri InfluxDB'ye veya başka bir zaman serisi deposuna yazar; ardından Grafana bunları grafiğe döker. İşte benzersiz bir önek kullanan, herkese açık MQTT test broker'ına karşı çalışan bir Telegraf yapılandırması:

[[inputs.mqtt_consumer]]
  servers = ["tcp://broker.connectmq.com:1883"]
  topics = ["connectmq/demo/ostw-3c9/site1/+/+/state"]
  client_id = "ostw-3c9-telegraf"
  qos = 0
  data_format = "json"
  topic_tag = "topic"

  [[inputs.mqtt_consumer.topic_parsing]]
    topic = "connectmq/demo/ostw-3c9/site1/+/+/state"
    tags = "_/_/_/site/line/asset/_"

[[outputs.influxdb_v2]]
  urls = ["http://localhost:8086"]
  token = "$INFLUX_TOKEN"
  organization = "plant"
  bucket = "twin"

topic_parsing bloğu topic seviyelerini etiketlere dönüştürür; böylece Grafana metinleri ayrıştırmadan hat ve varlığa göre filtreleme yapabilir. Bir test mesajı yayınlayın; mesaj bucket'ta görünür:

mosquitto_pub -h broker.connectmq.com -p 1883 -i ostw-3c9-pub \
  -t "connectmq/demo/ostw-3c9/site1/line2/oven1/state" -m '{"temp_c":212.4,"door_open":0}'

Üretim ortamında sunucuyu ssl://YOUR_BROKER_HOST:8883 olarak değiştirin ve broker portalınızdan aldığınız username = "YOUR_USERNAME" ile password = "YOUR_PASSWORD" değerlerini ekleyin.

Önerilen Yığınlar

Kullanım senaryosu Önerilen kombinasyon
Panolu ilk varlık ikizi MQTT broker + Node-RED + Telegraf/InfluxDB + Grafana
Etkileşimli 3D operasyon ikizi MQTT broker + Three.js veya Babylon.js + Telegraf/InfluxDB
Uygulamalar için API odaklı cihaz ikizleri MQTT broker + Eclipse Ditto + Grafana
Endüstri 4.0 birlikte çalışabilirliği MQTT broker + Eclipse BaSyx + tercih ettiğiniz görselleştirme
Alanlar arası akıllı şehir verisi MQTT broker + FIWARE Orion-LD ve IoT Agent

Ortak unsura dikkat edin. Hangi araçları seçerseniz seçin, hepsini tek bir MQTT ad alanı besler; böylece cihazlara dokunmadan daha sonra araç ekleyebilir veya değiştirebilirsiniz.

Seçim Kontrol Listesi

  1. Bugün en büyük eksiğiniz hangi katmanda: model, canlı veri, görselleştirme mi yoksa geçmiş mi?
  2. İş ortaklarınız veya müşterileriniz AAS ya da NGSI-LD gibi standart bir model şart koşuyor mu?
  3. Sistemi kim işletecek? Çok servisli platformlar container becerisi gerektirir; Node-RED ve Telegraf gerektirmez.
  4. Her araç broker'a nasıl kimlik doğrulayacak ve her birine ayrı kimlik bilgileri verebiliyor musunuz?
  5. Mesaj süresi dolması (message expiry) veya paylaşımlı abonelikler gibi özelliklere güveniyorsanız araç MQTT 5'i destekliyor mu?
  6. Gerçek topic yapınızla bir günde kavram kanıtı (proof of concept) yürütebilir misiniz?

Kendi Barındırmamanız Gereken Parça

Açık kaynak ikiz araçlarını container'larda çalıştırmak kolaydır; ancak hepsinin bağımlı olduğu broker ekstra özen ister: sürekli ayakta kalmalı, TLS kabul etmeli, onlarca istemcinin kimliğini doğrulamalı ve yeniden bağlanma fırtınalarını atlatmalıdır. Pek çok ekip araçları kendi sunucularında barındırır ve omurga için tam yönetilen bir MQTT servisi kullanır ya da analitik altyapısına yakın bir bulut MQTT broker çalıştırır.

ConnectMQ bu modele uyar: Ditto, BaSyx'in veri köprüsü, Node-RED, Telegraf ve tarayıcı görüntüleyicileri ona TCP, TLS veya Secure WebSocket üzerinden sıradan MQTT istemcileri olarak bağlanır. Portalı, her aracı bağlamadan önce verinizi doğrulamanıza yardımcı olan canlı bir topic gezgini ve ISA-95 cihaz görünümü sunar; uç cihazlarınız Sparkplug B konuşuyorsa Sparkplug B çözümlemesi de ekler.

Açık Kaynak Yığınınızı ConnectMQ'ya Bağlayın

Eksiklerinize uygun araçları seçin ve onlara güvenilir tek bir omurga verin. Kredi kartı gerekmeden ücretsiz bir ConnectMQ Serverless broker oluşturun, ardından Node-RED, Telegraf veya Ditto'yu dakikalar içinde ona yönlendirin.

Sık Sorulan Sorular

En iyi açık kaynak dijital ikiz platformu hangisidir?

Tek bir en iyisi yoktur. Eclipse Ditto ikiz durum API'lerinde, Eclipse BaSyx Asset Administration Shell modellerinde, Three.js veya Babylon.js ise 3D'de en güçlüsüdür. Gerçek yığınların çoğu, bir MQTT broker etrafında birkaç aracı bir araya getirir.

Eclipse Ditto MQTT 5'i destekliyor mu?

Evet, Ditto'nun bağlantı servisi yapılandırılabilir kaynaklar, hedefler ve payload eşlemesiyle MQTT 3.1.1 ve MQTT 5 bağlantılarını destekler.

Node-RED tek başına bir dijital ikiz olabilir mi?

Panolu basit varlık ikizleri için Node-RED oldukça ileri gidebilir. İkiz büyüdükçe modelleri ve geçmişi özel araçlara taşıyın, Node-RED'i entegrasyon için tutun.

Açık kaynak ikiz araçlarının kendi broker'ına ihtiyacı var mı?

Bir MQTT broker'a erişime ihtiyaçları vardır, ancak bunun kendilerine ait olması gerekmez. Paylaşılan, yönetilen bir broker, her aracın aynı ad alanını tüketmesini sağlar.

İlgili yazılar

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.