Učinkovita i sigurna IoT povezivost s MQTT-om i pametnim pristupnicima

  • MQTT nudi lagane, pouzdane i sigurne poruke temeljene na objavljivanju/pretplati, idealne za IoT uređaje s ograničenim resursima i nestabilne mreže.
  • MQTT pristupnici djeluju kao most između lokalnih senzora i cloud platformi, prevodeći različite protokole u MQTT i konsolidirajući podatke u središnjem brokeru.
  • Arhitektura s centralnim brokerom olakšava skalabilnost, razdvajanje hardvera i softvera te integraciju s analitikom, velikim podacima i uslugama automatizacije.
  • MQTT se intenzivno koristi u industriji, LPWAN-u, logistici, pametnim domovima i automobilskoj industriji, pokazujući svoju zrelost i svestranost u stvarnim IoT projektima.

Internet stvari (MQTT)

Kad pričate povezati milijune IoT uređaja Za pouzdanu, laganu i sigurnu komunikaciju, ime koje se uvijek pojavljuje je isto: MQTT. Ovaj protokol postao je ključna komponenta za senzore, industrijske pristupnike, pametne kućne uređaje i cloud platforme za komunikaciju bez preopterećenja mreže ili naglog povećanja potrošnje energije.

Daleko od toga da je to samo „još jedan protokol“, MQTT savršeno odgovara stvarnim potrebama Interneta stvariNestabilne mreže, smiješno niska propusnost, vrlo ograničen hardver, zahtjevna industrijska okruženja ili aplikacije gotovo u stvarnom vremenu poput kibernetičkih tvornica, energetske telemetrije ili napredne kućne automatizacije. Pogledajmo smireno i detaljno kako to funkcionira, kakvu ulogu igra u IoT povezivosti, što je MQTT pristupnik i u kojim specifičnim slučajevima ima više smisla koristiti ga u usporedbi s drugim opcijama.

Što je MQTT i zašto je postao toliko popularan u IoT-u?

MQTT (Message Queuing Telemetry Transport) je lagani, otvoreni standardni protokol za razmjenu poruka Dizajniran posebno za komunikaciju između strojeva (M2M) i, šire gledano, za Internet stvari. Njegov cilj je vrlo jasan: omogućiti slanje i primanje podataka između uređaja čak i ako je mreža loša, propusnost ograničena, a uređaj ima vrlo malo memorije ili računalne snage.

Za razliku od klasičnog klijent-poslužitelj modela, MQTT koristi arhitektura objavljivanja/pretplate Temelji se na središnjem posredniku koji se naziva broker. Uređaji ne komuniciraju izravno jedni s drugima, već objavljuju poruke u određenim temama i pretplaćuju se na teme koje ih zanimaju. Broker je odgovoran za primanje svih tih poruka, njihovo filtriranje i dostavu odgovarajućim klijentima.

Ovaj način rada čini MQTT izuzetno fleksibilan i skalabilanUmjesto stotina ili tisuća teško upravljivih point-to-point veza, sve je orkestrirano putem brokera, koji može podnijeti od nekoliko uređaja do milijuna, ovisno o implementaciji i dostupnim resursima.

Ključne tehničke značajke MQTT-a za IoT

Lagan i učinkovit protokol

Jedan od glavnih razloga zašto je MQTT toliko popularan u IoT-u je taj što je smiješno laganoImplementacija na uređaju može zauzeti vrlo malo koda i zahtijevati vrlo malo resursa, što ga čini idealnim za skromne mikrokontrolere, jeftine senzore ili opremu na baterije.

MQTT kontrolna poruka u svojoj minimalnoj verziji može imati samo dva bajta podatakaNadalje, zaglavlja poruka su vrlo kompaktna, što minimizira komunikacijske troškove. Ovaj dizajn je savršen za scenarije s mala propusnost ili skupe mreže (kao što su neke mobilne mreže ili LPWAN-ovi), gdje je svaki bajt važan.

U usporedbi s težim protokolima, poput HTTP-a sa svojim složenim zahtjevima i opširnim zaglavljima, MQTT omogućuje optimizirati korištenje mrežeOvo je ključno kada tisuće uređaja komuniciraju svakih nekoliko sekundi.

Predložak za objavljivanje/pretplatu s temama

MQTT se temelji na modelu publikacija/pretplata na temeTo su tekstualni nizovi (u UTF-8) koji organiziraju informacije u razine. Na primjer, u pametnom domu mogli bismo imati:

  • kuća/dnevni boravak/temperatura
  • kuća/kuhinja/dim
  • kuća/garaža/vrata

Senzor temperature u dnevnoj sobi bi objavljivao svoja očitanja na temu kuća/dnevni boravak/temperaturaDok bi se aplikacija za praćenje pretplatila na istu temu kako bi primala sve dolazne poruke. Na taj način, dodavanje novih uređaja ili potrošača podataka jednostavno je kao koristite odgovarajuće teme, bez potrebe za promjenom postojeće infrastrukture.

Ovaj sustav, iako nije baš klasični red poruka, prilično je sličan modelima temeljenim na redovima: uređaji generiraju poruke i šalju ih središnjoj točki (brokeru), a zatim Sustavi za obradu troše te podatke prema njihovim potrebama. To znatno olakšava skaliranje sustava povećanjem broja potrošača bez promjene senzora.

Kvaliteta usluge (QoS) i pouzdanost

Mnogi IoT uređaji se povezuju putem mreže s visokom latencijom, niskom propusnošću i ograničenom pouzdanošćukao što su neispravne mobilne mreže ili preopterećene bežične veze. MQTT uključuje niz mehanizama kako bi se osigurala isporuka poruka u tom kontekstu.

Protokol definira tri razine kvaliteta usluge (QoS):

  • QoS 0 – „najviše jednom“Poruka se šalje samo jednom, bez potvrde. To je najbrža i najlakša metoda, ali neke se poruke mogu izgubiti.
  • QoS 1 – „barem jednom“To osigurava da poruka stigne, iako bi mogla stići duplicirana. Sustav potvrde koristi se za jamčenje dostave.
  • QoS 2 – „točno jednom“Ovo je najrobustnija razina. Osigurava da se svaka poruka dostavi jednom i samo jednom, koristeći četverofazno rukovanjeMalo je teži, ali neophodan u određenim osjetljivim slučajevima.

Zahvaljujući ovim QoS razinama, MQTT se može prilagoditi različiti slučajevi upotrebeod telemetrije gdje se ništa ne događa ako se izgubi određeni dio podataka, do kritičnih sustava gdje bi dupliciranje ili gubitak poruke bilo neprihvatljivo.

Upravljanje ponovnim vezama i nestabilnim mrežama

Još jedna prednost je što je MQTT dizajniran za okruženja s čestim prekidima vezeProtokol uključuje značajke koje smanjuju vrijeme potrebno za ponovno povezivanje uređaja s brokerom, što je bitno na mobilnim ili Wi-Fi mrežama upitne kvalitete; poboljšavajući sigurna WiFi veza mogu nadopuniti te sposobnosti.

Osim toga, broker može upravljati zadržanim porukama, stanjima sesija i drugim značajkama koje omogućuju uređajima nastaviti komunikaciju bez gubitka konteksta svaki put kad mreža padne i ponovno se uključi.

Sigurnost i enkripcija

U IoT-u, sigurnost nije opcionalna. MQTT uključuje podršku za šifriranje i autentifikacija Oslanjanje na moderne protokole: TLS 1.3 može se koristiti za šifriranje kanala, autentifikaciju putem klijentskih certifikata, OAuth i druge tehnike uobičajene u poslovnim i cloud okruženjima.

To omogućuje šifriranje poruka tijekom prijenosa i primjenu Kontrole pristupa o tome tko može objavljivati ​​ili se pretplatiti na određene teme, štiteći i povjerljivost i integritet informacija, što je posebno važno u industrijskom, energetskom ili zdravstvenom okruženju.

Opsežna podrška za sve jezike i platforme

MQTT ima zrele implementacije brokera i klijenata na više jezika (Python, C, C++, Java, JavaScript, Go, itd.) i s vrlo aktivnom zajednicom. To programerima olakšava integraciju IoT uređaja s postojećim sustavima, bazama podataka, alatima za velike podatke ili uslugama u oblaku bez ponovnog izmišljanja kotača.

Budući da je protokol otvorenog koda s dobro testirane knjižniceKrivulja učenja je razumno kratka, a rizik od problema s kompatibilnošću je smanjen, što ga čini vrlo atraktivnim za projekte u rasponu od malih prototipova do masovnih implementacija.

Uloga MQTT brokera u IoT arhitekturi

Broker je jezgra bilo koje arhitekture temeljene na MQTT-uTo je komponenta koja prima sve poruke, obrađuje ih i distribuira klijentima pretplaćenima na odgovarajuće teme.

Među njegovim glavnim funkcijama su:

  • Primite informacije objavljeno od strane klijenata (senzori, pristupnici, aplikacije itd.).
  • Dekodiranje i filtriranje poruka ovisno o temi, razini QoS-a ili sigurnosnim pravilima.
  • Utvrdite koji su kupci zainteresirani u svakoj poruci (prema vašim pretplatama).
  • Prenesite poruke ciljanim kupcimapoštivanje QoS-a i politika autorizacije.

Postoji više implementacija brokera, obje otvorenog koda, kao i komercijalniJedan od najpoznatijih je Mosquitto, široko korišten u kućnim okruženjima, kod proizvođača, ali i u ozbiljnijim primjenama, koji omogućuje upravljanje od nekoliko do tisuća klijenata s relativno jednostavnom konfiguracijom.

MQTT u praksi: Arduino, ESP8266 i lokalne mreže

Internet stvari (MQTT)

U mnogim kućnim ili poluprofesionalnim IoT projektima, prilično tipičan scenarij uključuje MQTT broker koji radi na Raspberry Piju ili PC-u unutar lokalne mreže i raznih uređaja kao što su Arduino s aplikacijom Arduino IoT Cloud Remote ili ESP8266 spojeni kao klijenti.

Na primjer, mogli biste imati Arduino s DHT22 temperaturnim senzorom koji periodično objavljuje očitanja na temu poput kuća/dnevni boravak/temperaturaU međuvremenu, drugi Arduino ili mobilna aplikacija pretplaćuje se na istu temu kako bi prikazivala temperaturu u stvarnom vremenu. Broker, u ovom slučaju Mosquitto, odgovoran je za primanje poruka s prvog Arduina i njihovu dostavu drugom, bez potrebe da se međusobno poznaju ili upravljaju izravnom vezom.

Ova arhitektura ima jednu veliku prednost: Skalabilno je gotovo bez naporaMožete dodati više senzora, više potrošača podataka i povezati ih s bazama podataka, sustavima strojnog učenja ili nadzornim pločama za vizualizaciju bez mijenjanja ponašanja već raspoređenih uređaja. Samo trebate eksperimentirati s temama i pretplatama.

Zašto MQTT, a ne samo HTTP?

Vrlo često pitanje je isplati li se uopće koristiti MQTT kada se, naizgled, sve može riješiti pomoću... izravni HTTP zahtjevi na ESP8266 ili slično, otvaranjem porta na ruteru i to je to, ili čak s WebSockets na Androidu.

Odgovor je da, iako tehnički moguće, MQTT nudi nekoliko važnih prednosti:

  • Niža prosječna latencija i manji opterećenje u čestoj komunikaciji, posebno kod kratkih poruka koje se šalju svakih nekoliko sekundi.
  • Izvorni pub/subMobilni telefon ne mora izravno komunicirati sa svakim uređajem; samo treba komunicirati s brokerom.
  • Centralizirano upravljanje sigurnošću i autentifikacijom na brokeru, umjesto repliciranja logike na svakom uređaju.
  • Jednostavnost skaliranjaAko sutra broj uređaja poraste s 5 na 500, ne morate otvarati 500 portova niti redizajnirati cijelu topologiju.
  • Izvorna podrška za ponovna povezivanja i QoS razmišljajući o nestabilnim mrežama, nešto što HTTP ne nudi prema zadanim postavkama.

U tipičnom scenariju, vaša mobilna aplikacija bi se povezala s MQTT brokerom (bilo unutar LAN-a pomoću prosljeđivanja portova ili s cloud brokerom), objavila poruku u kontrolnoj temi (na primjer kuća/dnevni boravak/svjetlo/set), a ESP8266, pretplaćen na tu temu, primio bi naredbu gotovo trenutno. Samo trebate otkriti brokera.ne svaki uređaj na mreži.

Što se tiče usluga poput io.adafruit.com i njihovih intervala aktivacije (svakih 15 minuta u besplatnoj verziji, svakih 5 sekundi u plaćenoj verziji), to je ograničenja određene uslugeNije problem sam MQTT protokol. Sam protokol omogućuje vrlo nisku latenciju; problem je što pružatelj usluga nameće ograničenja učestalosti korištenja.

Videopozivi i streaming u stvarnom vremenu s WebRTC-om i SDK-ovima
Povezani članak:
Videopozivi i streaming u stvarnom vremenu s WebRTC-om i SDK-ovima

MQTT Gateway: pristupnik između senzora i oblaka

Što je MQTT pristupnik?

Takozvani „MQTT pristupnik“ ili MQTT pristupnik je, u biti, posrednički uređaj između senzora ili lokalnih uređaja i IoT platforme ili MQTT brokeraNjegova glavna funkcija je prikupljanje podataka u različitim protokolima (npr. Bluetooth, žičani senzori, Modbus itd.), njihovo pretvaranje u MQTT i slanje u oblak ili centralnom brokeru.

U mnogim slučajevima, MQTT pristupnik se implementira kao Ethernet pristupnik sa specifičnim softverom koji djeluje kao MQTT klijent. Ovaj pristupnik može imati radio sučelja, industrijske ulaze i izlaze ili povezivost s fieldbusom i odgovoran je za prevođenje svega toga u MQTT jezik kako bi ih ujedinio.

Prednosti MQTT pristupnika (uključujući Bluetooth MQTT)

MQTT-bazirani pristupnici, posebno oni koji integriraju Bluetooth, nude nekoliko zanimljivih prednosti:

  • Vrlo lagane porukešto čini komunikaciju učinkovitom čak i kada mnogi senzori istovremeno šalju podatke.
  • Dvosmjerna razmjena porukaOmogućuju komunikaciju i od oblaka do uređaja i od uređaja do oblaka, ne samo telemetriju uzlazne veze.
  • Pouzdana dostava podržano razinama QoS-a, osiguravajući da poruke stižu u skladu s konfiguriranom razinom jamstva.
  • ugrađena sigurnostPristupnici obično podržavaju TLS enkripciju i autentifikaciju certifikata, tako da podaci koji prolaze kroz pristupnik sigurno dopiru do oblaka.

U slučaju a MQTT Bluetooth pristupnikUređaj skenira i detektira sve BLE senzore u dometu, upravlja komunikacijom s njima i centralizira prijenos podataka MQTT brokeru. Iz perspektive IoT platforme, svi ovi Bluetooth senzori "govore MQTT", iako to zapravo čine putem pristupnika.

Kako MQTT Gateway radi i kako ga konfigurirati

Općenito govoreći, tipičan tok MQTT pristupnika je:

  1. Skenira i otkriva senzore i uređaje unutar svog dometa (npr. putem Bluetootha ili žičanih mreža).
  2. Prikupite podatke od tih senzora putem odgovarajućih protokola.
  3. Prevedite te podatke u MQTT format (definirajući odgovarajuće teme i korisne sadržaje).
  4. Objavite podatke o brokeru ili na odabranoj IoT platformi.

Konfiguracija fizičkog pristupnika prvo uključuje montaža hardveraIspravno ožičenje, odvajanje priključaka senzora i radio modula te odabir porta, MAC adrese i statičke IP adrese kako bi se osigurala jedinstvena identifikacija na mreži.

Zatim odabirete modul koji će MQTT klijent pokrenuti, na primjer:

  • Arduino + W5100 Ethernet modul.
  • Modul ESP8266 s WiFi povezivošću.

Firmver definira Teme izdavaštva i pretplateNa primjer, prefiks poput MOJ_MQTT_OBJAVLJENI_PREFIKS_TEME/ID_IZ_ČVOROVA/ID_SENZORA mogao bi generirati teme kao što su mygateway1-out/2/1/1/0/49, dok bi se za slanje naredbi senzorima koristio prefiks pretplate kao što je MY_MQTT_SUBSCRIBE_TOPIC_PREFIXšto dovodi do tema tipa mygateway1-in/2/1/1/0/49.

Nakon konfiguracije, toplo se preporučuje testiranje MQTT pristupnika kod poznatog brokera, kao što je Mosquitto, kako bi se provjerite jesu li poruke ispravno primljeneObjavljuju se u očekivanim temama, a pretplaćeni uređaji primaju ono što bi trebali primiti.

MQTT Gateway kao most prema centralnom poslužitelju

Kada postavljate MQTT uređaje na više fizičkih lokacija, obično vam je potrebno konsolidirati sve te podatke na zajedničkom poslužitelju ili na centraliziranoj cloud platformi. Tu MQTT pristupnik blista kao most.

Ideja je instalirati MQTT pristupnik na svakoj lokaciji gdje postoje IoT uređaji. Svaki pristupnik prikuplja informacije iz svog lokalnog okruženja, tj. Dodaj i proslijedi na centralni poslužitelj (ili cloud brokera) pomoću MQTT-a. Na taj način možete imati globalni pregled svih podataka bez gubitka lokalne kontrole i uz optimiziranu potrošnju mreže.

Osim toga, ovi pristupnici mogu sigurno s vlastitim certifikatimaMehanizmi TLS enkripcije i autentifikacije štite senzore i IoT edge koji ostaju "iza" pristupnika. Također mogu lokalno pohranjivati ​​informacije, prilagoditi korisničko sučelje za upravljanje uređajima u blizini i po potrebi dodati kompatibilnost s drugim industrijskim protokolima.

Kompatibilnost MQTT-a s cloud platformama i drugim protokolima

Jedna od najvećih prednosti MQTT-a je to što je Kompatibilno s većinom glavnih cloud IoT platformiMnogi industrijski MQTT pristupnici standardno rade sa:

  • Azure IoT.
  • Google Cloud IoT.
  • AWS IoT.
  • IBM Watson IoT.

Pristupnik interpretira podatke koje prima od senzora i Prenosi ih na platformu u MQTT formatu.Korisnici se samo trebaju pretplatiti na relevantne teme kako bi mogli pregledati ili obraditi informacije u bilo kojem trenutku.

Nadalje, mnoge od ovih modnih pista mogu poslužiti kao pretvarač protokolaIntegracijom mreža poput Modbus TCP-a s MQTT-om i ponudom udaljenih web panela za upravljanje grupama uređaja, MQTT postaje središnja komponenta hibridnih arhitektura gdje naslijeđeni sustavi koegzistiraju s novim IoT rješenjima.

Primjeri MQTT-a i IoT-a iz stvarnog svijeta

Industrijska okruženja i telemetrija

U industrijskom svijetu, MQTT je već de facto standard za prijenos telemetrijskih podataka od senzora i opreme distribuirane u tvornicama, rudarskim pogonima, naftnim i plinskim postrojenjima ili poljoprivredno-prehrambenim tvrtkama.

Tvrtke instaliraju brojne senzore koji mjere parametre poput temperature, tlaka, protoka, vibracija i potrošnje energije. Ti se podaci šalju putem MQTT-a analitičkim sustavima koji Oni otkrivaju nedosljednosti, trendove i prilike za poboljšanje. u operacijama. Zahvaljujući tome, procesi se mogu optimizirati, kvarovi predvidjeti i neplanirani zastoji smanjiti.

Mreže širokog područja male snage (LPWAN)

LPWAN (Low Power Wide Area Network) mreže su dizajnirane za uređaji vrlo male snage koji šalju male poruke na velike udaljenostiMreže s visokom latencijom i ograničenom propusnošću obično su problematične. MQTT je savršen izbor za ovo okruženje jer su njegove poruke lagane, podržava kvalitetu usluge i prilagođava se nepouzdanim mrežama.

U tvrtkama koje koriste LPWAN za slanje podataka senzora u cloud rješenja, MQTT omogućuje prenositi velike količine poruka bez preopterećenja mreže i osiguravajući, koliko je to moguće, da podaci dođu do sustava za analizu i praćenje.

Društvene mreže i masovne poruke

Upečatljiv primjer korištenja MQTT-a izvan klasičnog industrijskog okruženja je onaj od Facebookgdje se koristi kao primarni komunikacijski protokol za upravljanje ogromnom količinom poruka u stvarnom vremenu. Također igra ulogu u slanju poruka platformama poput Instagrama.

Činjenica da tvrtka te veličine kladi se na MQTT pojačava ideju da je to robustan, skalabilan protokol pogodan za scenarije visoke konkurentnostine samo za male IoT projekte.

Pametni domovi i kućna automatizacija

U domaćoj sferi, MQTT je postao jedan od Omiljeni protokoli za automatizaciju pametnih domovaBesprijekorno se integrira s cloud platformama poput Azurea ili IBM Watsona, kao i s lokalnim sustavima automatizacije.

Pomoću MQTT-a možete pratiti potrošnja energije u kućanstvukontrolirati rasvjetu, pratiti temperaturu ili kvalitetu zraka u stvarnom vremenu i koordinirati više uređaja (termostate, rolete, sustave za navodnjavanje itd.), uključujući uređaje kao što su Xiaomi Velabez potrebe da svaki uređaj izravno komunicira s ostalima. MQTT Bluetooth pristupnik, na primjer, može centralizirati sve BLE senzore u kući i povezati ih s jednim brokerom.

Automobilska sekcija

Digitalna transformacija u automobilskoj industriji uključuje povezivanje vozila, proizvodnih linija i sustava upravljanja. MQTT se koristi kao pouzdan kanal za razmjenu poruka između oblaka i vozilaomogućujući slanje telemetrijskih podataka, daljinsku dijagnostiku i ažuriranja parametara.

Ova sposobnost komunikacije u gotovo stvarnom vremenu, čak i uz promjene u mobilnoj povezivosti, čini MQTT vrlo atraktivnom opcijom za proizvođače automobila i pružatelje usluga.

Transport i logistika

U transportu i logistici, kapacitet praćenje voznog parka i robe u pokretu Ključno je. MQTT se koristi za slanje podataka o položaju, statusu tereta, događajima otvaranja vrata ili uvjetima okoline unutar kontejnera.

Korištenjem laganog sustava za razmjenu poruka i arhitekture temeljene na brokerima, moguće je pratiti velike flote u stvarnom vremenu s niskom latencijom i bez preopterećenja mobilnih ili satelitskih mreža koje se koriste za vezu.

Skalabilne arhitekture i razdvajanje hardvera i softvera

Jedna od velikih prednosti primjene MQTT-a u IoT projektu je ta što omogućuje jasno odvojiti hardverski sloj od softverskog slojaSenzori i uređaji bave se samo slanjem podataka brokeru i primanjem naredbi od određenih tema; sve što se događa od tamo (pohrana, analiza, vizualizacija) može se neovisno razvijati.

Ovaj pristup često podsjeća na uzorak mikroservisagdje svaka komponenta radi jednu stvar i radi je dobro. U našem slučaju, hardverski uređaj fokusira se na mjerenje i objavljivanje; druge usluge obrađuju, pohranjuju, vizualiziraju ili primjenjuju umjetnu inteligenciju, bez potrebe da senzor "zna" išta o njima.

Zahvaljujući ovom razdvajanju, ako se sutra odlučite prijeći s jednostavne web stranice za vizualizaciju na Raspberry Piju na složeni sustav velikih podataka i strojnog učenja U oblaku ne morate dirati senzore. Oni će nastaviti slati podatke brokeru, a vi ćete trebati samo povezati nove potrošače koji se pretplate na postojeće teme.

Čemu služi aplikacija Arduino IoT Cloud Remote za Android?
Povezani članak:
Što je Arduino IoT Cloud Remote aplikacija za Android i kako je maksimalno iskoristiti?

Zajedno, MQTT i njegovi povezani pristupnici čine rješenje vrlo robustan za IoT povezivostLagan, skalabilan, siguran, kompatibilan s glavnim cloud platformama i podržava sve vrste mreža, od LPWAN-a do kućnog WiFi-ja ili industrijskog Etherneta. Sve to, u kombinaciji s modelom objavljivanja/pretplate i mogućnošću dodavanja pristupnika koji premošćuju protokole, čini ga jednom od ključnih komponenti na kojima se gradi sadašnjost i budućnost Interneta stvari. Podijelite informacije kako bi više korisnika saznalo o temi.