2.1 Predstavenie mikrokontroléra ESP32 a vývojových dosiek
V predošlej kapitole sme spoznali rôzne „hotové riešenia“ pre účely monitorovania, automatizácie a celkovo v oblasti smart domácnosti. Postupne sme sa dopracovali k tomu, že smart zariadenia si môžeme vyrobiť aj sami cez ESPHome. V tomto smere sa pohneme ešte ďalej a vlastné zariadenia budeme ovládať „úplne vlastným“ programom. Postupne sa však začne vynárať jedna nepríjemná otázka…
A oplatí sa vôbec vyrábať si vlastné zariadenia? 🤔
Výhoda je jasná - vieme si zostaviť akúkoľvek kombináciu mikrokontroléra, senzorov a výstupných prvkov. No úprimne treba priznať, že vlastné riešenia sú spravidla drahšie a dizajn zaostáva za vyšperkovanými komerčnými modelmi, nehovoriac a množstve času, ktorý do vlastného riešenia treba investovať.
Môžeme sú kúpiť hotové jednoduché smart zariadenie za cenu jedného obeda v reštaurácii, ktoré bude veľmi kompaktné, batéria v ňom vydrží aj viac ako rok a bude vyzerať veľmi moderne - alebo si takéto zariadenie môžeme vyrobiť sami, v takom prípade:
- bude trochu väčšie a neudrží ho malý magnet nenápadne na zárubni;
- vyzerať nebude tak oslnivo a profesionálne;
- budeme jasať, ak sa nám podarí dosiahnuť výdrž batérie „až mesiac“;
- minieme naň niekoľkonásobne viac peňazí;
- a ako bonus nám vezme desiatky hodín práce. 🤷
Tento zoznam pôsobí veľmi skepticky, ale…
Napriek objektívnej nevýhodnosti sa budeme zaoberať tvorbou vlastných smart zariadení, lebo to prináša zábavu pri tvorbe a experimentoch, radosť z objavovania princípov a uspokojivý pocit stvoriteľa niečoho vlastného! 🙂👍
Na tejto ceste sa stretneme s mikrokontrolérmi (MCU), vývojovými doskami i s kompaktnými komplexnými zariadeniami - možno v trochu inom poradí, ale poďme sa teda s nimi postupne zoznámiť.

Mikrokontrolér ESP32
V roku 2014 prišla na trh vývojová doska ESP-01 od spoločnosti AI Thinker, ktorá obsahovala nový mikrokontrolér ESP8266 od čínskej spoločnosti Espressif. Jedná sa o jednočipový počítač - SoC (System on Chip). Mal slúžiť ako jednoduchý Wi-Fi modul pre vtedy populárnu platformu Arduino. Dokumentáciu k tomuto novému MCU nebola spočiatku takmer žiadna, no ako sa postupom času sprístupňovala, mnohí vývojári pochopili, že ESP8266 nie je len doplnok, ale hravo prekoná možnosti Arduino, hoci stojí len zlomok ceny. A tak sa tento mikrokontrolér postupne stal veľmi populárnym, hoci v dnešnej dobe ho už nemožno odporúčať.

V roku 2016 spoločnosť Espressif predstavila nový, výrazne vylepšený model mikrokontroléra s názvom ESP32. V súčasnosti už existuje veľa rôznych modelov ESP32 a vzhľadom na veľkú obľúbenosť stále pribúdajú nové. „Klasický“ model ESP32 obsahuje na jedinom štvorcovom čipe veľkosti 5 až 7 mm:
- 2-jadrový procesor Tensilica Xtensa LX6 s frekvenciou do 240 MHz (štandardne 160 MHz):
- podporuje FPU,
- má akceleráciu pre kryptografiu - SHA-512, AES-256, RSA-4096, ECC (eliptické krivky),
- má generátor skutočne náhodných čísel (RNG);
- základnú operačnú pamäť 520 KiB;
- vstupno-výstupné porty (GPIO);
- integrované 2,4 GHz bezdrôtové rozhranie Wi-Fi 4 (1 prúd, 40 MHz) a Bluetooth 4.2;
- niektoré varianty čipu aj rozširujúcu operačnú pamäť;
- niektoré varianty čipu aj flash pamäť.
Variantov čipu klasického ESP32 je viacero, medzi klasiku patrí ESP32-D0WD, ktorý obsahuje len základnú operačnú pamäť.
Niektoré vývojové dosky a zariadenia používajú priamo samotný čip, no väčšina využíva modul, ktorý pod kovovým krytom veľkosti približne 2×2 cm ukrýva samotný čip, externú flash pamäť (obvykle 4 MiB), prípadne aj externú operačnú pamäť (SPIRAM), kryštálový oscilátor a vyvedený je konektor pre anténu alebo je jednoduchá PCB anténa priamo na doske modulu. Klasickým modulom je ESP32-WROOM, no stretneme sa aj s ďalšími, napríklad:
- ESP32-WROVER: má 8 MiB externej operačnej pamäte, pre MicroPython aplikácie sú však dostupné len 4 MiB;
- ESP32-PICO-MINI: má integrované 2 MiB operačnej pamäte a 8 MiB flash.
Novšie modely ESP32
Okrem klasického mikrokontroléra ESP32 sa môžeme stretnúť aj s novšími modelmi (sériami) SoC - tie majú všetky rozšírenú podporu kryptografie o HMAC a digitálny podpis (DSA) a ďalšie rozdiely:
- ESP32-S3: 2-jadrový CPU Tensilica Xtensa LX7 s frekvenciou do 240 MHz a podporou FPU, má badateľne vyšší výkon v MicroPython ako klasický ESP32, podporuje 128-bitové výpočty pre umelú inteligenciu (AI) a analýzu signálov (DSP), no nemá ECC, má viac portov GPIO, vnútorná pamäť má 512 KiB;
- ESP32-C3: 1-jadrový CPU RISC-V s frekvenciou do 160 MHz, napriek jednému jadru má podobný výkon v MicroPython ako klasický ESP32 (vzhľadom na odlišnú architektúru je v niečom rýchlejší a v niečom pomalší), má novšiu verziu Bluetooth 5 (aj mesh), podpora kryptografických výpočtov je obmedzená do SHA-256, RSA-3072 a nemá ECC, vnútorná pamäť má 384 KiB;
- ESP32-C6: oproti ESP32-C3 má lepšiu výbavu pre siete - podporuje Wi-Fi 6 (so šírkou 20 MHz), ZigBee 3.0 a Thread 1.3, výkonný (HP - High-Performance) CPU RISC-V so 160 MHz navyše dopĺňa 20 MHz úsporný (LP - Low-Power) procesor, vnútorná pamäť má 512 + 16 KiB.
Zakúpiť je už možné aj najnovšie modely SoC - pre tie však zatiaľ nie je dostupný MicroPython (čo sa časom iste zmení):
- ESP32-C5: ide o inováciu ESP32-C6 - má vyššie frekvencie procesorov (HP 240 MHz + LP 40 MHz) a Wi-Fi podporuje aj 5 GHz, vnútorná pamäť má 384 + 16 KiB;
- ESP32-H2: pomalší 1-jadrový CPU RISC-V s frekvenciou do 96 MHz, nemá Wi-Fi, ale podporuje Bluetooth 5.3, ZigBee 3.0 a Thread 1.3, podpora kryptografických výpočtov je obmedzená do SHA-256 a RSA-3072, vnútorná pamäť má 320 + 4 KiB;
- ESP32-P4: výkonný 2-jadrový HP CPU RISC-V s frekvenciou 260 MHz a podporou 128-bitových výpočtov pre AI a DSP + úsporné LP jadro 40 MHz, má hardvérovú akceleráciu kódovania videa (H.264) a analýzu obrazu (ISP), nemá Wi-Fi a ani Bluetooth, vnútorná pamäť má 768 + 32 KiB.
Vývojové dosky a komplexné kompaktné zariadenia
Práca s mikrokontrolérom v podobe samotného modulu, či dokonca čipu, by bola zbytočne komplikovaná, preto je praktickejšie využívať vývojové dosky - tie už majú vyvedené porty GPIO (v podobe pinov alebo konektorov) a tiež pomocný USB čip, ktorý umožňuje cez USB pripojenie vytvoriť sériový komunikačný port. Existuje veľa rôznych vývojových dosiek od mnohých výrobcov. Okrem klasických vývojových dosiek existujú aj mnohé špecializované, vybavené rôznymi doplnkami podľa ich určenia - nájsť môžeme vývojové dosky s displejom, dosky s výbavou pre spracovanie a reprodukciu zvuku, dosky so sadou relé a podobne.
|
|
|
|
obrázok: jedna z prvých vývojových dosiek s ESP32 |
obrázok: zariadenie M5StickC Plus s ESP32 |
Vývojové dosky sú výborné pre prototypy, no sú to „len dosky“, nie veľmi vzhľadné - pre praktický projekt je potrebné riešiť peknú krabičku a hlavne spoľahlivé spojenie s externými prvkami (senzory, displej a podobne). Pre prvotné zoznámenie sa s mikrokontrolérom sú výhodné praktické zariadenia v uzavretej krabičke s možnosťami rozšírení. Ťažko nájsť alebo vymyslieť nejaké ustálené pomenovanie, možno niečo ako „komplexné kompaktné zariadenie“ s MCU. 🙂 Týmto smerom sa zamerala napríklad spoločnosť M5Stack - ich produkt M5StickC Plus budeme využívať v tomto kurze, oproti bežným vývojovým doskám obsahuje navyše:
- LCD displej s čipom ST7789, 135×240 px na GPIO 13 (SPI SCK), 15 (SPI MOSI), 18 (RST), 23 (DC) a 5 (CS);
- dve tlačidlá na GPIO 37 a 39;
- červenú LED na GPIO 10;
- vysielač IR na GPIO 9;
- bzučiak na GPIO 2;
- mikrofón SPM1423 na GPIO 0 (CLK) a 34 (DATA);
- obvod AXP192 pre ovládanie napájania (PMU) na GPIO 22 (SCL), 21 (SDA) a 35 (INT);
- 6-osový akcelerometer (IMU) MPU6886 na GPIO 22 (SCL), 21 (SDA);
- hodiny reálneho času (RTC) BM8563 na GPIO 22 (SCL), 21 (SDA);
- zabudovanú batériu 120 mAh;
- GROVE konektor s I²C na GPIO 33 (SCL) a 32 (SDA);
- konektor pre porty GPIO 0, 25 a 26.
Ďalšie veľmi zaujímavé praktické zariadenia s ESP32 a rôzne príslušenstvo ponúkajú napríklad:
- M5Stack: m5stack.com
- LILYGO (prv TTGO): lilygo.cc
- Waveshare: waveshare.com

