Ulu Önder Mustafa Kemal Atatürk'ü aramızdan ayrılışının 88. yılında saygı, minnet ve özlemle anıyoruz.

MQTT nedir? IoT cihazları arasında hafif mesajlaşmaya giriş

kaan.yildiz Mid 8 saat önce · 3 görüntülenme

Sensörden gelen veriyi bir panele göndermek, telefondan bir röleyi açmak ya da birden fazla cihazı birbirine konuşturmak istiyorsan, MQTT bu iş için en yaygın kullanılan protokollerden biri.

Nasıl çalışır?

MQTT bir yayınla-abone ol (publish/subscribe) protokolüdür. Cihazlar birbirine doğrudan bağlanmaz; arada broker adı verilen bir sunucu vardır.

  • Sensör, ev/salon/sicaklik konusuna (topic) 22.5 değerini yayınlar.
  • Bu konuya abone olan panel, telefon uygulaması veya başka bir cihaz mesajı alır.

Yayınlayan, kimin dinlediğini bilmek zorunda değildir. Yeni bir cihaz eklemek için sadece ilgili konuya abone olması yeterlidir.

Konu (topic) yapısı

Konular / ile ayrılır ve hiyerarşiktir:

ev/salon/sicaklik
ev/salon/nem
ev/mutfak/sicaklik

Abone olurken joker karakter kullanabilirsin:

  • ev/+/sicaklik → tüm odaların sıcaklığı
  • ev/# → ev altındaki her şey

Broker kurmak

En yaygın açık kaynak broker Mosquitto'dur. Bir Raspberry Pi veya küçük bir sunucuda çalışır:

sudo apt install mosquitto mosquitto-clients

Test için bir terminalde abone ol, diğerinde yayınla:

mosquitto_sub -h localhost -t "ev/#" -v
mosquitto_pub -h localhost -t "ev/salon/sicaklik" -m "22.5"

Mosquitto'nun yeni sürümleri varsayılan olarak yalnızca yerel bağlantıları kabul eder. Ağdaki cihazlara açmak için yapılandırmaya bir listener ve kimlik doğrulama eklemen gerekir.

ESP32'den yayınlamak

Arduino ortamında yaygın olarak PubSubClient kütüphanesi kullanılır. Temel akış:

  1. Wi-Fi'ye bağlan.
  2. Broker'a bağlan (adres, port, kullanıcı adı/şifre).
  3. Belirli aralıklarla client.publish("ev/salon/sicaklik", deger) çağır.
  4. loop() içinde client.loop() çağırmayı unutma; bağlantıyı canlı tutar.

Bilmen gereken üç kavram

  • QoS (hizmet kalitesi): 0 = bir kez gönder, ulaşmayabilir; 1 = en az bir kez ulaşır; 2 = tam bir kez ulaşır. Sensör verisi için genelde 0 veya 1 yeterlidir.
  • Retain: Broker konudaki son mesajı saklar; yeni abone olan cihaz son değeri hemen alır. Cihaz durumları (açık/kapalı) için kullanışlıdır.
  • Last Will (son vasiyet): Cihaz beklenmedik şekilde koparsa broker senin belirlediğin mesajı (ör. cevrimdisi) yayınlar.

Güvenlik

  • Broker'ı kullanıcı adı/şifresiz internete açma; internette açık broker'ları tarayan botlar var.
  • Dışarıdan erişim gerekiyorsa TLS (genelde 8883 portu) kullan.
  • Her cihaza ayrı kullanıcı ve yalnızca ihtiyacı olan konulara izin ver.

Home Assistant, Node-RED gibi araçlar MQTT ile doğrudan çalışır; küçük bir ev otomasyonu için iyi bir başlangıç noktası.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi
  • Açılış10.11.2026
  • Son etkinlik8 saat önce
  • Cevap0
  • Görüntülenme3
  • Beğeni0
Yeni konu aç