Efikasna i sigurna IoT povezivost sa MQTT-om i pametnim gateway-ima

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

Internet stvari (MQTT)

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

Daleko od toga da je to samo „još jedan protokol“, MQTT se savršeno uklapa u stvarne potrebe Interneta stvari.Nestabilne mreže, smiješno niska propusnost, vrlo ograničen hardver, zahtjevna industrijska okruženja ili aplikacije gotovo u stvarnom vremenu poput sajber fabrika, energetske telemetrije ili napredne kućne automatizacije. Pogledajmo smireno i detaljno kako to funkcionira, kakvu ulogu igra u IoT povezivosti, šta je MQTT gateway i u kojim specifičnim slučajevima ima više smisla koristiti ga u poređenju s drugim opcijama.

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

MQTT (Message Queuing Telemetry Transport - Telemetrijski Transport Redom Reda Poruka) je lagani, otvoreni standardni protokol za razmjenu poruka Dizajniran posebno za komunikaciju između mašina (M2M) i, posljedično, 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, propusni opseg ograničen, a uređaj ima vrlo malo memorije ili računarske snage.

Za razliku od klasičnog klijent-server modela, MQTT koristi arhitektura objavljivanja/pretplate Zasnovan je na centralnom posredniku koji se naziva broker. Uređaji ne komuniciraju direktno jedan s drugim, već objavljuju poruke u određenim temama i pretplaćuju se na teme koje ih zanimaju. Broker je odgovoran za primanje svih ovih poruka, njihovo filtriranje i isporuku odgovarajućim klijentima.

Ovakav način rada omogućava MQTT izuzetno fleksibilan i skalabilanUmjesto stotina ili hiljada teško upravljivih point-to-point veza, sve je orkestrirano putem brokera, koji može obraditi od nekoliko uređaja do miliona, ovisno o implementaciji i dostupnim resursima.

Ključne tehničke karakteristike MQTT-a za IoT

Lagan i efikasan protokol

Jedan od glavnih razloga zašto je MQTT toliko popularan u IoT-u je taj što je smiješno laganImplementacija 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 napajanu baterijama.

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 sa mala propusnost ili skupe mreže (kao što su neke mobilne mreže ili LPWAN-ovi), gdje je svaki bajt važan.

U poređenju sa težim protokolima, kao što je HTTP sa svojim složenim zahtjevima i opširnim zaglavljima, MQTT omogućava optimizirati korištenje mrežeOvo je ključno kada hiljade uređaja komuniciraju svakih nekoliko sekundi.

Predložak za objavljivanje/pretplatu s temama

MQTT je zasnovan na modelu publikacija/pretplata na temeOvo su tekstualni nizovi (u UTF-8 kodu) koji organiziraju informacije u nivoe. Na primjer, u pametnoj kući mogli bismo imati:

  • kuća/dnevna soba/temperatura
  • kuća/kuhinja/dim
  • kuća/garaža/vrata

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

Ovaj sistem, iako nije baš klasičan red poruka, prilično je sličan modelima zasnovanim na redovima: uređaji generišu poruke i šalju ih centralnoj tački (brokeru), a zatim Sistemi za obradu podataka koriste te podatke prema njihovim potrebama. Ovo znatno olakšava skaliranje sistema povećanjem broja potrošača bez promjene senzora.

Kvalitet 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 dostava poruka u tom kontekstu.

Protokol definira tri nivoa kvalitet usluge (QoS):

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

Zahvaljujući ovim QoS nivoima, MQTT se može prilagoditi različiti slučajevi upotrebeod telemetrije gdje se ništa ne događa ako se određeni dio podataka izgubi, do kritičnih sistema 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 funkcije koje smanjuju vrijeme potrebno da se uređaj ponovo poveže s brokerom, što je neophodno na mobilnim ili Wi-Fi mrežama upitnog kvaliteta; poboljšavajući sigurna WiFi veza mogu dopuniti ove mogućnosti.

Osim toga, broker može upravljati zadržanim porukama, stanjima sesija i drugim funkcijama koje omogućavaju uređajima nastaviti komunikaciju bez gubitka konteksta svaki put kada mreža padne i ponovo 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 se može koristiti za šifriranje kanala, autentifikaciju putem klijentskih certifikata, OAuth i druge tehnike uobičajene u poslovnim i cloud okruženjima.

Ovo omogućava šifriranje poruka tokom prenosa i primjenu Kontrole pristupa o tome ko može objavljivati ​​ili se pretplatiti na određene teme, štiteći i povjerljivost i integritet informacija, nešto što je posebno relevantno 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 sa veoma aktivnom zajednicom. Ovo programerima olakšava integraciju IoT uređaja sa postojećim sistemima, bazama podataka, alatima za velike podatke ili uslugama u oblaku bez ponovnog izmišljanja tople vode.

Budući da je protokol otvorenog koda sa dobro testirane bibliotekeKriva 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 jezgro bilo koje arhitekture zasnovane na MQTT-uTo je komponenta koja prima sve poruke, obrađuje ih i distribuira klijentima pretplaćenim na odgovarajuće teme.

Među njegovim glavnim funkcijama su:

  • Primite informacije objavljeno od strane klijenata (senzori, gateway-i, aplikacije itd.).
  • Dekodiranje i filtriranje poruka u zavisnosti od teme, nivoa QoS-a ili sigurnosnih pravila.
  • Utvrdite koji su kupci zainteresovani u svakoj poruci (u skladu s vašim pretplatama).
  • Prenesite poruke ciljnim kupcimapoštujući QoS i politike autorizacije.

Postoji više implementacija brokera, obje otvorenog koda, kao i komercijalniJedan od najpoznatijih je Mosquitto, koji se široko koristi u kućnim okruženjima, kod proizvođača, ali i u ozbiljnijim situacijama, a omogućava upravljanje od nekoliko do hiljada klijenata uz relativno jednostavnu konfiguraciju.

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

Internet stvari (MQTT)

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

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

Ova arhitektura ima jednu ogromnu prednost: Skalabilno je gotovo bez naporaMožete dodati više senzora, više potrošača podataka i povezati ih s bazama podataka, sistemima mašinskog učenja ili kontrolnim 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 da li se zaista isplati koristiti MQTT kada se, naizgled, sve može riješiti pomoću... direktni HTTP zahtjevi na ESP8266 ili slično, otvaranjem porta na ruteru i to je to, ili čak sa WebSockets na Androidu.

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

  • Manja 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 direktno komunicirati sa svakim uređajem; potrebno je samo da komunicira sa brokerom.
  • Centralizirano upravljanje sigurnošću i autentifikacijom na brokeru, umjesto repliciranja logike na svakom uređaju.
  • Jednostavnost skaliranjaAko sutra broj uređaja poraste sa 5 na 500, ne morate otvarati 500 portova ili redizajnirati cijelu topologiju.
  • Izvorna podrška za ponovno povezivanje i QoS razmišljajući o nestabilnim mrežama, nešto što HTTP ne nudi po defaultu.

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

Što se tiče servisa 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ćava vrlo nisku latenciju; problem je što provajder nameće ograničenja učestalosti korištenja.

Video pozivi i streaming u stvarnom vremenu s WebRTC-om i SDK-ovima
Vezani članak:
Video pozivi i streaming u stvarnom vremenu s WebRTC-om i SDK-ovima

MQTT Gateway: prolaz između senzora i oblaka

Šta je MQTT gateway?

Takozvani "MQTT Gateway" ili MQTT gateway je, u suštini, 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 gateway se implementira kao Ethernet gateway sa specifičnim softverom koji djeluje kao MQTT klijent. Ovaj gateway može imati radio interfejse, industrijske ulaze i izlaze ili fieldbus povezivost i odgovoran je za prevođenje svega toga u MQTT jezik radi njihovog objedinjavanja.

Prednosti MQTT gateway-a (uključujući Bluetooth MQTT)

MQTT-bazirani gateway-i, posebno oni koji integrišu Bluetooth, nude nekoliko zanimljivih prednosti:

  • Vrlo lagane porukešto čini komunikaciju efikasnom čak i kada mnogo senzora istovremeno šalje podatke.
  • Dvosmjerna razmjena porukaOmogućavaju komunikaciju i od oblaka do uređaja i od uređaja do oblaka, ne samo telemetriju uzlazne veze.
  • Pouzdana dostava podržano QoS nivoima, osiguravajući da poruke stižu u skladu sa konfigurisanim nivoom garancije.
  • Ugrađena sigurnostGateway-i obično podržavaju TLS enkripciju i autentifikaciju certifikata, tako da podaci koji prolaze kroz gateway sigurno dopiru do oblaka.

U slučaju a MQTT Bluetooth pristupnikUređaj skenira i detektuje sve BLE senzore u dometu, upravlja komunikacijom s njima i centralizuje prenos podataka MQTT brokeru. Iz perspektive IoT platforme, svi ovi Bluetooth senzori "govore MQTT", iako to zapravo čine kroz gateway.

Kako MQTT Gateway funkcionira i kako ga konfigurirati

Općenito govoreći, tipičan tok MQTT gateway-a je:

  1. Skenira i detektuje 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 gateway-a 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 birate modul koji će MQTT klijent pokrenuti, na primjer:

  • Arduino + W5100 Ethernet modul.
  • ESP8266 modul sa WiFi vezom.

Firmver definiše Teme izdavaštva i pretplateNa primjer, prefiks poput MOJ_MQTT_OBJAVLJENI_PREFIKS_TEME/ID_OD_ČVOROVA/ID_SENZORA mogao bi generirati teme kao što su mygateway1-out/2/1/1/0/49, dok bi se za slanje komandi 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 gateway-a kod poznatog brokera, kao što je Mosquitto, kako biste... provjerite da li su poruke ispravno primljeneObjavljuju se u očekivanim temama, a pretplaćeni uređaji primaju ono što bi trebali primati.

MQTT Gateway kao most prema centralnom serveru

Kada implementirate MQTT uređaje na više fizičkih lokacija, obično vam je potrebno konsolidovati sve te podatke na zajedničkom serveru ili na centraliziranoj cloud platformi. Tu MQTT gateway blista kao most.

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

Osim toga, ovi prolazi mogu sigurno s vlastitim certifikatimaTLS mehanizmi za šifriranje i autentifikaciju štite senzore i IoT edge koji ostaju "iza" pristupnika. Oni također mogu lokalno pohranjivati ​​informacije, prilagođavati korisnički interfejs za upravljanje obližnjim uređajima i po potrebi dodavati kompatibilnost s drugim industrijskim protokolima.

Kompatibilnost MQTT-a sa cloud platformama i drugim protokolima

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

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

Gateway 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 sa MQTT-om i ponudom udaljenih web panela za upravljanje grupama uređaja, MQTT postaje centralna komponenta hibridnih arhitektura gdje naslijeđeni sistemi koegzistiraju s novim IoT rješenjima.

Slučajevi upotrebe MQTT-a i IoT-a u stvarnom svijetu

Industrijska okruženja i telemetrija

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

Kompanije instaliraju brojne senzore koji mjere parametre kao što su temperatura, pritisak, protok, vibracije i potrošnja energije. Ovi podaci se putem MQTT-a šalju analitičkim sistemima koji Oni otkrivaju nedosljednosti, trendove i mogućnosti za poboljšanje. u operacijama. Zahvaljujući tome, procesi se mogu optimizirati, kvarovi predvidjeti, a neplanirani zastoji smanjiti.

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

LPWAN (Low Power Wide Area Network) mreže su dizajnirane da uređaji vrlo male snage koji šalju male poruke na velike udaljenostiTipično, mreže s visokom latencijom i ograničenim propusnim opsegom predstavljaju problem. MQTT je savršen izbor za ovo okruženje jer su njegove poruke lagane, podržava kvalitet usluge i prilagođava se nepouzdanim mrežama.

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

Društvene mreže i masovne poruke

Upečatljiv primjer upotrebe 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 kompanija 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.

Pametne kuće i kućna automatizacija

U domaćoj sferi, MQTT je postao jedan od Omiljeni protokoli za automatizaciju pametnih domovaBesprijekorno se integrira s cloud platformama kao što su Azure ili IBM Watson, kao i s lokalnim sistemima automatizacije.

Pomoću MQTT-a možete pratiti potrošnja energije u kućikontrolisati rasvjetu, pratiti temperaturu ili kvalitet zraka u stvarnom vremenu i koordinirati više uređaja (termostati, roletne, sistemi za navodnjavanje itd.), uključujući uređaje kao što su Xiaomi Velabez potrebe da svaki uređaj direktno komunicira s ostalima. MQTT Bluetooth gateway, 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 sistema upravljanja. MQTT se koristi kao pouzdan kanal za razmjenu poruka između oblaka i vozilaomogućavajući slanje telemetrijskih podataka, daljinsku dijagnostiku i ažuriranje parametara.

Ova sposobnost komunikacije u gotovo realnom 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 To je ključno. MQTT se koristi za slanje podataka o položaju, statusu tereta, događajima otvaranja vrata ili uslovima okoline unutar kontejnera.

Korištenjem laganog sistema za razmjenu poruka i arhitekture zasnovane na brokerima, moguće je pratite velike flote u realnom vremenu sa 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 usvajanja MQTT-a u IoT projektu je ta što omogućava jasno odvojiti hardverski sloj od softverskog slojaSenzori i uređaji se bave samo slanjem podataka brokeru i primanjem komandi od određenih subjekata; sve što se odatle dešava (pohranjivanje, analiza, vizualizacija) može se razvijati nezavisno.

Ovaj pristup često podsjeća na obrazac mikroservisagdje svaka komponenta radi jednu stvar i radi je dobro. U našem slučaju, hardverski uređaj se fokusira na mjerenje i objavljivanje; druge usluge se bave obradom, pohranjivanjem, vizualizacijom ili primjenom umjetne inteligencije, bez potrebe da senzor "zna" išta o njima.

Zahvaljujući ovom razdvajanju, ako sutra odlučite da pređete sa jednostavne web stranice za vizualizaciju na Raspberry Pi-ju na složeni sistem velikih podataka i mašinskog 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?
Vezani članak:
Šta je Arduino IoT Cloud Remote aplikacija za Android i kako je maksimalno iskoristiti?

Zajedno, MQTT i njegovi povezani gateway-i formiraju rješenje veoma 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 ovo, u kombinaciji s modelom objavljivanja/pretplate i mogućnošću dodavanja gateway-a koji premošćuju protokole, čini ga jednom od ključnih komponenti na kojima se gradi sadašnjost i budućnost Interneta stvari. Podijelite informacije tako da više korisnika zna o ovoj temi.


Dodaj kao preferirani izvor