česky english Vítejte, dnes je sobota 23. listopad 2024

Internet věcí a MATLAB

DPS 5/2017 | Články
Autor: Humusoft

Internet věcí je aktuální 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.

Obr. 1 MATLAB a Simulink, prostředí pro analýzu dat i návrh algoritmů

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í. Vytvořené analytické algoritmy mohou být nasazeny ve formě online výpočtů na cloudových serverech nebo sloužit ke zpracování historických dat.

MATLAB a Simulink nabízí též přímé napojení na portál ThingSpeak, otevřenou datovou platformu pro internet věcí.

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ý web kamerou, 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 web-kamery a výstupem je počet průjezdů automobilů. Algoritmus zahrnuje blok ThingSpeak Write, který informace o počtu průjezdů zasílá na portál ThingSpeak každých 15 sekund. Samotné 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ý.

Data ukládaná na portálu ThingSpeak jsou stažena do MATLABu pro analýzu vytížení dálniční komunikace v závislosti na denní době a jiných faktorech.

Část analytického programu, výpočet souhrnného množství automobilů za 1 den, je nasazena přímo na portálu ThingSpeak. Tato online analýza dat využívající vestavěný MATLAB engine 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. Okrajové uzly jsou zařízení, která sbírají data. Často jsou napojena na různé periferie a senzory, jako jsou kamery, mikrofony, teploměry nebo průmyslová čidla.

Obr. 2 Internet věcí

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, zdarma přístupnou agregační službou ThingSpeak. Jakmile jsou data na platformě ThingSpeak uložena, mohou být snadno 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. Data, která byla sbírána po nějakou dobu, jsou z agregátoru stažena do lokálního softwarového prostředí. Zde je možné prové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ýzy), zpracování obrazu a algoritmy počítačového 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).