Hlavní navigace

Senzory Martina Malého: Týden kapitána Zjevného

31. 8. 2016
Doba čtení: 3 minuty

Sdílet

 Autor: shawn_hempel / depositphotos.com
Každý má jiné priority a co je důležité pro jednoho, může být podružné pro druhého. Třeba pro mne je MQTT první volbou, pokud stavím něco s internetem věcí.

Tento týden se budu věnovat věcem, které jsou pro některé z vás obnošená vesta a dávno už je znáte, takže se můžete rovnou přesunout do komentářů a napsat něco jako “Malý zase objevil Ameriku”, ale já s docela velkou jistotou vím, že nejsem úplně poslední, kdo je ještě neznal, a že pro některé budou třeba dobrým tipem.

Jeden ze čtenářů se mě ptal, co je tak úžasného a skvělého na MQTT. Princip fungování jsem nastínil na sesterském Rootu, ale je pravda, že otázka “proč MQTT?” mohla zůstat nezodpovězena.

Každý má samozřejmě jiné priority a co je důležité pro jednoho, může být podružné pro druhého, a obráceně. Navíc žádná technologie, i když to někteří evangelizátoři neradi slyší, není zlaté kladivo, které funguje vždy a za všech okolností, ani stříbrná střela, která vyřeší všechny problémy. Každá má svá pro a proti, a to, jestli je pro vás “skvělá a úžasná”, bude nakonec záviset především na vašich potřebách a zvyklostech. Přesto si zkusme vyjmenovat pár důvodů:

MQTT je standardizované řešení, je tedy pravděpodobné, že naleznete software či službu, která bude s touto technologií kompatibilní. Rozhodně pravděpodobnější, než když si uděláte vlastní proprietární protokol.

MQTT je zároveň dostatečně obecné, takže jím přenesete “cokoli” (což berte s rezervou).

MQTT řeší a implementuje některé věci, na které návrháři snadno zapomenou (QoS, testament apod.) a které jsou přitom ve světě IoT docela důležité. Je navržené tak, aby bralo v potaz některé specifické vlastnosti prostředí (třeba úzké přenosové pásmo nebo nestabilní spojení).

Implementuje architekturu Publisher / Subscriber, která je pro heterogenní sítě, složené z jednoduchých senzorů, aktuátorů a řídicích prvků, výhodná – není třeba se neustále ptát “tady žárovka, vypínači, nejsi zmáčknutý?” Místo toho se žárovka ohlásí: “Jsem žárovka 42, řekněte mi, kdy se mám rozsvítit”. Ani vypínač se nestará o to, komu má dát vědět, že je stisknutý. Někde mezi jsou jednoduché softwarové nástroje, které vědí, že zpráva “zapnuto” od vypínače 26 má vyústit do zprávy “rozsviť se!” pro žárovku 42. Celý systém je tak velmi flexibilní.

Zprávy se posílají v takzvaných “topics” – tématech, která mají hierarchickou strukturu, takže je možné odebírat zprávy konkrétní, nebo naopak obecné, přičemž úroveň abstrakce není pevně dána, je na návrháři systému.

MQTT není překomplikované a je velmi snadné jej implementovat. Jediné, co budete potřebovat “navíc”, je nějaký server, kde poběží MQTT broker, tedy ten software, který se stará o příjem a předávání zpráv. De facto standardem je MQTT broker Mosquitto.

Díky výše zmíněným vlastnostem je třeba pro mne MQTT první volbou, pokud stavím něco s internetem věcí. Existují implementace pro obrovské množství platforem, takže si nemusím lámat hlavu s tím, jak budu posílat data a jak zajistím přenos atd. Jediné, co potřebuju, je spustit MQTT broker a rozmyslet se, jak se budou jmenovat jednotlivé “topicy” – témata, podle kterých se zprávy sdružují a posílají.

UX DAy - tip 2

A jako druhý krok, když už tedy mám ten server, kde mi běží MQTT broker, udělám to, že nainstaluju Node-RED. Ano, je to známý software a používá ho spousta lidí, a já jsem ho objevil až teď, přesněji minulou sobotu, hanba mi! Připadá mi naprosto perfektní na rychlé prototypování datových toků: z jedné strany tečou data, třeba z MQTT, ze sériového portu, ale klidně i přes HTTP, Websockets, nebo z Twitteru, vy si v jednoduchém grafickém editoru poskládáte moduly a nastavíte si tok dat, jak potřebujete, a z druhé strany posíláte data tam, kam mají jít – zase přes MQTT, HTTP, Websockets, do logu, do databáze, mailem, na Twitter… S Node-RED nepotřebujete (téměř) ani gram programování na to, abyste nechali proudit data tak, jak potřebujete.

Možná postupem času zjistíte, že potřebujete ještě něco navíc, že máte speciální požadavky, možná i na ten vlastní přenosový protokol dojde, ale vězte, že MQTT je dobrý začátek (a Node-RED užitečný pomocník), který vám umožní rychle se odpíchnout od technikálií k tomu, co chcete opravdu dělat.

Byl pro vás článek přínosný?

Autor článku

Sleduje, popularizuje a učí moderní webové technologie (HTML5 a podobné). Popularizuje nové nástroje a elektroniku, provozuje weby, sleduje dění na internetu, píše o něm a komentuje ho.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).