Internet věcí je vznikající trend, kde je velké množství vestavěných zařízení propojeno s internetem. Řešení na bázi internetu věcí pokrývají široké spektrum aplikací od životního prostředí přes domácí automatizaci až po nasazení v průmyslu. Výpočetní a vývojové prostředí MATLAB a Simulink firmy MathWorks nabízí plnou podporu vývoje aplikací v této oblasti.
Základním stavebním prvkem internetu věcí (Internet of Things – IoT) je komunikace vestavěných zařízení (věci) prostřednictvím internetového připojení. Připojená zařízení komunikují s lidmi a ostatními zařízeními a často přenášejí naměřená data do cloudového úložiště. Ke zpracování dat jsou využívány cloudové výpočty, jejichž cílem je hlubší analýza vedoucí ke zjištění důležitých informací. Levná výpočetní kapacita cloudových řešení a zvyšující se konektivita vestavěných zařízení podporuje rychlý nárůst IoT aplikací.
Širokou podporu vývoje aplikací v oblasti IoT nabízí výpočetní a vývojové prostředí MATLAB a Simulink firmy MathWorks (obrázek 1). MATLAB je výkonný programovací jazyk a interaktivní prostředí pro vědecké a technické výpočty, analýzu dat, vizualizaci a vývoj algoritmů. Simulink je nadstavba MATLABu pro simulaci a modelování dynamických systémů a vývoj algoritmů s možností jejich nasazení na real-time a embedded systémy. Modely a algoritmy v Simulinku jsou vytvářeny ve formě přehledných blokových schémat.
Znázornění vývoje a rozdělení úloh v aplikacích na bázi IoT je na obrázku 2. MATLAB poskytuje nástroje pro vývoj a testování zařízení v inteligentních okrajových uzlech (embedded procesory, FPGA, Arduino, Raspberry PI), umožní zpřístupnit a agregovat data, a též poskytuje výpočetní nástroje pro hlubokou analýzu rozsáhlých dat přicházejících ze senzorů koncových zařízení.
MATLAB a Simulink nabízí též přímé napojení na portál ThingSpeak, otevřenou datovou platformu pro internet věcí.
Příklad z praxe: Analýza dopravy s využitím IoT
Příkladem aplikace založené na IoT je využití platforem Raspberry Pi a ThingSpeak pro počítání průjezdů automobilů na rychlostní komunikaci.
Okrajový uzel tvoří mini počítač Raspberry Pi vybavený webkamerou, který je bezdrátově připojený k internetu. Protože by přenášení videa z okrajového uzlu do agregátoru znamenalo přílišný datový tok, byl základní detekční algoritmus nasazen přímo na Raspberry Pi.
Algoritmus detekce průjezdů vozidel byl vytvořen ve formě blokového schématu v Simulinku (obrázek 1). Jeho vstupem jsou obrazová data z webkamery a výstupem je počet průjezdů automobilů. Algoritmus zasílá informace o počtu průjezdů na portál ThingSpeak. Vlastní nasazení algoritmu ze Simulinku na platformu Raspberry Pi bylo jen otázkou stisknutí příslušného tlačítka – celý proces překladu a nasazení algoritmu je plně automatický.
V MATLABu byl připraven analytický program pro výpočet souhrnného množství automobilů za 1 den. Program je nasazen v online podobě přímo na portálu ThingSpeak, kde využívá vestavěný MATLAB engine. Analýza je automaticky spouštěna jedenkrát za den a výsledky jsou ukládány na platformě ThingSpeak do samostatného kanálu.
Zpracování dat v okrajových uzlech
Levá strana schématu na obrázku 2 ilustruje inteligentní okrajové uzly, tj. zařízení, která sbírají data. Zařízení jsou často napojena na různé periferie a senzory, jako jsou kamery, mikrofony, teploměry nebo průmyslová čidla.
Podpora v prostředí Simulink zahrnuje tvorbu algoritmů pro hardwarové platformy využívané v rámci inteligentních okrajových uzlů IoT. V Simulinku můžete vyvinout model algoritmu určený ke zpracování snímaných dat a poté jej nasadit na embedded hardware pomocí automatického generování kódu v jazycích C nebo HDL. Zpracování dat v okrajových uzlech může významným způsobem snížit datový tok mezi okrajovým uzlem a cloudovým agregátorem dat.
Agregace a přístup k datům
Střední část schématu znázorňuje agregaci dat. Agregátor sbírá, zpracovává a ukládá data z mnoha okrajových uzlů, často rozprostřených na geograficky vzdálených místech. V agregátoru je možné přijatá data průběžně analyzovat a případně vyvolat odezvu na získané informace.
Při vývoji a testování IoT aplikace je možné využít propojení prostředí MATLAB s otevřenou agregační službou ThingSpeak. Jakmile jsou data na platformě ThingSpeak uložena, mohou být stažena do MATLABu na pracovním počítači uživatele nebo mohou být analyzována online pomocí zabudovaného MATLAB engine přímo na portálu ThingSpeak.
Pokud jsou data v rámci IoT aplikace uložena v databázi, na privátním cloudu nebo jiném agregátoru dat s webovým rozhraním, je možné využít prostředky MATLABu pro připojení k relačním databázím (ODBC, JDBC) nebo příkazy pro komunikaci s web services.
Analýza dat a tvorba prediktivních modelů
V pravé části schématu je zobrazena analýza historických dat. Nasbíraná data jsou z agregátoru stažena do lokálního softwarového prostředí. Zde je možné povést podrobnou analýzu za účelem pochopení hlubších vazeb a souvislostí v získaných datech. Historická data mohou sloužit také k návrhu analytických aplikací určených pro online analýzy v agregátoru nebo k vývoji a prototypování algoritmů pro okrajové uzly.
MATLAB poskytuje pro analýzu dat množství funkcí, ať již se jedná o zpracování signálu (filtrace, spektrální analýza), statistické výpočty a strojové učení (klasifikace, regrese, shlukové analýza), zpracování obrazu a počítačové vidění nebo analýzu a modelování dat v oblasti financí. Pokud aplikace vyžaduje práci s rozsáhlými daty, lze s výhodou využít prostředky MATLABu připravené pro tyto případy (paralelní výpočty, GPU výpočty, integrace s hadoop).
Distributor produktů společnosti MathWorks v České republice a na Slovensku:
HUMUSOFT s. r. o.