Skip to main content

1.10 Architektúra a komponenty IoT

Na úvod by sme sa mali zaoberať otázkou, čo je to vlastne IoT? Skratka znamená Internet of Things, teda Internet vecí. Aký je však význam tohto pojmu? Definície sa rôznia, napríklad v učebnici Internet vecí z IT Akadémie je takáto:

Internet vecí je koncept, ktorého hlavnou myšlienkou je prepojenie všetkých fyzických vecí, ktoré sú napájané elektrickou energiou a dokážu byť pripojené do internetu.

Tak či onak, IoT sa líši od bežnej automatizácie v tom, že komunikácia neprebieha len v rámci systému, ale je prepojená aj s počítačovou sieťou / internetom. Cieľom je zbieranie údajov a získavanie informácií zo všetkých pripojených „vecí“ - tými môžu byť aj smart zariadenia, ktorými sme sa zaoberali. Teda je možné konštatovať, že smart technológie sú podmnožinou Internetu vecí. Okrem tejto, nám už dobre známej oblasti, IoT zahŕňa aj ďalšie oblasti, napríklad poľnohospodárstvo, logistika, energetika, smart mestá.

Pri porovnaní s tradičnou oblasťou IT je možné vidieť viaceré rozdiely, napríklad:

  • počet zariadení je vyšší;
  • pri komunikácii sa prenáša len málo údajov, ale často;
  • rýchlosť zariadení i komunikácie je nižšia;
  • spotreba energie je podstatne menšia, dôraz sa kladie na energetickú úspornosť, častá je prevádzka na batérie.

Architektúra IoT

Z určitého nadhľadu by sme mohli v IoT vidieť minimálne tri vrstvy, nejde však o všeobecne platné členenie, ako je to v oblasti počítačových sietí:

  1. hardvér: riadiace mikrokontroléry (MCU), senzory, akčné členy (prevádzajú informačné signály na fyzickú akciu);
  2. middleware (back-end): interný systém pre ukladanie údajov a ich analýzu, komunikuje s hardvérom a poskytuje API pre ďalšiu vrstvu;
  3. prezentačný systém (front-end): klientom cez on-line rozhranie (web / aplikácie) poskytuje informácie v zrozumiteľnej podobe (grafy, ukazovatele, súhrnné správy, upozornenia).

Doteraz sme sa stretli s rôznym hardvérom - vstupné i výstupné zariadenia Zigbee / BLE / ESPHome. Systém Home Assistant predstavuje aj prezentačný systém - hlavne jeho „ovládacie panely“ / prehľady, ale aj middleware - vnútorná databáza a procesy automatizácie. Prezentačnú funkciu však môže realizovať aj samostatný systém, napríklad Grafana, s ktorou sme sa stretli v kurze Databázové systémy.

Model spracovania údajov

Trochu podrobnejší pohľad, zameraný na spracovanie údajov, by odhalil 4 vrstvy:

1. Hardvérová vrstva (zariadenia): Zbiera údaje (cez senzory) alebo reaguje na prijaté údaje / pokyny (cez akčné členy). Tieto údaje nespracováva a neanalyzuje, ale len čo najskôr odosiela / vykonáva. Zo zariadení, s ktorými sme sa už stretli, by sem mohli patriť vstupné i výstupné zariadenia Zigbee / BLE / ESPHome, ktoré nevykonávajú žiadne ďalšie operácie. A tiež prosté digitálne senzory a akčné členy, ktoré po zbernici komunikujú s MCU - napríklad meteo senzor dostane príkaz na zmeranie vlhkosti, tak ju zmeria a odovzdá výsledok.

2. Komunikačná vrstva (Edge): Poskytuje komunikáciu medzi hardvérom a vyššími vrstvami, pričom vykonáva aj takzvané predspracovanie údajov (pre-processing), ktoré sa vykonáva ešte pred odoslaním údajov. Hlavným dôvodom je úspora prenosového pásma a rýchlosť odozvy. Konkrétnymi operáciami sú:

  • overovanie prijatých údajov - či prišli správne formátované a úplné dátové štruktúry;
  • filtrovanie údajov - odstránenie zjavne chybných údajov, duplicitných údajov, či príkazov (napríklad dvaja používatelia odoslali rovnaký pokyn);
  • agregácia údajov - poznáme z časozberných databázových systémov, teda napríklad zoskupenie údajov za každú minútu (výstupom bude priemer, minimum a maximum).

Okrem toho táto vrstva môže riešiť aj autorizáciu zariadení a pokynov, aktualizáciu softvéru, reštart a podobne. Komunikačná vrstva môže byť súčasťou smart zariadenia, pokiaľ je vybavené šikovnejším mikrokontrolérom, teda mohli by sem patriť aj naše vlastné zariadenia s MCU, ktoré využívajú hardvér pre merania rôznych údajov a v určitých intervaloch ich súhrnne odosielajú ďalej.

3. Analytická vrstva: Vykonáva podrobnú dátovú analýzu zo získaných údajov, ktorá môže odhaliť súvislosti medzi sledovanými parametrami, či opakujúce sa vzory v rámci určitých časových cyklov. Môže tiež vytvárať odhady budúcich hodnôt na základe aproximácie predošlých hodnôt. S takýmto podrobným spracovaním údajov sme sa zatiaľ nestretli.

4. Aplikačná vrstva: Spracované údaje poskytuje v prístupnej podobe pre používateľov webovej alebo mobilnej aplikácie v podobe spracovaných analýz, grafov, ukazovateľov, ale i ovládacích prvkov. Toto realizuje aj systém Home Assistant vo forme webu i mobilnej aplikácie.

Hardvérové komponenty IoT

Vo vrstve hardvéru Internetu vecí sa môžeme stretnúť s troma kategóriami hardvérových komponentov. Niektoré slúžia na zber údajov (vstup), niektoré na vykonanie akcie (výstup) a niektoré na riadenie a komunikáciu.

Snímače (senzory)

Snímač, ako názov napovedá, slúži na snímanie, teda meranie hodnôt sledovaných parametrov fyzického sveta. V technickom svete posledných rokov používame skôr pojem senzor. Už sme sa stretli so senzormi teploty, tlaku, vlhkosti, CO2, pohybu, intenzity osvetlenia a existujú aj mnohé ďalšie.

Senzor mení rôzne vlastnosti fyzického sveta na merateľné elektrické veličiny - obvykle na odpor, ktorý vieme určiť cez hodnotu napätia a tú vieme zmerať analógovo-digitálnym (A/D) prevodníkom (ADC).

Z hľadiska výstupu môžu byť senzory:

  • s binárnym výstupom: podajú len informáciu typu áno / nie, napr. či sú otvorené dvere alebo či je stlačené tlačidlo;
  • s analógovým výstupom: neodovzdajú konkrétnu nameranú hodnotu, ale vyjadrujú ju úrovňou napätie, z ktorého vieme meranú hodnotu vypočítať, môžu odovzdať len jednu hodnotu a pri prenose môže dôjsť ku skresleniu;
  • s digitálnym výstupom: komunikujú digitálne (majú v sebe MCU a ADC) a odovzdajú nám namerané hodnoty, napríklad o teplote a vlhkosti.

Pri výbere senzora musíme zvažovať viaceré ich parametre a vlastnosti:

  • rozsah merania: rôzne typy senzorov dokážu zmerať len určitý rozsah hodnôt, napríklad teplotu od -20 do +80 °C - mimo tento rozsah bude meranie nepresné, prípadne sa môže senzor aj poškodiť;
  • linearita: ideálny senzor by mal plne lineárnu odozvu, teda funguje rovnako presne v celom svojom rozsahu - v realite dochádza k zvýšeniu odchýlky hlavne pri oboch koncoch rozsahu merania;
  • citlivosť: určuje, akú najmenšiu zmenu hodnoty dokáže senzor zaregistrovať, napríklad presný akvaristický teplomer bude mať vysokú citlivosť a bude schopný rozlíšiť aj 0,1 °C alebo menej, priemyselnému teplomeru na meranie teploty chladiacej kvapaliny s veľkým rozsahom bude stačiť nízka citlivosť s rozlíšením aj 2 °C alebo viac;
  • rýchlosť / doba odozvy: určuje, ako rýchlo senzor zareaguje na zmenu meranej hodnoty - nie vždy je najrýchlejšia odozva tou najlepšou, pretože taký teplomer by reagoval aj na každý pohyb vzduchu, niekedy je vhodnejšia aj určitá zotrvačnosť;
  • stabilita: vyjadruje schopnosť odovzdávať konzistentné hodnoty, teda teplomer by pri rovnakej teplote mal odovzdávať vždy tú istú hodnotu aj z dlhodobého hľadiska;
  • životnosť: nedokáže nám určiť presnú dobu, počas ktorej bude senzor fungovať, no je približným odhadom, koľko by mal senzor vydržať pri dodržaní prevádzkových podmienok;
  • finančné náklady: zaujímajú nás z hľadiska ekonomiky projektu, nie vždy je potrebný ten najlepší a najdrahší senzor a okrem nákupnej ceny senzora treba zvážiť aj prevádzkové náklady.

V zozname vlastností chýba presnosť, no tá je skôr súhrnným pojmom spájajúcim linearitu, citlivosť a stabilitu. Vyjadruje zhodu nameranej hodnoty so skutočnou hodnotou meranej veličiny. Pokiaľ má senzor teploty konštantnú odchýlku (napríklad nameria vždy o 1 °C viac), je ju možné veľmi ľahko eliminovať, pokiaľ má lineárnu nepresnosť, je to možné riešiť lineárnym výrazom - takúto korekciu nazývame kalibrácia. No pokiaľ sú odchýlky náhodné kvôli nestabilite, nebude to možné bez viacerých meraní a využitia štatistických metód - čo v konečnom dôsledku výrazne zvýši dobu odozvy.

Jednotlivé vlastnosti spolu súvisia - napríklad čím je širší rozsah merania, tým je obvykle nižšia citlivosť. Čím je vyššia rýchlosť merania, tým je nižšia stabilita alebo citlivosť (pri teplote), prípadne rozsah (pri meraní vzdialenosti). Niekedy si môžeme zvoliť dobu merania a tým ovplyvniť presnosť.

Akčné členy

Akčný člen je aktívny prvok, ktorý reaguje na vstupný elektrický signál tým, že vykoná požadovanú zmenu vo fyzickom svete. Táto zmena môže byť elektronická i mechanická. Kým v priemysle sa jedná najčastejšie o motory (elektrické, pneumatické i hydraulické), v oblasti automatizácie a smart technológií sa často stretneme aj s ďalšími prvkami, napríklad:

  • zobrazovacie prvky - LED, rôzne typy displejov;
  • elektroakustické prvky - reproduktor, bzučiak, siréna;
  • ventily - ovládajú prietok kvapalín a plynov;
  • spínače vyššieho napätia - relé, MOSFET tranzistory;
  • servomotor - na rozdiel od bežného motora vieme presne určiť jeho polohu (uhol otočenia);
  • krokový motor - pre presné pohyby napríklad 3D tlačiarne či CNC stroja.

rozširujúci modul so senzorom SHT40 (Laskakit)Rozširujúce moduly

Nejde o ďalšiu kategóriu hardvéru, ale skôr o inú formu. Mnohé snímače i akčné členy vyžadujú pre svoju prevádzku určité predpoklady, pre ktoré sú potrebné ďalšie súčiastky - napríklad LED potrebuje pre prevádzku aj rezistor, motor alebo dlhý LED pás zase externé napájanie a MOSFET tranzistor. Preto sú k dispozícii okrem „holých“ senzorov, či akčných členov, aj takzvané moduly. Typicky sa jedná o malú dosku plošných spojov, na ktorej sa nachádza aj požadovaný senzor, aj všetky potrebné súčiastky a vstupné / výstupné piny.

Riadiace prvky

Riadiace prvky nazývame kontroléry. V prípade IoT sa stretávame skôr s malými jednočipovými kontrolérmi - mikrokontrolérmi, pre ktoré sa používa aj skratka MCU (Micro Controller Unit). Tie, hoci sa skutočne jedná len o jediný kremíkový čip, majú v sebe integrované všetky potrebné prvky počítača - teda procesor, pamäť i vstupno-výstupné porty. Nie je však typické, že by používali operačný systém - určite nie bežné OS, ktoré poznáme zo sveta PC, no vzhľadom na čoraz vyšší výkon sa čoraz častejšie možno stretnúť s FreeRTOS. Hlavnou výhodou MCU v porovnaní s SBC je ich nízka spotreba v režime spánku - výdrž batérie možno rátať na mesiace.

V prípade masovo vyrábaných zariadení sa využívajú aj riadiace prvky zostavené presne a výhradne na vykonávanie konkrétnej úlohy - nazývame ich jednoúčelové alebo embedded systémy, ich výrobné náklady sú pri masovej produkcii nižšie ako v prípade univerzálnych MCU, môžu byť menšie a aj energeticky úspornejšie.

Raspberry PiA na druhej strane - riadiace prvky väčšieho systému sú výkonnejšie a rozmerovo väčšie. Môže sa jednať aj o bežný počítač, ale i relatívne malé SBC (Single-Board Computer) - tie majú na jednej malej doske všetky komponenty počítača a bežia na nich často aj bežné operačné systémy, ktoré poznáme zo sveta PC - predovšetkým Linux, ale na niektorých aj Windows. Asi najznámejším a najpopulárnejším SBC je Raspberry Pi, ktorý existuje vo viacerých modeloch a už vo viacerých generáciách. Ďalšie zaujímavé SBC sme spomínali v kapitole 1.1 Smart technológie a Home Assistant.