Protokol MQTT (Message Queuing Telemetry Transport) adalah protokol yang berlangsung terhadap diatas stack TCP/IP dan membawa ukuran paket data dengan low overhead yang kecil (minimum 2 bytes) supaya berefek terhadap mengkonsumsi catu daya yang terhitung lumayan kecil.
apa itu mqtt Protokol ini adalah tipe protokol data-agnostic yang berarti anda sanggup mengirimkan data apapun seperti data binary, text lebih-lebih XML ataupun JSON dan protokol ini memakai tipe publish/subscribe daripada tipe client-server.
Stack TCP/IP saat ini udah banyak di dukung oleh mikrokontroler seperti seri STM32Fx7 maupun device board yang lazim dipasaran seperti Arduino Yun, Arduino + Ethernet Shield, ESP8266 WiFi SoC, Raspberry Pi dll. Jadi memang banyak pilihan untuk studi IoT dengan memakai protokol ini ditambah lagi harga device yang tambah murah dan terjangkau initialboard
Sistem lazim MQTT seperti terhadap gambar diatas memerlukan dua komponent perangkat lunak utama yaitu
MQTT Client yang nantinya dapat di install di device. Untuk Arduino anda sanggup memakai pubsubclient, pustaka seperti mqtt.js sanggup dipakai terhadap platform Node.js di Raspberry Pi ataupun laptop.
MQTT Broker yang berguna untuk menangani publish dan subscribe data. Untuk platform Node.js anda sanggup memakai broker mosca tetapi untuk platform yg lain banyak broker tersedia seperti mosquitto, HiveMQ dll.
Keuntungan berasal dari sistem publish/subscribe adalah pada sumber pengirim data (publisher) dan penerima data (klien) tidak saling jelas gara-gara tersedia broker di antara mereka atau istilah kerennya yaitu space decoupling dan yang lebih mutlak lagi yaitu adanya time decoupling di mana publisher dan klien tidak wajib terkoneksi secara bersamaan, jika klien sanggup saja disconnect sehabis laksanakan subscribe ke broker dan lebih dari satu saat lantas klien connect lagi ke broker dan klien selalu dapat terima data yang terpending di awalnya sistem ini dikenal dengan mode offline.
Sebelum Internet of Things jadi populer, atau saat di mana istilah Internet of Things pertama disebutkan di sarana (akhir tahun 90-an), Andy Stanford-Clark berkolaborasi dengan Arlen Nipper (sekarang CirrusLink) didalam merancang sebuah protokol untuk berkomunikasi dengan sistem SCADA di industri minyak dan gas yang pertama di awali sebagai protokol untuk industri khusus dengan cepat jadi protokol open-source untuk komunikasi perangkat IoT di masa sekarang.
Cara Kerja MQTT
Pada MQTT terdapat Publisher, Subscriber dan Broker.
Publisher adalah yang mengirimkan data, Subscriber adalah yang terima data, dan Broker adalah yang meneruskan data berasal dari Publisher ke Subscriber.
Pada MQTT tiap-tiap Client sanggup jadi Publisher sekaligus sanggup jadi Subscriber juga. Artinya sanggup mengirim terhitung terima data.
Misal Client 1 gunakan Arduino Uno, maka Arduino uno berikut sanggup mengirim dan terhitung terima data berasal dari Client 2. Nah Client 2 ini sanggup Arduino lagi, sanggup terhitung Aplikasi atau Web.
Sinyal Kontrol
MQTT membawa 14 tipe isyarat pengecekan seperti berikut:
CONNECT — Client request to connect to Server
CONNACK — Connection Acknowledgement
PUBLISH — A message which represents a new/separate publish
PUBACK — QoS 1 Response to a PUBLISH message
PUBREC — First part of QoS 2 message flow
PUBREL — Second part of QoS 2 message flow
PUBCOMP — Last part of the QoS 2 message flow
SUBSCRIBE — A message used by clients to subscribe to specific topics
SUBACK — Acknowledgement of a SUBSCRIBE message
UNSUBSCRIBE — A message used by clients to unsubscribe from specific topics
UNSUBACK — Acknowledgement of an UNSUBSCRIBE
message
PINGREQ — Heartbeat message
PINGRESP — Heartbeat message acknowledgement
DISCONNECT — Graceful disconnect message sent by clients
before disconnecting