MQTT

MQTT ali Message Queing Telemetry Transport je vodilni komunikacijski protokol za Industrijo 4.0

MQTT je TCP/IP machine-to-machine/IoT komunikacijski protokol. Je ultra lahek, odprtokodni publish/subscribe komunikacijski model, ki je obenem tudi zelo enostaven za implementacijo. Zelo je uporaben pri aplikacijah, kjer je pomemben nizek odtis kode in majhna poraba pasovne širine. Zanimiv je tudi v mobilnih aplikacijah, kjer so številnim prejemnikom ključnega pomena majhnost, nizka poraba energije in zanesljivost pri distribuciji podatkov. 

Publish/subscribe komunikacijska metoda

Publish/subscribe je alternativa tradicionalnemu HTTP modelu klient-server, kjer klient komunicira neposredno s končno točko. Razlika je v tem, da pri publish/subscribe modelu klient ne črpa podatkov s serverja, temveč jih server v primeru spremembe pošilja klientu. Za komunikacijo je potrebna zanesljiva TCP povezava. Če se ta prekine, lahko server podatke skladišči v bufferju, katerega ob ponovni vzpostavitvi povezave pošlje klientom.
Centralna komunikacijska točka je t.i. MQTT broker, z nalogo prenašanja sporočil od pošiljateljev do prejemnikov. Ustrezne prejemnike izbere na podlagi naslovov sporočil. Pošiljatelji oz. publisherji imajo nalogo pošiljati sporočila brokerju. Pomembno je, da ima vsako sporočilo ustrezen naslov oz. temo.
Pošiljanje je event-driven, kar pomeni, da se podatki prenašajo ob spremembah (ali v časovnih intervalih). Od brokerja prejemniki oz. subscriberji prejemajo sporočila le za naslove na katere so prijavljeni.

6 glavnih prednosti MQTT

Varnost

MQTT omogoča zelo visok nivo varnosti. Čeprav uporablja TCP protokol, je možno podatke enkriptirati z uporabo TLS/SSL certifikatov. Na voljo Vam je delna ali popolna enkripcija, med katerima lahko izbirate odvisno od lastnosti aplikacije in želje po zmogljivosti sistema.

Idealen za omejena omrežja

Kontrolni paketi so zelo majhni in vsak vsebuje tri dele, fiksni header (2 byta), variabilni header ter payload. Prenos le nujno potrebnih komponent zmanjša količino podatkov, hkrati pa ni nujno, da vsak paket vsebuje variabilni header in payload. Tako so primerni za nizke hitrosti prenosa, visoke odzivne čase, omejitve prenosov in fragilne povezave.

Publish/subscribe arhitektura

Sporočila so poslana asinhrono (“push”) z uporabo pub/sub arhitekture. Vsak poslan paket ima svoj namen, vsak bit je pazljivo kreiran tako, da je poraba podatkov čim manjša.

Vsako MQTT omrežje ima vsaj:

  • 1 x MQTT broker,
  • 1 x MQTT publisher,
  • 1 x MQTT subscriber

Obvestila ob nenavadni prekinitvi povezave

Ko se klient poveže na server, definira naslov in sporočilo, ki mora biti objavljeno, če se povezava nepričakovano prekine (koncept »Last will and testament—LWM«). Če klient izgubi povezavo, keep alive časovnik ugotovi, da klient ni poslal sporočila ali PINREQ. Server nato takoj objavi LWM sporočilo.

Klienti so zelo preprosti za integracijo

MQTT je odprt, OASIS technical Committee standardiziran protokol, ki omogoča integracijo v IoT, platforme in operacijske sisteme. Za večino MQTT aplikacij je dovolj že implementacija osnovnih ukazov (CONNECT, PUBLISH, SUBSCRIBE, DISCONNECT). Mnogo knjižnic pa je na voljo tudi preko Eclipse Paho projekta.

Quality of Service (QoS)

QoS nivo je potrebno določiti za vsako poslano sporočilo, ker z njim določimo kako server in klient komunicirata. Obstaja preprosto pravilo, večji kot je QoS, manjša je učinkovitost.

Ločimo 3 nivoje:

  • QoS 0 – sporočila so poslana po najboljših zmožnostih. Lahko pride do izgube podatkov
  • QoS 1 – zagotovljeno je, da sporočila prispejo. Lahko pride do duplikatov
  • QoS 2 – zagotovljeno je, da so sporočila prispejo samo enkrat

Na sliki si lahko ogledate prikaz komunikacije med MQTT Broker-jem, Subscriber-jem in Publisher-jem.

Primer uporabe MQTT protokola

Za primer vzemimo povezavo med senzorjem za temperaturo v kuhinji pametne hiše in krmilnikom. Glede na zahteve aplikacije in želenega načina dostopa se broker lahko nahaja na ………

Želite dodatne informacije o primerih uporabe?

Izpolnite obrazec in poslali vam bomo celoten članek.

Želite, da Vas kontaktiramo in pomagamo pri izbiri opreme?
DaNe

Strinjam se s politiko:

Le če želite, Vas bomo kontakirali preko mail-a in Vam pomagali izbrati opremo za Vašo MQTT aplikacijo!