MATLAB a internet věcí
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í podporují rychlý nárůst IoT aplikací. Řešení založená na IoT nacházejí uplatnění i v průmyslových systémech, například v úlohách, jako je sledování silničního provozu nebo monitorování výroby.
Š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í 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žňuje 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ě on-line 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í.
Uspořádání IoT aplikace
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.
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, případně vyvolat odezvu na získané informace.
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 on-line analýzy v agregátoru nebo k vývoji a prototypování algoritmů pro okrajové uzly. Prostředí MATLAB a Simulink lze snadno využít k analýze historických dat i k návrhu a nasazení algoritmů.
Zpracování dat v okrajových uzlech
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.
K prototypování okrajových uzlů je možné využít levné HW platformy, jako je Arduino nebo Raspberry Pi. Simulink umožňuje přímé nasazení vytvořených modelů na tyto platformy a nabízí i speciální bloky pracující s jejich periferiemi. K dispozici je i blok pro posílání dat na platformu datového agregátoru ThingSpeak.
Agregace a přístup k datům
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. ThingSpeak přijímá a ukládá data z připojených zařízení uživatele. Jakmile jsou data na platformě ThingSpeak uložena, mohou být analyzována on-line pomocí zabudovaného MATLAB engine. Uživatel může na platformě ThingSpeak spustit vlastní výpočetní skript napsaný v jazyce MATLABu. Skripty lze spouštět jednorázově nebo nastavit plánovač pro opakované spouštění (on-line analýza dat).
Výsledná data mohou být ukládána na platformě ThingSpeak do nového kanálu. Data uložená na platformě ThingSpeak mohou být snadno stažena do MATLABu nainstalovaného na počítači uživatele a analyzována off-line.
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 webservices.
Analýza dat a tvorba prediktivních modelů
Cílem analýz spouštěných v rámci agregace dat je průběžné získávání relevantních informací. S rostoucím množstvím dat však může být obtížné tyto informace odhalit – je nezbytné pochopit vazby, které mezi daty panují. Prvním krokem k pochopení vztahů mezi daty bývá analýza historických dat. Může se jednat o základní statistické zpracování určené k hledání anomálií, k očištění dat od chybných měření nebo k filtraci šumu.
Jakmile je význam dat jasnější, přijdou na řadu úlohy, jako je klasifikace událostí nebo predikce budoucích datových bodů. K tomu lze využít techniky strojového učení. Algoritmy strojového učení využívají výpočetní metody k „učení se“ informacím přímo z dat a nepotřebují předem definované rovnice popisující jejich chování.
MATLAB poskytuje funkce jak z oblasti zpracování signálu (filtrace, spektrální analýza), tak z oblasti statistiky a strojového učení (klasifikace, regrese, shluková analýza). MATLAB je možné využít i pro úlohy z oblasti počítačového vidění a dalších aplikací, které se ve světě IoT často objevují. 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).
Analýza dopravy s využitím IoT
Příkladem aplikace založené na IoT je využití platforem Raspberry Pi 2 a ThingSpeak pro počítání průjezdů automobilů na rychlostní komunikaci. Okrajový uzel tvoří minipočítač Raspberry Pi vybavený webkamerou, který je bezdrátově připojený k internetu. Protože přenášení videa z okrajového uzlu do agregátoru by 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 výše). Jeho vstupem jsou obrazová data z webkamery a výstupem je počet průjezdů. Algoritmus zahrnuje bloky a funkce Video Capture, Foreground Detector, Median Filter, Blob Analysis a ThingSpeak Write, které jsou v Simulinku k dispozici. Informace o počtu průjezdů je zasílána 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 shromážděná na portálu Thing-Speak byla stažena do MATLABu pro analýzu vytížení dálniční komunikace v závislosti na denní době a jiných faktorech. Analýza zahrnovala sloučení údajů nasbíraných v 15sekundových intervalech a výpočet akumulovaných součtů přes různá časová období, hledání špiček, vykreslení histogramů a další úlohy.
Část analytického programu, výpočet souhrnného množství automobilů za 1 den, byla nasazena přímo na portál ThingSpeak. Tato on-line analýza dat využívá vestavěný MATLAB engine. Program je automaticky spouštěn jedenkrát za den a výsledky jsou ukládány na platformě ThingSpeak do samostatného kanálu.
Distributor produktů společnosti MathWorks v České republice a na Slovensku: HUMUSOFT s. r. o.
www.humusoft.cz
zdroj: Control Engineering Česko