MQTT (Message Queuing Telemetry Transport) tarkoittaa inhimillisesti sanottuna Message Queuing Telemetry Transport. Muutama vuosi sitten, kun PC-puolella monien insinöörien yleisyys ei yksinkertaisesti kuullut kiertokulkutermiä, mutta Internet of Things (IoT) -tekniikan asteittaisen kehittymisen myötä tämä protokolla näkyy yhä useammin suurten insinöörien silmissä. Tämä on saanut monet insinöörit tietämään vain nimen, mutta eivät sen merkitystä, ja monet ihmiset jopa luulivat, että tämä on eräänlainen IoT:n kehityksen myötä kehitetty protokolla. Itse asiassa MQTT-protokolla keksittiin ensimmäisen kerran yli 20 vuotta sitten, ja vuonna 1999 Andy Stanford Clark IBM:stä ja Alan Nippe Cirrus Linkistä kirjoittivat ensimmäisen version protokollasta. Protokolla on sittemmin standardoitu kansainvälisesti ISO-standardin (ISO/IEC PRF 20922) mukaiseksi julkaisu/tilaa{6}}-pohjaiseksi viestintäprotokollaksi. IBM toimitti MQTT version 3.1 -spesifikaation Structurated Information Standards Facilitation Organisaatiolle vuonna 2013 sekä peruskirjan, jolla varmistetaan, että MQTT:tä on voitu käyttää vain pieni määrä muutoksia. useissa markkinarakoissa sen jälkeen. Kun IoT:n tekninen infrastruktuuri oli saatu valmiiksi, tämä ikivanha protokolla alkoi saada ensimmäisen keväänsä.
Verkon kuljetus- ja sovelluskerrokset
Kuten kaikki tiedämme, esineiden internetin nopea kehitys ei toistaiseksi voi jättää viestintäverkkoinfrastruktuuria, nyt voit ohjata mitä tahansa maailman kolkkaa huoneen valokytkimen kodissa tai tehdä teollista ohjausta, voit myös kauko-ohjata robotin liikettä, tämän tekniikan kypsyys perustuu verkkoviestintään perustana. Nykyisen verkkotekniikan päätekniikka on OSI-seitsemän-kerroksen malli, varsinainen sovellus käyttää tietysti TCP/IP-neli-kerroksen verkkomallia.
Kolmannen siirtokerroksen TCP/IP-neli{0}}-kerroksinen verkkomalli on kuuluisa TCP/IP-protokolla, tätä protokollan päätarkoituksen kerrosta käytetään tietokoneen lähettämiseen verkon kautta tiedonsiirtoon toisen yllä olevan koneen määritettyyn IP-osoitteeseen, esimerkiksi IP-osoite "192.168.137.19 Esimerkiksi jos kone, jonka IP-osoite on "19.1s.7, lähetä a16. 16-tavuinen binaaripaketti koneeseen, jonka IP-osoite on "192.168.137.10", sen lähettämiseen on mahdollista käyttää TCP/IP-protokollaa. Sen sijaan, kun siirrämme tietoja TCP:tä käyttäen, käytämme yleisesti socketteja.
Mutta kun IP-osoite "192.168.137.19" kone lähettää tietoja "192.168.137.10" koneeseen, tämä paketti TCP-paketteja sisällä tiedot on itse asiassa puolesta, mitä tarkoitus vastaanottavan pään IP-osoite vastaanottavan pään "192.168.137.10" on jätetty tämän kerroksen datan siirto-ongelman, kuinka tämä paketti edellä oleva kone parse. protokollien kerros ratkaista, mikä on sovelluskerroksen protokollia. Tietysti, jos protokollasi eivät halua antaa tavalliselle tietokoneverkolle resoluutiota, voit myös mennä kehittämään omia sovelluskerroksen protokollia, sillä ei ole väliä, kuljetuskerroksen tarkoitus on vain välittää tiedot kohdekoneelle sen päälle.
Päivittäisessä työssämme, viihteessämme kohtaavat usein erilaisia sovelluskerroksen protokollia, kuten kun avaat verkkosivun, kuva näkyy kyseisessä asennossa, alaspäin osoittava painike on saavuttaa mikä toiminto, tämä on HTML HyperText Transfer Protocol (englanniksi: HyperTextTransferProtocol, lyhenne: HTTP) sovittu. Tämä varmistaa, että kun mikä tahansa laite pyytää verkkosivustosi sivua, laite voi näyttää sen oikein. HTTP:n lisäksi on olemassa monia muita sovelluskerroksen protokollia, kuten DNS, FTP jne., ja MQTT-protokolla, joka on tänään päähenkilömme, on yksi niistä.
Miksi IoT suosii MQTT:tä?
Miksi MQTT loistaa IoT-tilassa, koska kaikki suuret sovelluskerroksen protokollat ovat saatavilla olemassa oleville sovelluksillemme. MQTT-protokollan valinta ei ole perusteeton; MQTT on kevyt, joustava verkkoprotokolla, joka pyrkii löytämään oikean tasapainon IoT-kehittäjille:
Tämä kevyt protokolla voidaan toteuttaa voimakkaasti rajoitetuissa laitelaitteistoissa ja korkean latenssin/kaistanleveyden rajoitetuissa verkoissa.
Sen joustavuus mahdollistaa erilaisten IoT-laitteiden ja -palveluiden sovellusskenaarioiden tukemisen.
Useimmat kehittäjät tuntevat jo HTTP-verkkopalvelut. Mikset siis antaisi IoT-laitteiden muodostaa yhteyden verkkopalveluihin? Laitteet voivat lähettää tietonsa HTTP-pyyntöjen muodossa ja vastaanottaa päivityksiä järjestelmästä HTTP-vastauksina. Tällä pyyntö- ja vastausmallilla on joitain vakavia rajoituksia:
HTTP on synkronointiprotokolla. Asiakkaan on odotettava palvelimen vastausta. verkkoselaimilla on tämä vaatimus, mutta skaalautuvuuden kustannuksella. IoT-tilassa suuri määrä laitteita ja verkko, joka on todennäköisesti epäluotettava tai jolla on korkea latenssi, tekevät synkronisesta viestinnästä ongelmallista. Asynkroniset viestintäprotokollat sopivat paremmin IoT-sovelluksiin. Anturit lähettävät lukemia ja antavat verkon määrittää parhaan reitin ja ajan niiden toimittamiseen kohdelaitteisiin ja -palveluihin.
HTTP on yksisuuntainen. Asiakkaan on aloitettava yhteys. IoT-sovelluksissa laite tai anturi on yleensä asiakas, mikä tarkoittaa, että he eivät voi passiivisesti vastaanottaa komentoja verkosta.
HTTP on yksi{0}}yhteen{1}}protokolla. Asiakas tekee pyynnön ja palvelin vastaa. Viestien toimittaminen kaikille verkon laitteille ei ole vain vaikeaa, vaan myös kallista, mikä on yleinen tapaus IoT-sovelluksissa.
HTTP on raskaan sarjan protokolla, jossa on monia otsikoita ja sääntöjä. Se ei sovellu rajoitettuihin verkkoihin.
Näistä syistä useimmat tehokkaat{0}}skaalautuvat järjestelmät käyttävät asynkronisia viestiväyliä sisäiseen tiedonvaihtoon verkkopalvelujen sijaan.
Tilaa/julkaise malli
Mielenkiintoista on, että tämä MQTT-protokollapalvelin on itse asiassa paljon yksinkertaisempi malli kuin web-palvelin, koska se pyrkii olemaan tehokas palvelu. mekanismi, jolla MQTT ensisijaisesti lähettää ja vastaanottaa viestejä, on jossain määrin samankaltainen kuin julkisen verkkosivustomme ja teidän, lukijoiden, välinen suhde.
Todellisessa maailmassa minä ja sinä olemme samanlaisia kuin jos MQTT-laite on kytketty yhtenäiseen palvelimeen, tilaat meidät kiinnostuksesta tai jonkinlaisesta kiintymyksestä julkiseen numeroomme, ja kun joka päivä lähetän tekstiviestin, tulet näkyviin matkapuhelimeen, jolle lähetin viestin, tämä prosessi, saat tietoni tavalla, joka tunnetaan nimellä Tässä prosessissa, tapa, jolla saat tietoni, tämä julkaisu on nimeltään " "julkaiseminen". Ja jokainen voi artikkeliini, voit vapaasti jättää viestin minulle, tämä käyttäytyminen on kaikkien "julkaisemaan" käyttäytymistä, ja olen aina edessä push nähdä kaikkien viestin, tämä on eräänlainen "tilaus" käyttäytymistä. Tässä prosessissa kaikella ulkoisella tiedolla ei ole mitään tekemistä kanssamme, me yksinkertaisesti kommunikoimme tietovirran kanssa kahteen suuntaan. Myös MQTT:n viestimekanismi perustuu Publish - Subscribe -malliin. MQTT-viestien toimitusmekanismi perustuu myös "Julkaise" - "Tilaa" -malliin.
MQTT:n erityisvaiheet ovat:
Vaihe 1:Käytä ensimmäistä hankkiaksesi MQTT-palvelimen ja luo sitten uusi MQTT-viestintätuote.
Vaihe 2:Siirry sitten muodostamaan yhteys tähän palvelimeen. Kaksi tärkeää parametria yhteyden muodostamiseksi palvelimeen on isäntänumero (verkkotunnuksen nimi tai IP-osoite) ja portin numero.
Vaihe 3:Jos käytät kolmannen osapuolen{0}}pilvipalvelinalustaa, sinun on ehkä kirjauduttava tähän laitteeseen käyttämällä tuotetunnusta ja todennustietoja, jotka molemmat löytyvät Device Cloudin taustaohjelmasta.
Kun nämä kolme vaihetta on tehty, voit tilata tai lähettää viestejä vastaavista aiheista.
Kokoan asiakirjan näyttääkseni, kuinka voit "huorata" China Mobilen pilvipalvelun avoimen pääsyn alustan.
Nämä kolme vaihetta koskevat sekä sovellusohjelmistojen kehitystä että mikro-ohjainkehitystä. Mikro-ohjainkehityksessä, jos käytät AT-komentoja ja ulkoista WIFI-moduuliviestintää, yleismoduulissa voi olla AT + MQTT -komentoja, mikä on paras tapa vähentää mikrokontrolleriin kohdistuvaa painetta huomattavasti. Tai voit käyttää suoraan TCP/IP-siirtokerroksen tietoja ja jäsentää sitten MQTT:n, mikä edellyttää, että käyttäjä tuntee syvällisesti MQTT-protokollan voidakseen jäsentää myös omia Json-tietojaan, joten yleensä sulautettuja laitteita tehtäessä suositellaan, että käytämme suoraan -valmis moduulia MQTT-protokollan kanssa. AT-komennon jäsentäminen suoraan on kätevämpää.
Tapaustutkimus:
Valojen kaukosäädin ja nykyisen huonelämpötilan hallinta.
Tässä tapauksessa se on itse asiassa yksi MQTT:n yksinkertaisimmista sovelluksista. Ensinnäkin huoneen sulautettu ohjauskortti on pääasiassa kytketty palvelimeen WIFI:n kautta, joka voi ohjata valokytkintä ja myös kerätä lämpötilaa. Kaukana oleva päätelaite on matkapuhelin.
Jotta tiedonsiirto toimisi, ne on ensin yhdistettävä samaan MQTT-palvelimeen.
Laitteen puolen lämpötilatiedot kerää laite, joten sen on julkaistava kerätyt tiedot "Lämpötila"-aiheeseen, kun taas matkapuhelin saa lämpötilatiedot, joten sen on tilattava "Lämpötila"-aihe. Kun laite lähettää lämpötilatiedot "lämpötila-aiheeseen", matkapuhelin vastaanottaa aiheen.
Laitteen puolen valonohjaus on laitteen suorittama, joten sen on tilattava "valokytkin"-aihe, kun taas matkapuhelin ohjaa valokytkintä, joten sen on julkaistava ohjaustiedot tähän "valokytkin"-aiheeseen. Kun matkapuhelin lähettää valo päällä -viestin "valo päällä" -aiheeseen, pääte vastaanottaa aiheen ja sitten valo päällä -komento suoritetaan.




