Náplň predmetu
Spoznajte svet inteligentných technológií od základov až po profesionálnu úroveň. V tomto kurze začneme obľúbeným systémom Home Assistant, no rýchlo sa posunieme k vývoju vlastných zariadení s ESP32 v jazyku MicroPython. Naučíme sa budovať robustné IoT servery v prostredí Docker, ovládať komunikáciu cez protokol MQTT, prepájať jednotlivé prvky systému cez Node-RED a vytvárať vizuálne dashboardy v Grafane. Od programovania senzorov cez zabezpečenie serverov až po siete BLE a LoRa - získate praktické zručnosti potrebné pre tvorbu moderných smart ekosystémov zajtrajška.
V prvej časti tohto kurzu si najprv predstavíme „hotové“ smart technológie, no postupne sa naučíme vytvárať vlastné zariadenia. Prepojíme svet počítačov s elektronikou, sieťami a programovaním. Naším hlavným nástrojom bude šikovné kompaktné zariadenie M5StickC Plus. Jeho srdcom je v súčasnosti už najpopulárnejší mikrokontrolér ESP32 s Wi-Fi, doplnený množstvom vstavaných prvkov - tlačidlá, displej, akcelerometer, bzučiak, LED, či hodiny reálneho času. Má vlastnú batériu a umožňuje pripojiť aj mnoho externých vstupných i výstupných doplnkov, s ktorými sa v priebehu roka zabavíme. Samozrejme, všetko pripojíme k internetu a získané údaje budeme odosielať na náš server.
Podrobnejšia náplň jednotlivých kapitol 1. časti
1. Smart technológie a Internet vecí - Ponoríme sa do problematiky z hľadiska bežného používateľa. Na reálnych ukážkach si predstavíme open-source systém domácej automatizácie Home Assistant. Na pripravenom serveri (ktorým môže byť aj malý jednodoskový počítač) si predvedieme komerčné zariadenia využívajúce protokol Zigbee - senzory teploty, pohybu a prítomnosti človeka, tlačidlá, ale aj ovládateľné zariadenia ako je smart zásuvka. Následne sa zoznámime so zariadeniami pripojenými cez Bluetooth Low Energy (BLE) - a to aj zakúpenými, aj vyrobenými - používajúcimi otvorený formát BTHome. Budeme z nich zbierať údaje a pozorovať grafy - každý už na svojom vlastnom serveri s Home Assistant. Vyskúšame si aj platformu ESPHome na rýchlu prípravu vlastných zariadení s ESP32 bez zložitého programovania a vyskúšame si automatizáciu - reakciu na stlačenie tlačidla, či zmenu teploty, ovládanie intenzity a farby svetla. v závere si zhrnieme teoretický prehľad technológií internetu vecí.
2. Programovanie mikrokontroléra s MicroPython - Touto kapitolou začína skutočný vývoj vlastného zariadenia. Predstavíme si najpopulárnejší mikrokontrolér ESP32 v rôznych podobách, do ktorého nahráme programovací jazyk MicroPython, aby sme ho mohli pohodlne a rýchlo programovať. Zoznámime sa so šikovným kompaktným zariadením M5StickC Plus a vytvoríme programy reagujúce na vstupy (tlačidlá, senzor PIR) a ovládajúce výstupy (LED, bzučiak). Naučíme sa využívať prerušenie a časovač, vytvárať vlastné triedy a knižnice.
3. Vnútorné vybavenie M5Stick - Využijeme potenciál nášho šikovného zariadenia naplno. Naučíme sa písať text a kresliť grafiku na displej, pracovať s hodinami reálneho času (RTC) a pripojíme sa na Wi-Fi. Pre komunikáciu využijeme protokol MQTT, čo je štandard vo svete IoT. Pomocou zabudovaného akcelerometra zariadime nielen automatické otáčanie displeja, ale budeme sa venovať aj väčšiemu projektu - vytvoríme cyklopočítač. Ten umiestnime na bicykel, aby mohol sledovať otáčanie kolesa a údaje posielať na server. V reálnom čase tak budeme môcť sledovať rýchlosť a dodatočne na grafe analyzovať zrýchlenia na každej z 3 osí.
4. Vonkajšie senzory M5Stick - Možnosti nášho zariadenia rozšírime rôznymi externými modulmi. Zoznámime sa so sériovými rozhraniami - digitálnymi zbernicami, predovšetkým so zbernicou I²C. Pohráme sa so senzorom svetla, laserovým a ultrazvukovým senzorom zmeriame vzdialenosti a budeme sledovať meteorologické údaje o vzduchu (teplotu, vlhkosť, tlak, či znečistenie). Využitím A/D prevodníka vyskúšame aj analógové senzory. Postupne si vyrobíme rôzne merače, ktoré namerané hodnoty zobrazujú na displeji alebo posielajú na server, ktorý ich zobrazuje a ukladá do časozbernej databázy spolužiakov z predmetu Databázové systémy pre vytváranie grafov vo vizualizačnom systéme Grafana.