MQTT (Message Queuing Telemetry Transport) Nedir?

MQTT, makineden makineye ve nesnelerin interneti (IoT) üzerinde önemli rol oynar. Message Queuning Telemetry Transport kelimelerinin baş harflerinden oluşan bir protokoldür. Bu protokol 1999 yılında IBM ve Arcom şirketi tarafından çölde bulunan petrol hattının borularını izlemek amacıyla geliştirilmiştir.

MQTT protokolünün asıl amacı, kullandığı bant genişliğini minimuma indirmek, az enerji tüketimi ve ağ üzerinden mesajlaşma yöntemiyle veri gönderimi veya alımını sağlamaktır. Gönderilen verinin türleri, ikilik tabanda karşılığı, XML (Extensible Markup Language), JSON (JavaScript Object Notation) ya da saf bir string olabilir. Bu verileri şifreleme metotları kullanarak güvenli olarak karşı tarafa gönderilebilir. Protokol genellikle TCP/IP taşıma protokolünün uygulama katmanı üzerinden çalışır. Gönderilecek veri en az mesaj içermeden sadece başlık (header) ile iki bayt ya da en fazla QoS ile belirlenen, 256 Megabayt sınırlandırılmıştır. QoS (Quality of Service), ağ iletiminde kullanılan kapasitedir.

Veri aktarımı, şifrelenmemiş veriler için 1883 bağlantı noktası üzerinden, şifrelenmiş veriler için bağlantısı noktası 8883 üzerinden gerçekleşir. MQTT protokolünde üç adet ağı kullanım biçimi vardır. Bunlar MQTT Broker, yayıncı (publisher), abone (subscriber)’dır. MQTT’nin çalışma yapısı Şekil 3.7’te şekilsel olarak ifade edilmiştir.

MQTT Broker, Publisher ve Subscriber

MQTT Broker

Sunucu (server) işlemi görür ve kendisine bağlanan istemcilere (subscriber) kendisine yayıncılardan (Publisher) gelen mesajları yönlendirmektir. Bu yönlendirme işlemini kendisine gelen mesajların içinde gelen konu başlığı (topic) kullanılır. Yayıncıdan gelen konu başlığı abone olan istemcinin beklediği konu başlığıyla aynıysa yönlendirme işlemi gerçekleşmektedir. Eğer veri iletiminde abone bağlantısı koparsa yayıncıdan gelen veriler sunucuda saklanır ve tekrar bağlantı sağlandığı zaman veriler aboneye yönlendirilir. Birden fazla konu başlığını (topics) daha ayrıntılı olarak ayırmak için başlıklar arasında “/” karakteri kullanılır. Buna örnek vermek istersek, quadcoptere hem kontrol bilgilerini hem kamera verilerini göndermek istiyoruz. Kamera verileri için “quadcopter/camera” ve kontrol bilgileri için “quadcopter/controller” başlığı olarak alabiliriz. MQTT Broker, kiralanmış bir sunucuda ya da yerel ağda çalıştırılabilir.

MQTT Publisher

Bir sensör yardımıyla alınan ya da gönderilmek istenen herhangi bir veriyi, bir konu başlığı (topic) eklenerek sunucuya (broker) gönderen kısımdır. Sadece
mesaj içeren kısma payload olacakta adlandırılır. Ayrıca gönderilen mesaj içerisinde yenilenen bayrak, mesaj türü ve QoS seviyesi gibi bilgilerde içermektedir.

MQTT Subscriber

MQTT Broker abone olan bu kısım hep dinlemede bekler. Eğer karşı taraftan kendisine yönlendirilen mesaj varsa bunu okumakla yükümlüdür.

Girl Eating Pizza

MQTT Quality of Service (QoS) ait üç tür seviye vardır. Bunlar en fazla bir kez (QoS0), en az bir kez (QoS1) ve tam olarak bir kezdir (QoS2).

Girl Eating Pizza

MQTT protokolünün amacı, kullandığı bant genişliğini minimuma indirmek, az enerji tüketimi ve ağ üzerinden mesajlaşma yöntemiyle veri gönderimi veya alımını sağlamaktır.

Girl Eating Pizza

Jetson Nano, NVIDIA firması tarafından geliştirilen bir gömülü sistemdir. Görüntü sınıflandırma, nesne algılama, ses işleme gibi işlemler için kullanılabilir.

Girl Eating Pizza

Raspberry PI, okullarda okuyan gençlere temel bilgisayar bilimlerinin öğrenimini teşvik etmek amacıyla İngiltere’de Raspberry PI vakfı tarafından geliştirilen tek kartlı bilgisayarlardır.

Girl Eating Pizza

Gömülü sistemler, sistem içerisinde yerleştirilen ve o sistem içerisinde yer alan donanım ve yazılımdan oluşmuş sisteme denir.