Günümüzde cihazlar, mobil uygulamalar, sensörler, paneller ve bulut sistemleri arasında anlık veri alışverişi her zamankinden daha önemli hale geldi. Akıllı ev sistemlerinden fabrika otomasyonuna, canlı takip uygulamalarından anlık bildirim altyapılarına kadar birçok modern yazılım, düşük gecikmeli ve güvenilir iletişim modellerine ihtiyaç duyar.
Bu noktada öne çıkan protokollerden biri MQTT’dir.
MQTT, yani Message Queuing Telemetry Transport, düşük bant genişliği ve düşük gecikme gerektiren senaryolar için tasarlanmış hafif bir mesajlaşma protokolüdür. Özellikle IoT projelerinde, cihazlar arası haberleşmede ve gerçek zamanlı veri aktarımında yaygın şekilde kullanılır.
ClomosyLearn tarafında eklenen TCLMqttClient bileşeni de bu yaklaşımı geliştiriciler için daha erişilebilir hale getirir. Böylece Clomosy uygulamaları yalnızca proje içi mesajlaşma yapılarıyla sınırlı kalmadan, harici MQTT broker sistemlerine de bağlanabilir.

MQTT Nedir?
MQTT, cihazların veya uygulamaların birbiriyle doğrudan değil, merkezi bir mesaj yöneticisi üzerinden iletişim kurmasını sağlayan bir protokoldür.
Bu merkezi yapı broker olarak adlandırılır.
Klasik istemci-sunucu mimarisinden farklı olarak MQTT, publish/subscribe yani yayınla/abone ol modelini kullanır.
Basitçe anlatmak gerekirse:
Bir cihaz veya uygulama bir konuya mesaj gönderir. Başka cihazlar veya uygulamalar da bu konuya abone olmuşsa mesajı otomatik olarak alır.
Örneğin:
Cihaz A → chat/general konusuna “Merhaba” mesajı gönderir.
Cihaz B → chat/general konusuna abone olduğu için mesajı anında alır.
Bu yapı, özellikle gerçek zamanlı sistemlerde oldukça verimli çalışır.
MQTT Nasıl Çalışır?
MQTT’nin temelinde dört önemli kavram vardır:
Broker
Broker, MQTT sisteminin merkezidir. Tüm mesajlar broker üzerinden geçer.
Publisher mesajı broker’a gönderir, broker da ilgili topic’e abone olan subscriber’lara bu mesajı iletir.
Geliştirme ve test ortamlarında en çok kullanılan broker çözümlerinden biri Eclipse Mosquitto’dur. ClomosyLearn dokümantasyonunda da test ortamı için Mosquitto kullanımı önerilmektedir.
Publisher
Publisher, belirli bir topic’e mesaj gönderen taraftır.
Örneğin bir sıcaklık sensörü şu topic’e veri gönderebilir:
sensors/temp
Gönderilen mesaj ise şöyle olabilir:
24.6
Bu durumda sensör publisher olarak çalışır.
Subscriber
Subscriber, belirli topic’leri dinleyen taraftır.
Bir mobil uygulama, yönetim paneli veya dashboard şu topic’e abone olabilir:
sensors/temp
Bu topic’e yeni bir mesaj geldiğinde subscriber mesajı anında alır.
Topic
Topic, MQTT mesajlarının gönderildiği kanaldır.
Topic yapısı hiyerarşik olabilir:
factory/line1/machine3
building/floor2/room5
chat/general
users/123/status
Bu yapı sayesinde mesajlar düzenli, okunabilir ve yönetilebilir hale gelir.
MQTT Neden Hafif Bir Protokoldür?
MQTT’nin en güçlü yönlerinden biri düşük kaynak tüketimidir.
Bu nedenle özellikle şu senaryolarda tercih edilir:
Düşük bant genişliği olan ağlar
Pil ile çalışan IoT cihazları
Sürekli bağlantı gerektiren sistemler
Anlık veri akışı gereken uygulamalar
Mobil bağlantıların kararsız olduğu ortamlar
HTTP tabanlı istek-cevap modellerinde her iletişim için ayrı istek yapılması gerekirken, MQTT sürekli açık bağlantı üzerinden daha verimli bir mesajlaşma sağlar.
MQTT Nerelerde Kullanılır?
MQTT yalnızca IoT projeleriyle sınırlı değildir. Gerçek zamanlı iletişim gereken birçok alanda kullanılabilir.
IoT Sistemleri
Sensörler, akıllı cihazlar, enerji sayaçları, güvenlik sistemleri ve endüstriyel cihazlar MQTT ile veri gönderebilir.
Örneğin:
home/livingroom/temperature
factory/machine1/status
vehicle/123/location
Mobil Uygulamalar
Mobil uygulamalarda MQTT şu amaçlarla kullanılabilir:
Anlık mesajlaşma
Canlı konum takibi
Gerçek zamanlı bildirimler
Cihaz kontrolü
Dashboard güncellemeleri
Clomosy gibi cross-platform mobil uygulama altyapıları, MQTT desteğiyle gerçek zamanlı veri akışını daha esnek şekilde yönetebilir.
Endüstri 4.0
Fabrika otomasyonu, üretim takibi, makine durumu izleme ve alarm sistemlerinde MQTT yaygın şekilde kullanılır.
Bir üretim hattındaki makineler durum bilgisini broker’a gönderebilir. Operatör ekranları ise bu bilgileri anlık olarak görüntüleyebilir.
Akıllı Ev Sistemleri
Akıllı ev sistemlerinde MQTT ile lambalar, klimalar, perdeler, alarm sistemleri ve sensörler merkezi şekilde yönetilebilir.
Örneğin:
home/kitchen/light
home/garage/door
home/security/alarm
MQTT ve ClomosyLearn TCLMqttClient İlişkisi
ClomosyLearn’e eklenen TCLMqttClient bileşeni, geliştiricilerin MQTT broker’larına bağlanarak mesaj gönderip almasını sağlar.
Bu bileşen ile bir Clomosy uygulaması:
MQTT broker’a bağlanabilir,
topic’e abone olabilir,
mesaj gönderebilir,
gelen mesajları event üzerinden işleyebilir,
bağlantı kopması durumunda yeniden bağlanma süreçlerini yönetebilir.
Bu yapı özellikle Clomosy’nin mobil uygulama, kurumsal çözüm, bulut tabanlı yönetim ve iş süreçleri otomasyonu yaklaşımıyla uyumludur. Örneğin bir saha takip uygulaması, MQTT üzerinden cihazlardan gelen durum bilgilerini anlık olarak alabilir ve kullanıcı arayüzüne yansıtabilir.
MQTT Broker Nedir?
MQTT broker, sistemdeki tüm mesaj trafiğini yöneten sunucudur.
Broker olmadan MQTT istemcileri doğrudan haberleşemez. Bu nedenle MQTT mimarisinin kalbinde broker bulunur.
Popüler broker çözümleri arasında şunlar yer alır:
Eclipse Mosquitto
HiveMQ
EMQX
VerneMQ
Bulut tabanlı MQTT servisleri
Test ortamlarında Mosquitto oldukça yaygın kullanılır. Varsayılan MQTT portu genellikle 1883 olarak kullanılır. Güvenli bağlantılar için ise TLS/SSL destekli 8883 portu tercih edilebilir.
MQTT Topic Yapısı Neden Önemlidir?
Topic tasarımı, MQTT projelerinde uzun vadeli sürdürülebilirlik açısından önemlidir.
Kötü tasarlanmış topic yapısı, proje büyüdükçe karmaşaya neden olabilir.
Örnek iyi topic yapıları:
factory/line1/machine1/status
factory/line1/machine1/temperature
factory/line2/machine4/error
Mobil uygulama için örnek:
users/102/status
orders/2025/created
chat/room/general
Bu tür hiyerarşik topic yapıları, sistemin daha okunabilir ve ölçeklenebilir olmasına yardımcı olur.
MQTT QoS Nedir?
MQTT’de QoS, yani Quality of Service, mesajın hangi güvenilirlik seviyesinde iletileceğini belirler.
Üç temel QoS seviyesi vardır:
QoS 0
Mesaj en fazla bir kez gönderilir. Teslim garantisi yoktur.
Hızlıdır, ancak kritik veriler için uygun olmayabilir.
QoS 1
Mesaj en az bir kez teslim edilir. Aynı mesaj nadiren birden fazla kez alınabilir.
Birçok pratik senaryo için dengeli bir seçenektir.
QoS 2
Mesaj tam olarak bir kez teslim edilir.
En güvenilir seviyedir ancak daha fazla işlem yükü oluşturur.
ClomosyLearn dokümantasyonundaki örnekte mesaj gönderimi sırasında QoS değeri kullanılmaktadır. Bu da geliştiricilerin mesaj güvenilirliğini senaryoya göre belirleyebilmesine olanak tanır.
MQTT Güvenliği
MQTT projelerinde güvenlik mutlaka dikkate alınmalıdır.
Özellikle internet üzerinden çalışan sistemlerde şu önlemler önemlidir:
TLS/SSL kullanımı
Kullanıcı adı ve şifre ile bağlantı
Güçlü topic yetkilendirme
Broker erişim kontrolü
Güvenli port yapılandırması
Gereksiz anonim bağlantıların kapatılması
Geliştirme ortamında basit ayarlar yeterli olabilir. Ancak üretim ortamında MQTT broker mutlaka güvenli şekilde yapılandırılmalıdır.
MQTT’nin Avantajları
MQTT’nin yaygın kullanılmasının temel nedenleri şunlardır:
Düşük Gecikme
Mesajlar hızlı şekilde iletilir. Bu da gerçek zamanlı uygulamalar için önemli bir avantajdır.
Düşük Veri Tüketimi
MQTT hafif bir protokol olduğu için düşük bant genişliğiyle çalışabilir.
Ölçeklenebilirlik
Doğru broker ve topic tasarımıyla çok sayıda cihaz ve uygulama aynı sistemde haberleşebilir.
Esnek Mimari
Publisher ve subscriber birbirini tanımak zorunda değildir. Bu da daha gevşek bağlı ve esnek sistemler kurulmasını sağlar.
IoT Uyumlu Yapı
Sensörler, cihazlar ve mobil uygulamalar için uygun bir haberleşme modeli sunar.
MQTT’nin Dezavantajları Var mı?
MQTT güçlü bir protokol olsa da her senaryo için tek çözüm değildir.
Dikkat edilmesi gereken noktalar:
Broker bağımlılığı vardır.
Güvenlik ayarları doğru yapılmalıdır.
Topic yapısı iyi planlanmalıdır.
Mesaj kalıcılığı ve ölçekleme broker tarafında doğru yönetilmelidir.
HTTP API’lerin daha uygun olduğu senaryolar da vardır.
Örneğin klasik veri listeleme, raporlama veya CRUD işlemleri için REST API daha uygun olabilir. Ancak anlık veri akışı ve sürekli bağlantı gereken durumlarda MQTT daha verimli bir seçenek haline gelir.
MQTT ile HTTP Arasındaki Temel Fark
HTTP genellikle istek-cevap mantığıyla çalışır.
İstemci sunucuya istek gönderir, sunucu cevap döner.
MQTT ise olay tabanlıdır. Bir mesaj yayınlandığında, ilgili topic’e abone olan tüm istemciler bu mesajı alır.
Kısaca:
HTTP → İstek / Cevap
MQTT → Yayınla / Abone Ol
Bu nedenle MQTT, gerçek zamanlı sistemlerde daha doğal bir iletişim modeli sunar.
Clomosy Ekosisteminde MQTT’nin Önemi
Clomosy ekosistemi, mobil uygulama geliştirme, kurumsal yazılım çözümleri, otomasyon sistemleri ve bulut bağlantılı yönetim ihtiyaçlarına odaklanan esnek bir yapı sunar.
MQTT desteği, bu ekosisteme gerçek zamanlı iletişim açısından önemli bir katkı sağlar.
Örneğin:
Bir saha operasyon uygulaması cihaz durumlarını anlık izleyebilir.
Bir etkinlik yönetimi uygulaması katılımcı hareketlerini canlı takip edebilir.
Bir üretim takip sistemi makine verilerini gerçek zamanlı gösterebilir.
Bir mobil dashboard, broker’dan gelen verileri anlık olarak güncelleyebilir.
Bu tür senaryolarda ClomosyLearn’deki TCLMqttClient bileşeni, geliştiricilere daha geniş entegrasyon seçenekleri sunar.
MQTT Kullanırken Dikkat Edilmesi Gerekenler
Başarılı bir MQTT mimarisi için şu noktalara dikkat edilmelidir:
Topic Standardı Belirleyin
Proje başında topic isimlendirme standardı oluşturulmalıdır.
Güvenliği Ertelemeyin
Üretim ortamında TLS/SSL ve kimlik doğrulama mutlaka kullanılmalıdır.
QoS Seviyesini Doğru Seçin
Her mesaj için en yüksek QoS seviyesini kullanmak doğru değildir. Performans ve güvenilirlik dengesi kurulmalıdır.
Broker İzleme Yapın
Broker performansı, bağlantı sayısı, mesaj trafiği ve hata logları düzenli takip edilmelidir.
Test Araçlarından Yararlanın
MQTT Explorer gibi araçlar, topic takibi ve mesaj testleri için oldukça faydalıdır.
Sonuç
MQTT, düşük gecikmeli, hafif ve esnek mesajlaşma yapısı sayesinde IoT ve gerçek zamanlı uygulamalarda güçlü bir protokol olarak öne çıkar.
Broker, publisher, subscriber ve topic kavramları üzerine kurulu olan bu model; mobil uygulamalardan fabrika otomasyonuna, akıllı ev sistemlerinden bulut tabanlı cihaz yönetimine kadar geniş bir kullanım alanına sahiptir.
ClomosyLearn’e eklenen TCLMqttClient bileşeni ise geliştiricilerin harici MQTT broker’lara bağlanarak gerçek zamanlı veri alışverişi yapabilmesine olanak tanır. Bu sayede Clomosy tabanlı uygulamalar, daha entegre, daha ölçeklenebilir ve daha dinamik sistemlerle iletişim kurabilir.
MQTT öğrenmek, modern yazılım geliştirme ve IoT projeleri için önemli bir adımdır. Özellikle gerçek zamanlı veri akışı gerektiren projelerde MQTT, doğru yapılandırıldığında oldukça etkili bir çözüm sunar.




Bir yanıt yazın