Ana Sayfa Kurumsal Ürünler Katalog Blog İletişim 0216 364 02 10

MQTT Nedir? MQTT Protokolü Nasıl Çalışır?

MQTT, özellikle IoT ve Endüstriyel IoT uygulamalarında cihazlar, sensörler, gateway sistemleri ve yazılım platformları arasında veri aktarımı için kullanılan hafif bir publish/subscribe mesajlaşma protokolüdür. Düşük bant genişliği, sınırlı işlem gücü veya kararsız ağ bağlantılarının bulunduğu sistemlerde verimli çalışacak şekilde tasarlanmıştır.

MQTT 1999 yılında Andy Stanford-Clark ve Arlen Nipper tarafından geliştirilmiş, daha sonra OASIS tarafından standartlaştırılmıştır. Günümüzde üretim tesislerinden enerji sistemlerine, uzak saha cihazlarından bulut uygulamalarına kadar çok geniş bir kullanım alanına sahiptir.

Bu yazıda MQTT nedir, MQTT Broker ve Client nasıl çalışır, Publish/Subscribe mimarisi nedir, Topic ve QoS kavramları ne anlama gelir, MQTT güvenliği nasıl sağlanır ve MQTT endüstriyel otomasyonda nasıl kullanılır? sorularını detaylı olarak ele alacağız.

MQTT Nedir?

MQTT, Client-Server ve Publish/Subscribe mimarisine dayanan bir mesajlaşma protokolüdür. Bir cihazın başka bir cihazla doğrudan bağlantı kurması yerine, mesajların merkezi bir MQTT Broker üzerinden dağıtılmasını sağlar.

Bu yapı sayesinde veri üreten cihaz ile veriyi kullanan sistem birbirinden bağımsız hale gelir. Örneğin bir sıcaklık sensörü yalnızca sıcaklık verisini belirli bir Topic altında yayınlayabilir. Bu veriyi SCADA, veri tabanı, mobil uygulama veya farklı bir analiz sistemi aynı anda kullanabilir.

Kısaca MQTT: Sahadaki cihazların ürettiği verileri hafif ve ölçeklenebilir bir mesajlaşma yapısıyla Broker üzerinden farklı uygulamalara dağıtmayı sağlayan IoT ve IIoT haberleşme protokolüdür.

MQTT Nasıl Çalışır?

MQTT mimarisinde temel olarak üç kavram bulunur:

  • Publisher: Veriyi yayınlayan MQTT Client
  • Broker: Mesajları alan ve ilgili abonelere dağıtan merkezi sistem
  • Subscriber: Belirli Topic'lere abone olarak mesajları alan MQTT Client

Bir cihaz MQTT Broker'a bağlanır ve örneğin factory/line1/temperature isimli Topic altında sıcaklık verisini yayınlar. Aynı Topic'e abone olan diğer Client'lar bu mesajı Broker üzerinden alır.

Publisher → MQTT Broker → Subscriber

MQTT publish subscribe mimarisi ve MQTT Broker çalışma yapısı

MQTT Broker Nedir?

MQTT Broker, MQTT sisteminin merkezi mesaj yönlendiricisidir. Publisher'lardan gelen mesajları alır, Topic bilgisine göre değerlendirir ve ilgili Topic'e abone olan Subscriber'lara iletir.

Client'ların birbirlerinin IP adreslerini veya fiziksel konumlarını bilmesi gerekmez. Client'ların Broker'a erişebilmesi yeterlidir. Bu yapı özellikle çok sayıda cihazın bulunduğu dağıtık IoT ve endüstriyel sistemlerde önemli bir avantaj sağlar.

MQTT Client Nedir?

MQTT Broker'a bağlanan ve MQTT üzerinden mesaj yayınlayan veya mesaj alan her cihaz ya da yazılım bir MQTT Client olarak değerlendirilebilir.

Bir PLC, gateway, sensör, SCADA yazılımı, sunucu, mikrodenetleyici veya özel yazılım MQTT Client olarak çalışabilir.

MQTT Topic Nedir?

MQTT sisteminde mesajlar Topic adı verilen hiyerarşik adresler üzerinden sınıflandırılır.

Örneğin bir üretim tesisinde aşağıdaki gibi Topic yapıları oluşturulabilir:

factory/line1/temperature
factory/line1/pressure
factory/line1/status
factory/line2/temperature

Bu yapı sayesinde veriler tesis, üretim hattı, makine veya ölçüm türüne göre düzenlenebilir. Subscriber yalnızca ihtiyacı olan Topic veya Topic gruplarına abone olabilir.

MQTT Publish ve Subscribe Nedir?

Publish, bir MQTT Client'ın belirli bir Topic altında Broker'a mesaj göndermesidir.

Subscribe ise Client'ın belirli bir Topic altında yayınlanan mesajları almak için Broker'a abone olmasıdır.

Bir MQTT Client aynı anda hem Publisher hem de Subscriber olarak çalışabilir. Örneğin bir gateway saha verilerini yayınlarken aynı zamanda üst sistemden gelen komut Topic'lerine abone olabilir.

MQTT QoS Nedir?

MQTT, mesaj teslim davranışını belirlemek için üç farklı Quality of Service (QoS) seviyesi tanımlar.

QoS Teslim Yaklaşımı Genel Özellik
QoS 0 At most once En düşük haberleşme yükü; mesaj tekrar gönderilmez.
QoS 1 At least once Mesajın en az bir kez teslim edilmesi hedeflenir; tekrar mesaj oluşabilir.
QoS 2 Exactly once En yüksek teslim kontrolü; daha fazla haberleşme yükü oluşturur.

Her uygulamada en yüksek QoS seviyesini kullanmak gerekli değildir. Veri kritikliği, ağ yapısı, mesaj sıklığı ve sistem performansı birlikte değerlendirilmelidir.

MQTT Retained Message Nedir?

MQTT'de bir mesaj Retained olarak yayınlandığında Broker ilgili Topic için son retained mesajı saklayabilir. Daha sonra bu Topic'e yeni abone olan Client, yeni bir mesaj yayınlanmasını beklemeden son değeri alabilir.

Bu özellik cihaz durumu, çalışma modu veya son ölçüm değeri gibi bilgilerin yeni bağlanan uygulamalara hızlı şekilde aktarılmasında kullanışlı olabilir.

MQTT Last Will and Testament Nedir?

Last Will and Testament (LWT), bir MQTT Client'ın Broker bağlantısı beklenmedik şekilde kesildiğinde diğer sistemlerin bu durumdan haberdar edilmesini sağlayan MQTT mekanizmasıdır.

Örneğin bir uzak istasyon Broker'a bağlanırken bir durum Topic'i için Last Will mesajı tanımlayabilir. Bağlantı beklenmedik şekilde kesilirse Broker bu mesajı yayınlayarak diğer Client'ların cihazın çevrim dışı olduğunu anlamasını sağlayabilir.

MQTT'nin Avantajları Nelerdir?

Hafif Bir Protokoldür

MQTT düşük protokol yükü ve küçük mesaj başlıkları sayesinde sınırlı işlem gücüne sahip cihazlarda ve bant genişliğinin önemli olduğu ağlarda kullanılabilir.

Publisher ve Subscriber'ları Birbirinden Ayırır

Veriyi üreten cihazların veriyi hangi uygulamanın kullanacağını bilmesi gerekmez. Bu durum sistem mimarisini daha esnek hale getirir.

Bir Veriyi Birden Fazla Sistem Kullanabilir

Aynı Topic'e birden fazla Subscriber abone olabilir. Böylece aynı proses verisi aynı anda SCADA, historian, analiz uygulaması veya farklı yazılımlar tarafından kullanılabilir.

Dağıtık Sistemlere Uygundur

MQTT özellikle farklı lokasyonlardaki cihazların merkezi bir Broker veya broker altyapısı üzerinden haberleşmesi gereken sistemlerde kullanılabilir.

Ölçeklenebilir Mimariler Kurulabilir

Doğru Broker, ağ ve Topic mimarisiyle MQTT çok sayıda cihaz ve mesajın bulunduğu sistemlerde kullanılabilir. Gerçek ölçeklenebilirlik seviyesi ise kullanılan Broker yazılımına, altyapıya ve sistem tasarımına bağlıdır.

MQTT Güvenli midir?

MQTT'nin hafif olması, bütün MQTT bağlantılarının otomatik olarak güvenli olduğu anlamına gelmez. Güvenlik sistem mimarisinin bir parçası olarak ayrıca tasarlanmalıdır.

MQTT uygulamalarında aşağıdaki güvenlik önlemleri değerlendirilebilir:

  • TLS ile şifreli bağlantı
  • Kullanıcı adı ve parola ile kimlik doğrulama
  • Sertifika tabanlı Client doğrulaması
  • Topic bazlı erişim kontrolü
  • Broker kullanıcı yetkilendirmesi
  • Firewall ve ağ segmentasyonu
  • Güvenli uzak erişim ve VPN
  • Loglama ve bağlantı takibi

Önemli: MQTT mesajlarının kendisi otomatik olarak şifrelenmiş değildir. Hassas veya kritik uygulamalarda Broker ve Client arasındaki bağlantının TLS ve uygun kimlik doğrulama yöntemleriyle güvenli hale getirilmesi gerekir.

MQTT 3.1.1 ve MQTT 5.0 Arasındaki Fark Nedir?

MQTT 3.1.1 endüstriyel ve IoT uygulamalarında uzun süredir yaygın olarak kullanılan sürümlerden biridir. MQTT 5.0 ise temel Publish/Subscribe yapısını korurken özellikle büyük ölçekli sistemlerde yönetim, hata bildirimi ve mesajlaşma esnekliği açısından yeni özellikler eklemiştir.

MQTT 5.0 ile öne çıkan geliştirmeler arasında:

  • Gelişmiş hata ve durum kodları
  • User Properties
  • Message Expiry
  • Session Expiry
  • Request / Response kullanım desenleri
  • Daha gelişmiş ölçeklenebilirlik özellikleri

MQTT Endüstriyel Otomasyonda Nasıl Kullanılır?

Endüstriyel tesislerde MQTT özellikle farklı cihazlardan toplanan verilerin merkezi sistemlere aktarılmasında kullanılabilir.

Örnek uygulamalar arasında:

  • Uzak tesislerden merkezi veri toplama
  • PLC ve gateway verilerinin üst sistemlere aktarılması
  • Enerji ve tüketim verilerinin merkezi sistemlere gönderilmesi
  • Makine durumlarının izlenmesi
  • Üretim verilerinin veri platformlarına aktarılması
  • SCADA ve IIoT entegrasyonları
  • Dağıtık sensör ve cihaz ağları
  • Bulut tabanlı analiz uygulamaları
  • Uzaktan bakım ve durum izleme sistemleri

Örneğin bir protokol gateway, Modbus veya Siemens S7 üzerinden saha cihazlarından topladığı verileri MQTT üzerinden merkezi bir Broker'a aktarabilir. Böylece mevcut otomasyon sistemleri modern IoT ve veri platformlarıyla entegre edilebilir.

MQTT ile OPC UA Arasındaki Fark Nedir?

MQTT ve OPC UA endüstriyel veri iletişiminde sık kullanılan iki teknolojidir ancak aynı amaçla tasarlanmış değildir.

Özellik MQTT OPC UA
Temel yaklaşım Publish / Subscribe mesajlaşma Endüstriyel haberleşme ve bilgi modelleme
Merkezi bileşen Broker Client / Server veya PubSub
Veri semantiği Payload yapısını uygulama belirler Standart bilgi modeli oluşturabilir
Öne çıktığı alan IoT, IIoT ve dağıtık mesajlaşma Endüstriyel birlikte çalışabilirlik

İki teknoloji birbirinin doğrudan alternatifi olmak zorunda değildir. Aynı endüstriyel mimaride OPC UA saha ve otomasyon entegrasyonunda, MQTT ise dağıtık veri aktarımı veya IoT bağlantısında birlikte kullanılabilir.

OPC UA hakkında daha detaylı bilgi için OPC UA Nedir? yazımızı inceleyebilirsiniz.

MQTT ile SCADA Birlikte Kullanılabilir mi?

Evet. MQTT üzerinden toplanan saha verileri uygun bir gateway veya MQTT Client özelliğine sahip yazılım üzerinden SCADA sistemlerine aktarılabilir.

Örneğin farklı lokasyonlarda bulunan sensör veya gateway cihazları verilerini merkezi MQTT Broker'a gönderirken, SCADA veya veri platformu gerekli Topic'lere abone olarak bu verileri kullanabilir.

SCADA sistemlerinin çalışma mantığı hakkında daha fazla bilgi için SCADA Nedir? yazımızı inceleyebilirsiniz.

Tesla Kontrol'de MQTT Çözümleri

Tesla Kontrol olarak MQTT kullanan endüstriyel veri toplama, protokol dönüşümü, IIoT ve üst sistem entegrasyonu projelerinde farklı çözümler sunuyoruz.

GW-01 Multi Protocol Gateway

Novakon GW-01, farklı saha ve otomasyon protokollerinden aldığı verileri üst sistemlere aktarabilen endüstriyel bir protokol gateway çözümüdür.

GW-01 MQTT tarafında hem MQTT Client hem de dahili MQTT Broker yapısıyla kullanılabilir. Sahadaki MQTT Client cihazlarından gelen verilerin merkezi olarak toplanması ve gerektiğinde OPC UA, SQL veya REST gibi farklı üst sistem arayüzlerine aktarılması mümkündür.

GW-01 Multi Protocol Gateway'i inceleyin →

Protokol Gateway Çözümleri

Mevcut PLC, sayaç, sensör ve kontrol cihazlarında doğrudan MQTT desteği bulunmadığında uygun bir protokol gateway kullanılarak saha protokolleri ile MQTT tabanlı üst sistemler arasında veri köprüsü kurulabilir.

Protokol gateway çözümlerimizi inceleyin →

MQTT Hakkında Sık Sorulan Sorular

MQTT Açılımı Nedir?

MQTT adı tarihsel olarak MQ Telemetry Transport adıyla kullanılmıştır. Güncel OASIS standardında protokol doğrudan MQTT adıyla tanımlanmaktadır.

MQTT Broker Ne İşe Yarar?

MQTT Broker, Publisher Client'lardan gelen mesajları alır ve Topic aboneliklerine göre ilgili Subscriber Client'lara dağıtır.

MQTT İnternet Olmadan Çalışır mı?

Evet. MQTT Broker ve Client'lar aynı lokal ağ içerisinde bulunuyorsa internet bağlantısı olmadan da haberleşebilir. İnternet yalnızca uzak ağlar veya bulut sistemleriyle bağlantı gerektiğinde ihtiyaç olabilir.

MQTT Ücretsiz midir?

MQTT açık bir OASIS standardıdır. MQTT kullanan Client veya Broker yazılımlarının lisans modeli ise kullanılan ürüne göre açık kaynak, ücretsiz veya ticari olabilir.

MQTT Güvenli midir?

MQTT güvenli sistemlerde kullanılabilir ancak güvenlik otomatik değildir. TLS, kimlik doğrulama, kullanıcı yetkilendirmesi ve Topic erişim kuralları gibi güvenlik mekanizmalarının doğru şekilde yapılandırılması gerekir.

MQTT ile OPC UA Birlikte Kullanılabilir mi?

Evet. OPC UA ve MQTT aynı mimaride farklı görevler için birlikte kullanılabilir. Ayrıca OPC UA PubSub mimarisinde MQTT bir mesaj taşıma altyapısı olarak da kullanılabilir.

Sonuç

MQTT, hafif Publish/Subscribe mimarisi sayesinde modern IoT ve Endüstriyel IoT sistemlerinin en önemli haberleşme teknolojilerinden biri haline gelmiştir.

Broker tabanlı yapısı sayesinde cihazların birbirlerinden bağımsız çalışabilmesi, aynı verinin birden fazla sistem tarafından kullanılabilmesi ve düşük kaynak ihtiyacı MQTT'yi özellikle dağıtık veri toplama ve üst sistem entegrasyonlarında güçlü bir seçenek haline getirir.

Ancak başarılı bir MQTT uygulaması için yalnızca protokol seçimi yeterli değildir. Topic mimarisi, QoS seviyeleri, Broker kapasitesi, güvenlik yapısı, bağlantı sürekliliği ve verinin hangi üst sistemlerde kullanılacağı proje başlangıcında birlikte değerlendirilmelidir.

MQTT ve IIoT projenizi birlikte değerlendirmek için bizimle iletişime geçin →

WhatsApp