IoT

MQTT Protokolü: IoT Haberleşme Standardı

22 Dec 2025
5 dakika okuma
İninia Teknoloji

MQTT (Message Queuing Telemetry Transport), IoT cihazları için tasarlanmış hafif, publish-subscribe tabanlı mesajlaşma protokolüdür. Düşük bant genişliği ve güç tüketimi gerektiren senaryolarda ideal olan MQTT, akıllı ev sistemlerinden endüstriyel IoT'a kadar geniş bir alanda kullanılmaktadır.

MQTT Nedir?

IBM tarafından 1999'da geliştirilen MQTT, TCP/IP üzerinde çalışan açık kaynaklı bir protokoldür. Özellikle:

  • Sınırlı bant genişliğine sahip ağlarda
  • Güç kısıtlaması olan cihazlarda
  • Yüksek gecikmeli veya güvenilmez ağlarda
  • Çok sayıda cihazın bağlandığı sistemlerde

etkili bir şekilde çalışmak üzere tasarlanmıştır.

Publish-Subscribe Modeli

MQTT, geleneksel request-response modelinden farklı olarak pub-sub (yayınla-abone ol) modeli kullanır:

Temel Bileşenler

  • Broker: Mesajları alan ve dağıtan merkezi sunucu (Mosquitto, HiveMQ, EMQX)
  • Publisher: Belirli bir topic'e mesaj yayınlayan cihaz
  • Subscriber: Belirli topic'lere abone olan ve mesaj alan cihaz
  • Topic: Mesajların kategorize edildiği hiyerarşik yapı (örn: home/living-room/temperature)

QoS Seviyeleri

MQTT üç farklı Quality of Service seviyesi sunar:

QoS 0 - At Most Once

"Fire and forget" - Mesaj bir kez gönderilir, teslim garantisi yok. En az overhead.

QoS 1 - At Least Once

Mesajın en az bir kez teslim edilmesi garanti edilir. Duplike mesajlar olabilir.

QoS 2 - Exactly Once

Mesajın tam olarak bir kez teslim edilmesi garanti edilir. En yüksek overhead.

Topic Hiyerarşisi

# Topic yapısı örnekleri
home/living-room/temperature
home/living-room/humidity
home/bedroom/temperature
factory/machine-1/status
factory/machine-1/sensors/vibration

# Wildcard kullanımı
home/+/temperature  # Tek seviye: home/living-room/temperature, home/bedroom/temperature
home/#              # Çoklu seviye: home altındaki tüm topic'ler

Retained Messages ve Last Will

Retained Messages

Broker'da saklanan son mesaj. Yeni abone olan istemciler hemen bu değeri alır.

Last Will and Testament (LWT)

İstemci beklenmedik şekilde bağlantıyı kaybettiğinde broker'ın yayınlayacağı mesaj. Cihaz durumu takibi için kritik.

Güvenlik

  • TLS/SSL: Şifreli iletişim (MQTTS, port 8883)
  • Username/Password: Temel kimlik doğrulama
  • Client Certificates: X.509 sertifika tabanlı auth
  • ACL: Topic bazlı erişim kontrolü

Popüler MQTT Broker'lar

  • Mosquitto: Açık kaynak, hafif, Eclipse Foundation
  • HiveMQ: Enterprise özellikler, clustering
  • EMQX: Yüksek performans, Erlang tabanlı
  • AWS IoT Core: Managed MQTT servisi

Kod Örneği (Python - paho-mqtt)

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected")
    client.subscribe("home/+/temperature")

def on_message(client, userdata, msg):
    print(f"{msg.topic}: {msg.payload.decode()}")

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect("broker.hivemq.com", 1883, 60)
client.loop_forever()

MQTT vs HTTP

ÖzellikMQTTHTTP
ModelPub-SubRequest-Response
BağlantıKalıcıHer istek yeni
Header Overhead2 byte minimumYüzlerce byte
Bi-directionalEvetPolling gerekir

MQTT, IoT projelerinde düşük güç tüketimi ve gerçek zamanlı iletişim gerektiren senaryolar için ideal çözümdür. Doğru QoS seviyesi ve güvenlik yapılandırmasıyla güvenilir IoT sistemleri kurabilirsiniz.

İninia Teknoloji

İstanbul Teknik Üniversitesi ARI Teknokent'te kurulu Ininia Teknoloji, 12+ yıllık deneyimle AR/VR, yapay zeka ve mobil uygulama alanlarında yenilikçi çözümler sunmaktadır.

Projeniz için profesyonel destek mi arıyorsunuz?

12+ yıllık deneyimimizle dijital dönüşümünüzü hızlandıralım.

Ücretsiz Görüşme Talep Et