Když o tom mluvíš propojit miliony zařízení IoT Pro spolehlivou, snadnou a bezpečnou komunikaci se vždycky objevuje stejný název: MQTT. Tento protokol se stal klíčovou součástí senzorů, průmyslových bran, zařízení chytré domácnosti a cloudových platforem, které umožňují komunikaci bez přetížení sítě nebo prudkého nárůstu spotřeby energie.
Zdaleka ne jen „další protokol“, MQTT dokonale zapadá do skutečných potřeb internetu věcíNestabilní sítě, směšně nízká šířka pásma, velmi omezený hardware, náročná průmyslová prostředí nebo aplikace pracující téměř v reálném čase, jako jsou kybernetické továrny, energetická telemetrie nebo pokročilá domácí automatizace. Pojďme se v klidu a detailně podívat na to, jak to funguje, jakou roli to hraje v konektivitě IoT, co je brána MQTT a v jakých konkrétních případech má větší smysl ji používat ve srovnání s jinými možnostmi.
Co je MQTT a proč se stalo tak populárním v oblasti internetu věcí?
MQTT (Message Queuing Telemetry Transport) je lehký, otevřený standardní protokol pro zasílání zpráv Je navržen speciálně pro komunikaci mezi stroji (M2M) a v širším smyslu pro internet věcí. Jeho cíl je velmi jasný: umožnit odesílání a přijímání dat mezi zařízeními, i když je síť slabá, šířka pásma omezená a zařízení má velmi málo paměti nebo výpočetního výkonu.
Na rozdíl od klasického modelu klient-server používá MQTT... architektura publikování/předplatného Je založen na centrálním zprostředkovateli zvaném broker. Zařízení mezi sebou přímo nekomunikují, ale místo toho publikují zprávy v konkrétních tématech a přihlašují se k odběru témat, která je zajímají. Broker je zodpovědný za příjem všech těchto zpráv, jejich filtrování a doručování příslušným klientům.
Díky tomuto způsobu práce je MQTT extrémně flexibilní a škálovatelnýMísto stovek nebo tisíců obtížně spravovatelných point-to-point spojení je vše řízeno prostřednictvím brokera, který dokáže zvládnout od několika zařízení až po miliony, v závislosti na implementaci a dostupných zdrojích.
Klíčové technické vlastnosti MQTT pro IoT
Lehký a efektivní protokol
Jedním z hlavních důvodů, proč je MQTT v IoT tak populární, je to, že je směšně lehkéImplementace na zařízení může zabrat jen velmi málo kódu a vyžaduje jen velmi málo zdrojů, což je ideální pro skromné mikrokontroléry, levné senzory nebo zařízení napájená z baterií.
Řídicí zpráva MQTT ve své minimální verzi může mít jen dva bajty datZáhlaví zpráv jsou navíc velmi kompaktní, což minimalizuje komunikační režijní náklady. Toto provedení je ideální pro scénáře s malá šířka pásma nebo drahé sítě (jako jsou některé mobilní sítě nebo LPWAN), kde se počítá každý bajt.
Ve srovnání s náročnějšími protokoly, jako je HTTP s jeho komplexními požadavky a podrobnými hlavičkami, umožňuje MQTT optimalizovat využití sítěTo je zásadní, když spolu každých pár sekund komunikují tisíce zařízení.
Šablona pro publikování/předplatné s tématy
MQTT je založen na modelu publikace/předplatné na témataJedná se o textové řetězce (v kódování UTF-8), které organizují informace do úrovní. Například v chytré domácnosti můžeme mít:
- dům/obývací pokoj/teplota
- dům/kuchyň/kouř
- dům/garáž/dveře
Teplotní senzor v obývacím pokoji by odesílal své údaje do tématu dům/obývací pokoj/teplotaZatímco monitorovací aplikace by se přihlásila k odběru všech příchozích zpráv v témže tématu. Tímto způsobem je přidání nových zařízení nebo spotřebitelů dat stejně jednoduché jako používejte vhodná témata, aniž by bylo nutné měnit stávající infrastrukturu.
Tento systém, i když se nejedná o úplně klasickou frontu zpráv, je docela podobný modelům založeným na frontách: zařízení generují zprávy a odesílají je do centrálního bodu (brokera) a poté… Systémy pro zpracování tato data spotřebovávají podle jejich potřeb. Díky tomu je mnohem snazší škálovat systém zvýšením počtu spotřebičů bez nutnosti výměny senzorů.
Kvalita služeb (QoS) a spolehlivost
Mnoho zařízení IoT se připojuje přes sítě s vysokou latencí, nízkou šířkou pásma a omezenou spolehlivostíjako jsou například nepravidelné mobilní sítě nebo přetížené bezdrátové linky. MQTT obsahuje řadu mechanismů, které v tomto kontextu zajišťují doručování zpráv.
Protokol definuje tři úrovně kvalita služeb (QoS):
- QoS 0 – „maximálně jednou“Zpráva se odešle pouze jednou, bez potvrzení. Je to nejrychlejší a nejjednodušší metoda, ale některé zprávy se mohou ztratit.
- QoS 1 – „alespoň jednou“Tím je zajištěno, že zpráva dorazí, i když může dorazit duplicitně. Pro zajištění doručení se používá systém potvrzení.
- QoS 2 – „přesně jednou“Toto je nejrobustnější úroveň. Zajišťuje, že každá zpráva je doručena jednou a pouze jednou, a to pomocí čtyřfázové podání rukyJe trochu těžší, ale v některých citlivých případech nezbytný.
Díky těmto úrovním QoS lze MQTT přizpůsobit různé případy použitíod telemetrie, kde se nic nestane, pokud dojde ke ztrátě konkrétního dat, až po kritické systémy, kde by duplikace nebo ztráta zprávy byla nepřijatelná.
Správa opětovných připojení a nestabilních sítí
Další výhodou je, že MQTT je určen pro prostředí s častými výpadky připojeníProtokol obsahuje funkce, které zkracují dobu potřebnou k opětovnému připojení zařízení k brokerovi, což je nezbytné v mobilních sítích nebo sítích Wi-Fi s pochybnou kvalitou; zlepšují zabezpečené WiFi připojení může tyto schopnosti doplnit.
Kromě toho může broker spravovat zadržené zprávy, stavy relací a další funkce, které umožňují zařízením obnovit komunikaci bez ztráty kontextu pokaždé, když síť vypadne a zase se zapne.
Zabezpečení a šifrování
V IoT není zabezpečení volitelné. MQTT zahrnuje podporu pro šifrování a ověřování Spoléhání se na moderní protokoly: TLS 1.3 lze použít k šifrování kanálu, ověřování pomocí klientských certifikátů, OAuth a dalších technik běžných v podnikovém a cloudovém prostředí.
To umožňuje šifrování zpráv během přenosu a jejich použití Řízení přístupu o tom, kdo může publikovat nebo se přihlásit k odběru určitých témat, s ohledem na ochranu důvěrnosti i integrity informací, což je obzvláště důležité v průmyslovém, energetickém nebo zdravotnickém prostředí.
Rozsáhlá podpora napříč jazyky a platformami
MQTT má zralé implementace brokerů a klientů ve více jazycích (Python, C, C++, Java, JavaScript, Go atd.) a s velmi aktivní komunitou. To vývojářům usnadňuje integraci zařízení IoT se stávajícími systémy, databázemi, nástroji pro velká data nebo cloudovými službami, aniž by museli znovu vynalézat kolo.
Jedná se o open-source protokol s dobře otestované knihovnyKřivka učení je poměrně krátká a riziko problémů s kompatibilitou je snížené, což z něj činí velmi atraktivní nástroj pro projekty od malých prototypů až po masivní nasazení.
Role brokera MQTT v architektuře IoT
Makléř je ten jádro jakékoli architektury založené na MQTTJe to komponenta, která přijímá všechny zprávy, zpracovává je a distribuuje je klientům, kteří jsou přihlášeni k odběru odpovídajících témat.
Mezi jeho hlavní funkce patří:
- Přijímat informace publikované klienty (senzory, brány, aplikace atd.).
- Dekódování a filtrování zpráv v závislosti na tématu, úrovni QoS nebo bezpečnostních pravidlech.
- Zjistěte, kteří zákazníci mají zájem v každé zprávě (podle vašich odběrů).
- Předávejte zprávy cílovým zákazníkůmrespektování zásad QoS a autorizace.
Existuje několik implementací brokerů, obě open source i komerčníJedním z nejznámějších je Mosquitto, široce používaný v domácím prostředí, u výrobců i v náročnějších nasazeních, který umožňuje spravovat od několika až po tisíce klientů s relativně jednoduchou konfigurací.
MQTT v praxi: Arduino, ESP8266 a lokální sítě

V mnoha domácích nebo poloprofesionálních projektech IoT je poměrně typickým scénářem to, že MQTT broker běžící na Raspberry Pi nebo PC v rámci lokální sítě a různá zařízení, jako například Arduino s aplikací Arduino IoT Cloud Remote nebo ESP8266 připojené jako klienti.
Například byste mohli mít Arduino s teplotním senzorem DHT22, který by pravidelně zveřejňoval údaje do tématu jako dům/obývací pokoj/teplotaMezitím se další Arduino nebo mobilní aplikace přihlásí ke stejnému tématu a zobrazuje teplotu v reálném čase. Broker, v tomto případě Mosquitto, je zodpovědný za příjem zpráv z prvního Arduina a jejich doručování druhému, aniž by se museli navzájem znát nebo spravovat přímé spojení.
Tato architektura má jednu obrovskou výhodu: Je škálovatelný téměř bez námahyMůžete přidat další senzory, další datové příjemce a propojit je s databázemi, systémy strojového učení nebo vizualizačními dashboardy, aniž byste museli měnit chování již nasazených zařízení. Stačí experimentovat s tématy a předplatnými.
Proč MQTT a ne jen HTTP?
Velmi častou otázkou je, zda se opravdu vyplatí používat MQTT, když se zdánlivě dá všechno vyřešit pomocí... přímé HTTP požadavky k ESP8266 nebo podobnému, otevřením portu na routeru a tím to končí, nebo dokonce s WebSockets na Androidu.
Odpověď zní, že ačkoli je to technicky možné, MQTT nabízí několik důležitých výhod:
- Nižší průměrná latence a nižší režie v časté komunikaci, zejména u krátkých zpráv odesílaných každých několik sekund.
- Nativní hospoda/subMobilní telefon nemusí komunikovat přímo s každým zařízením; stačí, když komunikuje s makléřem.
- Centralizovaná správa zabezpečení a ověřování na brokerovi, namísto replikace logiky na každém zařízení.
- Snadné škálováníPokud zítra zvýšíte počet zařízení z 5 na 500, nebudete muset otevírat 500 portů ani přepracovávat celou topologii.
- Nativní podpora pro opětovné připojení a QoS s ohledem na nestabilní sítě, což je něco, co HTTP ve výchozím nastavení nenabízí.
V typickém scénáři by se vaše mobilní aplikace připojila k MQTT brokerovi (buď v rámci LAN pomocí přesměrování portů, nebo ke cloudovému brokerovi), publikovala by zprávu v řídicím tématu (například dům/obývací pokoj/světlo/sada) a ESP8266, který se přihlásil k odběru tohoto tématu, by příkaz obdržel téměř okamžitě. Stačí jen zveřejnit makléře.ne každé zařízení v síti.
Pokud jde o služby jako io.adafruit.com a jejich aktivační intervaly (každých 15 minut v bezplatné verzi, každých 5 sekund v placené verzi), je to... omezení konkrétní službyProblém není v samotném protokolu MQTT. Protokol sám o sobě umožňuje velmi nízkou latenci; problém je v tom, že poskytovatel ukládá limity frekvence použití.
MQTT Gateway: brána mezi senzory a cloudem
Co je brána MQTT?
Takzvaná „MQTT brána“ neboli MQTT brána je v podstatě zprostředkující zařízení mezi senzory nebo lokálními zařízeními a platformou IoT nebo brokerem MQTTJeho hlavní funkcí je shromažďovat data v různých protokolech (např. Bluetooth, drátové senzory, Modbus atd.), převádět je do MQTT a odesílat je do cloudu nebo centrálnímu brokerovi.
V mnoha případech je brána MQTT implementována jako Ethernetová brána se specifickým softwarem který funguje jako klient MQTT. Tato brána může mít rádiová rozhraní, průmyslové vstupy a výstupy nebo připojení k fieldbusu a je zodpovědná za překlad všech těchto prvků do jazyka MQTT za účelem jejich sjednocení.
Výhody brány MQTT (včetně Bluetooth MQTT)
Brány založené na MQTT, zejména ty, které integrují Bluetooth, nabízejí několik zajímavých výhod:
- Velmi lehké zprávycož zefektivňuje komunikaci i v případě, že mnoho senzorů odesílá data současně.
- Obousměrné zasílání zprávUmožňují komunikaci jak mezi cloudem a zařízením, tak mezi zařízeními a cloudem, nejen uplinkovou telemetrii.
- Spolehlivé doručení podporováno úrovněmi QoS, což zajišťuje, že zprávy dorazí v souladu s nakonfigurovanou úrovní záruky.
- vestavěné zabezpečeníBrány obvykle podporují šifrování TLS a ověřování certifikátů, takže data procházející branou se bezpečně dostávají do cloudu.
V případě a Bluetooth brána MQTTZařízení skenuje a detekuje všechny BLE senzory v dosahu, spravuje s nimi komunikaci a centralizuje přenos dat do MQTT brokera. Z pohledu platformy IoT všechny tyto Bluetooth senzory „mluví MQTT“, i když ve skutečnosti mluví přes bránu.
Jak funguje brána MQTT a jak ji konfigurovat
Obecně řečeno, typický tok brány MQTT je:
- Skenuje a detekuje senzory a zařízení v dosahu (např. přes Bluetooth nebo kabelové sítě).
- Shromážděte data z těchto senzorů prostřednictvím odpovídajících protokolů.
- Převeďte tato data do formátu MQTT (s definováním vhodných témat a datových částí).
- Zveřejněte data o makléři nebo na zvolené platformě IoT.
Konfigurace fyzické brány nejprve zahrnuje montáž hardwaruSprávná kabeláž, oddělení připojení senzorů a rádiových modulů a výběr portu, MAC adresy a statické IP adresy pro zajištění jedinečné identifikace v síti.
Dále si vyberete modul, který bude klient MQTT spouštět, například:
- Arduino + ethernetový modul W5100.
- Modul ESP8266 s WiFi připojením.
Firmware definuje Témata publikování a předplatnéhoNapříklad předpona jako MY_MQTT_PUBLISH_TOPIC_PREFIX/FROM_NODE_ID/SENSOR_ID mohly by generovat témata jako např. mygateway1-out/2/1/1/0/49, zatímco pro odesílání příkazů senzorům by se použil prefix předplatného, například PŘEDPOKLAD_TÉMATU_MY_MQTTcož vede k tématům typu mygateway1-in/2/1/1/0/49.
Po konfiguraci se důrazně doporučuje otestovat bránu MQTT u známého brokera, jako je Mosquitto. ověřte, zda jsou zprávy správně přijatyJsou publikovány v očekávaných tématech a předplacená zařízení dostávají to, co mají dostávat.
MQTT Gateway jako most k centrálnímu serveru
Při nasazování zařízení MQTT na více fyzických místech obvykle potřebujete konsolidovat všechna tato data na sdíleném serveru nebo na centralizované cloudové platformě. Právě zde brána MQTT vyniká jako most.
Myšlenkou je instalovat bránu MQTT na každém místě, kde se nacházejí zařízení IoT. Každá brána shromažďuje informace ze svého lokálního prostředí, tj. Přidat a přeposlat na centrální server (nebo cloudového brokera) pomocí MQTT. Tímto způsobem můžete mít globální přehled o všech datech bez ztráty lokální kontroly a s optimalizovanou spotřebou sítě.
Tyto brány navíc mohou zabezpečeno vlastními certifikátyŠifrovací a autentizační mechanismy TLS chrání senzory a IoT edge, které zůstávají „za“ bránou. Mohou také lokálně ukládat informace, přizpůsobovat uživatelské rozhraní pro správu blízkých zařízení a v případě potřeby přidávat kompatibilitu s dalšími průmyslovými protokoly.
Kompatibilita MQTT s cloudovými platformami a dalšími protokoly
Jednou z největších silných stránek MQTT je, že je Kompatibilní s většinou hlavních cloudových IoT platforemMnoho průmyslových bran MQTT standardně funguje s:
- Azure IoT.
- Google Cloud IoT.
- AWS IoT.
- IBM Watson IoT.
Brána interpretuje data, která přijímá ze senzorů, a Přenáší je na platformu ve formátu MQTT.Uživatelé se stačí přihlásit k odběru příslušných témat, aby si mohli informace kdykoli prohlédnout nebo zpracovat.
Navíc mnoho z těchto mol může sloužit jako převodník protokolůIntegrací sítí jako Modbus TCP s MQTT a nabídkou vzdálených webových panelů pro správu skupin zařízení se MQTT stává ústřední součástí hybridních architektur, kde starší systémy koexistují s novými řešeními IoT.
Reálné případy použití MQTT a IoT
Průmyslová prostředí a telemetrie
V průmyslovém světě je MQTT již de facto standard pro přenos telemetrických dat ze senzorů a zařízení distribuovaných v továrnách, těžebních provozech, ropných a plynárenských zařízeních nebo zemědělsko-potravinářských společnostech.
Firmy instalují řadu senzorů, které měří parametry, jako je teplota, tlak, průtok, vibrace a spotřeba energie. Tato data jsou prostřednictvím MQTT odesílána do analytických systémů, které Odhalují nesrovnalosti, trendy a příležitosti ke zlepšení. v provozu. Díky tomu lze optimalizovat procesy, předvídat poruchy a zkrátit neplánované prostoje.
Nízkoenergetické rozlehlé sítě (LPWAN)
Sítě LPWAN (Low Power Wide Area Network) jsou navrženy tak, aby zařízení s velmi nízkým výkonem, která odesílají krátké zprávy na velké vzdálenostiProblematické jsou obvykle sítě s vysokou latencí a omezenou šířkou pásma. MQTT se pro toto prostředí perfektně hodí, protože jeho zprávy jsou lehké, podporuje kvalitu služeb a přizpůsobuje se nespolehlivým sítím.
Ve společnostech, které používají LPWAN k odesílání dat ze senzorů do cloudových řešení, umožňuje MQTT přenášet velké objemy zpráv bez přetížení sítě a s co největším zajištěním toho, aby se data dostala do analytických a monitorovacích systémů.
Sociální sítě a hromadné zasílání zpráv
Výrazným příkladem použití MQTT mimo klasické průmyslové prostředí je facebookkde se používá jako primární komunikační protokol pro správu obrovského množství zpráv v reálném čase. Hraje také roli v zasílání zpráv na platformy, jako je Instagram.
Skutečnost, že společnost této velikosti sází na MQTT, posiluje myšlenku, že se jedná o robustní, škálovatelný protokol vhodný pro scénáře s vysokou souběžnostínejen pro malé IoT projekty.
Chytré domy a domácí automatizace
V domácí sféře se MQTT stal jedním z Oblíbené protokoly pro automatizaci chytrých domácnostíBezproblémově se integruje s cloudovými platformami, jako je Azure nebo IBM Watson, a také s lokálními automatizačními systémy.
S MQTT můžete sledovat spotřeba energie v domácnostiovládat osvětlení, sledovat teplotu nebo kvalitu ovzduší v reálném čase a koordinovat více zařízení (termostaty, žaluzie, zavlažovací systémy atd.), včetně zařízení, jako je Xiaomi Sailinganiž by jednotlivá zařízení musela komunikovat přímo s ostatními. Například Bluetooth brána MQTT dokáže centralizovat všechny senzory BLE v domácnosti a připojit je k jednomu brokerovi.
Automobilová sekce
Digitální transformace v automobilovém průmyslu zahrnuje propojení vozidel, výrobních linek a systémů řízení. MQTT se používá jako spolehlivý komunikační kanál mezi cloudem a vozidlemumožňuje odesílání telemetrických dat, vzdálenou diagnostiku a aktualizace parametrů.
Tato schopnost komunikovat téměř v reálném čase, a to i s měnící se mobilní konektivitou, činí z MQTT velmi atraktivní volbu pro výrobce automobilů a poskytovatele služeb.
Doprava a logistika
V dopravě a logistice je kapacita sledování vozových parků a zboží v pohybu Je to klíčové. MQTT se používá k odesílání dat o poloze, stavu nákladu, událostech otevírání dveří nebo podmínkách prostředí uvnitř kontejneru.
Použitím odlehčeného zasílání zpráv a architektury založené na brokerech je možné monitorovat velké flotily v reálném čase s nízkou latencí a bez přetížení mobilních nebo satelitních sítí používaných pro připojení.
Škálovatelné architektury a oddělení hardwaru a softwaru
Jednou z velkých výhod zavedení MQTT v IoT projektu je, že umožňuje jasně oddělit hardwarovou vrstvu od softwarové vrstvySenzory a zařízení se zabývají pouze odesíláním dat brokerovi a přijímáním příkazů z konkrétních oblastí; vše, co se odtud děje (ukládání, analýza, vizualizace), se může vyvíjet nezávisle.
Tento přístup často připomíná vzor mikroslužebkde každá komponenta dělá jednu věc a dělá ji dobře. V našem případě se hardwarové zařízení zaměřuje na měření a publikování; ostatní služby se starají o zpracování, ukládání, vizualizaci nebo aplikaci umělé inteligence, aniž by o nich senzor musel cokoli „vědět“.
Díky tomuto oddělení, pokud se zítra rozhodnete přejít z jednoduché vizualizační webové stránky na Raspberry Pi na komplexní systém velkých dat a strojového učení V cloudu se nemusíte dotýkat senzorů. Budou i nadále odesílat data brokerovi a vy budete muset připojit pouze nové zákazníky, kteří se přihlásí k odběru stávajících témat.
MQTT a s ním spojené brány společně tvoří řešení velmi robustní pro konektivitu IoTLehký, škálovatelný, bezpečný, kompatibilní s hlavními cloudovými platformami a podporující všechny typy sítí, od LPWAN po domácí WiFi nebo průmyslový Ethernet. To vše v kombinaci s modelem publikování/odebírání a možností přidávání bran, které přemosťují protokoly, z něj činí jednu z klíčových komponent, na kterých se buduje současnost i budoucnost internetu věcí. Sdílejte informace, aby o tématu vědělo více uživatelů.