Google překladač: English Deutsch

Exkluzivní partner sekce

StreamTech.tv

streamtech tv-logo

MATLAB a internet věcí

Autor článku: Redakce   
Pátek, 13 Květen 2016 00:00

Tags: IoT | MathWorks | MATLAB | Simulink

matlab ilustracniInternet 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í.


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

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í. Ř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.

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ří 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ů. 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 ThingSpeak 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 15 sekundový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 online 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.

Š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ž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í.

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 a 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é 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.
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 perifériemi. 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 online 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í (online 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 offline.

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.


Obrázek 2: Internet věcí

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í, očištění dat od chybných měření nebo 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).


Distributor produktů společnosti MathWorks v České republice a na Slovensku:
HUMUSOFT s. r. o.
http://www.humusoft.cz


Mohlo by vás zajímat: