MQTT (Message Queuing Telemetry Transport) ľudsky znamená Message Queuing Telemetry Transport. Pred niekoľkými rokmi, keď PC strana rozšírenosti mnohých inžinierov jednoducho nepočula kruhový objazd, ale s postupným rozvojom technológie internetu vecí (IoT) sa tento protokol objavuje čoraz častejšie v očiach významných inžinierov. To spôsobilo, že mnohí inžinieri poznajú iba názov, ale nie význam, a mnohí ľudia si dokonca mysleli, že ide o druh protokolu vyvinutý s rozvojom internetu vecí. V skutočnosti bol protokol MQTT prvýkrát vynájdený pred viac ako 20 rokmi a v roku 1999 Andy Stanford Clark z IBM a Alan Nippe z Cirrus Link napísali prvú verziu protokolu. Protokol bol odvtedy medzinárodne štandardizovaný ako protokol na odosielanie správ založený na publikovaní/prihlásení{6}}podľa normy ISO (ISO/IEC PRF 20922.). Spoločnosť IBM predložila špecifikáciu MQTT verzie 3.1 organizácii Structured Information Standards Facilitation Organization v roku 2013 spolu s chartou, aby sa zaistilo, že v protokole MQ bolo možné vykonať iba malý počet špecifických zmien, ktoré bolo možné od tej doby vykonať. odvtedy v mnohých výklenkoch. Keď bola dokončená technická infraštruktúra internetu vecí, tento starodávny protokol začal mať svoju prvú jar.
Transportné a aplikačné vrstvy siete
Ako všetci vieme, doterajší rýchly rozvoj internetu vecí nemôže opustiť infraštruktúru komunikačnej siete, dnes už môžete ovládať ktorýkoľvek kút sveta v domácnosti vypínačom izbového svetla, alebo k priemyselnému riadeniu môžete ovládať aj pohyb robota na diaľku, vyspelosť tejto technológie je založená na sieťovej komunikácii ako základ. Hlavnou technológiou súčasnej sieťovej technológie je sedem{1}vrstvový model OSI, samozrejme, skutočná aplikácia v skutočnosti používa štvorvrstvový sieťový model TCP/IP-.
TCP / IP štvor{0}}vrstvový sieťový model tretej transportnej vrstvy je známy protokol TCP / IP, táto vrstva hlavného účelu protokolu sa používa na odoslanie počítača na sieťovú komunikáciu na prenos dát na zadanú IP adresu druhého vyššie uvedeného stroja, napríklad IP adresu "192.168.137.19 Napríklad, ak chce stroj s IP adresou "192.168.191 poslať" a191. 16-bajtový binárny paket do stroja s IP adresou "192.168.137.10", potom je možné na jeho prenos použiť protokol TCP/IP. Namiesto toho pri prenose údajov pomocou TCP bežne používame zásuvky.
Ale keď IP adresa "192.168.137.19" stroj na odoslanie údajov do "192.168.137.10" stroj, tento paket TCP paketov vnútri údajov je v skutočnosti v mene toho, čo znamená prijímací koniec IP adresy prijímacieho konca "192.168.137.10" stroja, ako nechať vrstvu dátového paketu rozobrať vyššie uvedený problém vrstvy. protokoly riešiť, čo sú protokoly aplikačnej vrstvy. Samozrejme, ak vaše protokoly nechcú dať bežnej sieti počítačov na rozlíšenie, môžete tiež prejsť na vývoj niektorých vlastných protokolov aplikačnej vrstvy, na tom nezáleží, účelom transportnej vrstvy je len odovzdať dáta cieľovému stroju nad ňou.
Naša každodenná práca, zábava sa často stretávame s rôznymi protokolmi aplikačnej vrstvy, napríklad keď otvoríte webovú stránku, obrázok sa zobrazí v tejto polohe, tlačidlo smerujúce nadol je na dosiahnutie akej funkcie, to je podľa HTML HyperText Transfer Protocol (anglicky: HyperTextTransferProtocol, skratka: HTTP) dohodnuté. To zaisťuje, že keď si stránku na vašom webe vyžiada akékoľvek zariadenie, toto zariadenie ju dokáže správne zobraziť. Okrem HTTP existuje mnoho ďalších protokolov aplikačnej vrstvy ako DNS, FTP atď., jedným z nich je aj protokol MQTT, ktorý je naším dnešným protagonistom.
Prečo IoT uprednostňuje MQTT
So všetkými skvelými protokolmi aplikačnej vrstvy, ktoré sú k dispozícii pre naše existujúce aplikácie, prečo MQTT žiari v priestore internetu vecí. Výber protokolu MQTT nie je neopodstatnený; MQTT je ľahký, flexibilný sieťový protokol, ktorý sa snaží nájsť správnu rovnováhu pre vývojárov internetu vecí:
Tento ľahký protokol je možné implementovať na silne obmedzenom hardvéri zariadení a sieťach s vysokou latenciou/obmedzenou šírkou pásma.
Jeho flexibilita umožňuje podporovať rôzne aplikačné scenáre pre zariadenia a služby internetu vecí.
Väčšina vývojárov už pozná webové služby HTTP. Prečo teda neumožniť zariadeniam IoT pripojiť sa k webovým službám? Zariadenia môžu odosielať svoje údaje vo forme požiadaviek HTTP a prijímať aktualizácie zo systému vo forme odpovedí HTTP. Tento model žiadosti a odpovede má niekoľko vážnych obmedzení:
HTTP je synchronizačný protokol. Klient musí počkať, kým server odpovie. webové prehliadače túto požiadavku majú, no za cenu škálovateľnosti. V priestore internetu vecí veľký počet zariadení a sieť, ktorá je pravdepodobne nespoľahlivá alebo má vysokú latenciu, robí synchrónnu komunikáciu problematickou. Asynchrónne protokoly správ sú vhodnejšie pre aplikácie internetu vecí. Senzory odosielajú údaje a umožňujú sieti určiť najlepšiu trasu a čas na ich doručenie do cieľových zariadení a služieb.
HTTP je jednosmerný. Klient musí nadviazať spojenie. V aplikáciách IoT je zariadením alebo senzorom zvyčajne klient, čo znamená, že nemôže pasívne prijímať príkazy zo siete.
HTTP je protokol typu one to one{0}}to{1}}. Klient zadá požiadavku a server odpovie. Doručovanie správ do všetkých zariadení v sieti je nielen náročné, ale aj nákladné, čo je bežný prípad použitia v aplikáciách internetu vecí.
HTTP je ťažký protokol s mnohými hlavičkami a pravidlami. Nie je vhodný pre obmedzené siete.
Z týchto dôvodov väčšina-výkonných a škálovateľných systémov používa na internú výmenu údajov asynchrónne zbernice správ namiesto webových služieb.
Model odberu/zverejnenia
Je zaujímavé, že tento server protokolu MQTT je v skutočnosti oveľa jednoduchší dizajn ako webový server, pretože sa snaží byť efektívnou službou. mechanizmus, ktorým MQTT primárne odosiela a prijíma správy, je trochu podobný vzťahu medzi našou verejnou webovou stránkou a vami, čitateľmi.
V skutočnom svete sme si ja a vy podobní, ako keby ste mali zariadenie MQTT pripojené k jednotnému serveru, odoberáte nás zo záujmu alebo z nejakej náklonnosti k nášmu verejnému číslu, a keď každý deň pošlem textovú správu, objavíte sa v mobilnom telefóne Odoslal som správu, tento proces, získate moje informácie spôsobom známym ako V tomto procese, spôsob, akým získavate moje informácie a zverejnenie tohto príspevku sa nazýva "prihlásenie na odber". A každý môže k môjmu článku, môžete mi pokojne zanechať odkaz, toto správanie je správanie každého „zverejniť“ a ja sa vždy snažím vidieť správu každého, toto je druh „predplatiteľského“ správania. V tomto procese s nami nemajú žiadne externé informácie nič spoločné, jednoducho komunikujeme s tokom informácií v dvoch smeroch. Mechanizmus zasielania správ v MQTT je tiež založený na modeli Publish - Subscribe. Mechanizmus doručovania správ MQTT je tiež založený na modeli „Publikovať“ - „Prihlásiť sa na odber“.
Konkrétne kroky MQTT sú:
Krok 1:Prvý použite na získanie servera MQTT a potom vytvorte nový komunikačný produkt MQTT.
Krok 2:Potom prejdite na pripojenie k tomuto serveru, dva dôležité parametre na pripojenie k serveru sú číslo hostiteľa (názov domény alebo IP adresa) a číslo portu.
Krok 3:Ak používate platformu cloudového servera tretej{0}}strany, môže sa od vás vyžadovať, aby ste sa prihlásili do tohto zariadenia pomocou ID produktu a overovacích informácií, ktoré možno nájsť na zadnej strane služby Device Cloud.
Po vykonaní týchto troch krokov sa môžete prihlásiť na odber alebo posielať správy do príslušných tém.
Dám dohromady dokument, ktorý vám ukáže, ako „vyhodiť“ cloudovú platformu s otvoreným prístupom pre zariadenia China Mobile.
Tieto tri kroky sa vzťahujú na vývoj aplikačného softvéru aj vývoj mikrokontrolérov. Pri vývoji mikrokontroléra, ak používate príkazy AT a komunikáciu s externým modulom WIFI, potom môže byť všeobecný modul dodávaný s príkazmi AT + MQTT, čo je najlepší spôsob, ako výrazne znížiť tlak na mikrokontrolér. Alebo môžete priamo pristupovať k údajom transportnej vrstvy TCP/IP a potom analyzovať MQTT, čo vyžaduje, aby používateľ mal hlboké znalosti protokolu MQTT, aby mohol analyzovať aj svoje vlastné údaje Json, takže vo všeobecnosti pri vytváraní vstavaných zariadení vo všeobecnosti odporúčame, aby sme priamo použili hotový- modul s protokolom MQTT, pričom priama analýza príkazu AT je pohodlnejšia.
Prípadová štúdia:
Diaľkové ovládanie svetiel a získanie aktuálnej teploty v miestnosti.
V tomto prípade ide vlastne o jednu z najjednoduchších aplikácií MQTT. Po prvé, vstavaná riadiaca doska v miestnosti je hlavne pripojená k serveru cez WIFI, ktorý môže ovládať spínač svetla a tiež zbierať teplotu. Ďaleko vzdialené koncové zariadenie je mobilný telefón.
Aby komunikácia fungovala, musia byť najprv pripojené k rovnakému serveru MQTT.
Informácie o teplote na strane zariadenia zhromažďuje zariadenie, takže potrebuje publikovať zozbierané údaje do témy „Teplota“, zatiaľ čo mobilný telefón získava informácie o teplote, takže sa musí prihlásiť na odber témy „Teplota“. Akonáhle zariadenie odošle informáciu o teplote do „témy teploty“, túto tému prijme mobilný telefón.
Ovládanie svetiel na strane zariadenia vykonáva zariadenie, takže sa musí prihlásiť k téme „spínač svetiel“, zatiaľ čo mobilný telefón ovláda vypínač svetiel, takže musí publikovať informácie o ovládaní k tejto téme „vypínač svetiel“. Keď mobilný telefón odošle správu so zapnutým svetlom na tému „zapnuté“, túto tému prijme terminál a potom sa vykoná príkaz zapnutia.




