1. diel - Zoznámenie s ESP-32 - Online kurz
Vitajte pri prvom tutoriále kurzu Internetu vecí s ESP32. Tento kurz je určený stredne pokročilým programátorom, ktorí chcú svoje projekty prepojiť s internetom. V jeho priebehu sa naučíme používať modul ESP32, ktorý integruje Bluetooth, Low Energy Bluetooth (BLE) a WiFi.
Minimálne požiadavky kurzu
Pre úspešné zvládnutie tohto kurzu potrebujeme poznať programovací jazyk C/C++, pričom je vhodná jeho verzia Wiring z nášho kurzu Arduino - Programovací jazyk. Výhodou je aj základná znalosť elementárnej práce s hardvérom.
Mikrokontroléry ESP32
Pod označením ESP32 sa skrýva rad lacných a nízkoenergetických mikrokontrolérov vyvinutých spoločnosťou Espressif. Moduly s ESP32 zahŕňajú bezdrôtové funkcie Wi-Fi a Bluetooth s podporou BLE (Bluetooth Low Energy). Procesor obsahuje dve výpočtové jadrá a jeho SRAM pamäť má veľkosť 512 kB. Ide o nástupcu známeho mikrokontroléru ESP8266, ktorý má oproti staršej revízii rad nových funkcií.
Predstavenie čipu ESP32
Mikrokontroléry ESP32 sú v praxi veľmi obľúbené, najmä v aplikáciách Internetu vecí (IoT). Je tomu tak predovšetkým kvôli ich jednoduchosti a širokým schopnostiam:
- kompatibilita s programovacím jazykom Arduino,
- konektivita prostredníctvom Wi-Fi, Bluetooth a Bluetooth Low Energy (BLE),
- väčšina ESP32 je dvojjadrová. Dve 32-bitové jadrá Xtensa LX6 zaisťujú dobrý výkon,
- podpora režimov nízkej spotreby,
- široká škála periférií ako sú kapacitné dotykové displeje, ADC, DAC, UART, SPPI, I2C, PWM a mnoho ďalších,
- nízka cena okolo 150 Sk.
Podrobné špecifikácie ESP32 sú uvedené v datasheete výrobcu. Poďme sa teraz pozrieť na tie najdôležitejšie. Bezdrôtové pripojenie čipu má v zásade tri varianty:
- Wi-Fi s rýchlosťou prenosu dát až 150 Mbps s HT40,
- Bluetooth Classic,
- Bluetooth Low Energy (BLE).
ADC
aj počas stavu hlbokého spánku. Tento procesor má k
dispozícii pamäť:
- 448 KB ROM pre bootovanie a základné funkcie,
- 520 KB SRAM pre dáta a pokyny,
- 8 KB rýchle RTC SRAM pre ukladanie dát počas RTC bootovania z režimu hlbokého spánku,
- 8 KB pomalé RTC SRAM pre koprocesorový prístup v režime hlbokého spánku,
- 1 Kbit eFuse, z toho 256 bitov je použitých pre systém (MAC adresa a konfigurácia čipu) a zvyšných 768 bitov je vyhradené pre zákaznícke aplikácie vrátane Flash-Encryption a Chip-ID,
- vstavanú flash pamät.
IO16
, IO17
, SD_CMD
,
SD_CLK
, SD_DATA_0
a SD_DATA_1
.
Vstupné a výstupné periférie ESP32 sú nasledujúce:
- periférne rozhranie s
DMA
, ktoré zahŕňa aj kapacitný dotyk, - analógovo-digitálny prevodník
ADC
, - digitálno-analógový prevodník
DAC
, - zbernica
I2C
, - univerzálny asynchrónny prijímač-vysielač
UART
, - sériové periférne rozhranie
SPI
, - zbernice pre prepojenie audio zariadení
I2S
, - redukované rozhranie nezávislé od médií
RMII
, - rozhranie pulzne šírkovej modulácie
PWM
.
AES
a
SSL/TLS
.
Vývojové dosky ESP32
Termín ESP32 označuje holý čip ESP32. Často sa však tiež používa na označenie vývojových dosiek s čipom ESP32. Používanie samostatných čipov ESP32 nie je pri učení, testovaní a prototypovaní ľahké ani praktické. Väčšinu času preto budeme chcieť používať skôr vývojovú dosku s čipom ESP32.
Vývojové dosky sa dodávajú so všetkými potrebnými obvodmi na napájanie a programovanie čipu, jeho pripojenie k počítaču a piny na pripojenie periférií. Dosky majú tiež vstavané napájanie a ovládanie LED diódy, anténu pre Wi-Fi signál a ďalšie užitočné funkcie. Niektoré dosky dokonca prichádzajú už s extra hardvérom ako sú špecifické senzory, moduly, displeje alebo napríklad kamera (v prípade ESP32-CAM).
Parametre vývojovej dosky
Akonáhle začneme hľadať dosky ESP32 na internete, zistíme, že ich existuje skutočne široká škála od rôznych výrobcov. Aj keď všetky fungujú podobným spôsobom, niektoré dosky môžu byť pre niektoré projekty vhodnejšie ako iné. Pri hľadaní vývojovej dosky ESP32 je potrebné vziať do úvahy niekoľko aspektov:
- rozhranie USB-to-UART a obvod regulátora napätia: Väčšina plnohodnotných vývojových dosiek má tieto dve vlastnosti. Sú dôležité pre jednoduché pripojenie ESP32 k počítaču za účelom nahrania kódu a napájania,
- tlačidlá BOOT a RESET/EN: Slúži pre prepnutie dosky do režimu blikania a pre reštart dosky. Niektoré dosky tlačidlo BOOT nemajú a obvykle automaticky prejdú do režimu blikania,
- konfigurácia a počet pinov: Pre plné využitie
schopností ESP32 potrebujeme mať prístup k pinoutu dosky (to je mapa, ktorá
ukazuje, ktorý pin zodpovedá ktorému
GPIO
a jeho funkciám), - anténny konektor: Väčšina dosiek je dodávaná s integrovanou anténou pre signál Wi-Fi. Niektoré dosky sú dodávané s anténnym konektorom pre prípadné pripojenie externej antény, čím sa dosah Wi-Fi zvýši,
- konektor batérie: Niektoré vývojové dosky sú dodávané s konektormi pre LiPo batérie (napájacie piny sú zachované),
- extra hardvérové funkcie: Niektoré vývojové dosky ESP32 majú napríklad vstavaný OLED displej, modul LoRa, modul SIM800 (pre GSM a GPRS), držiak batérie, kameru a ďalšie.
Pre začiatočníkov je vhodné zvoliť dosku ESP32 s veľkým množstvom
GPIO
pinov a bez pridaných hardvérových funkcií. Je tiež
dôležité, aby doska bola dodávaná s USB vstupom pre napájanie a nahranie
kódu. V našich projektoch v rámci kurzu Internetu vecí s
ESP32 teda budeme ako referenciu používať dosku ESP32 DEVKIT
DOIT. Táto doska plne vyhovuje spomínaným predpokladom. Všetky
informácie však budú kompatibilné aj s ostatnými vývojovými doskami ako
napríklad Adafruit ESP32 Feather, Sparkfun ESP32 Thing, NodeMCU-32S, Wemos
LoLin32 a ďalšie.
ESP32 DEVKIT DOIT
Doska ESP32 DEVKIT DOIT sa dodáva s 36 pinmi (počet dostupných pinov závisí od konkrétneho modelu). Doska sa dodáva s rozhraním microUSB, ktoré budeme používať na pripojenie k počítaču a nahranie kódu alebo k napájaniu. Na komunikáciu s počítačom cez COM port pomocou sériového rozhrania doska využíva čip CP2102 alebo CH340. Musíme preto skontrolovať konkrétny typ prevodníka na doske, aby sme si mohli nainštalovať príslušné ovládače.
Doska má tlačidlo RESET pre reštart a tlačidlo BOOT pre
uvedenie do režimu blikania. Dodáva sa tiež so vstavanou modrou LED diódou,
ktorá je vnútorne pripojená na GPIO 2
. Táto dióda je
užitočná pri ladení. Je tu tiež červená dióda, ktorá sa rozsvieti,
pokiaľ je pripojené napájanie:
Pinúť ESP32 DEVKIT DOIT
Čip ESP32 je dodávaný s 48 pinmi s viacerými funkciami. Na všetkých
vývojových doskách ESP32 však nie sú všetky piny sprístupnené. Ako sme
si už povedali, doska ESP32 DEVKIT DOIT sa obvykle dodáva s 36
GPIO
, ktoré môžeme použiť na pripojenie k perifériám.
Napájacie piny
Všetky dosky sú obvykle dodávané s napájacími pinmi 3V3
,
GND
a VIN
. Tieto piny slúžia na napájanie dosky,
pokiaľ ju nenapájame cez USB port. Ak áno, je možné ich využiť na
napájanie ďalších periférií.
Piny General Purpose Input Output
Takmer všetky GPIO
piny majú pridelené číslo a tak ich
tiež budeme označovať. Výhodou ESP32 je, že sami rozhodujeme, ktoré piny
použijeme pre UART
, I2C
alebo SPI
.
Stačí ich nastaviť v kóde nášho programu. Tento prístup je možný vďaka
multiplexnej funkcii čipu ESP32, ktorá umožňuje priradiť viac funkcií k
rovnakému pinu.
ESP32 ponúka aj piny so špecifickými vlastnosťami pre konkrétne projekty.
Ak v kóde GPIO
piny užívateľsky nenastavíme, budú
nakonfigurované štandardne. Táto štandardná konfigurácia je znázornená
tu:
Majme na pamäti, že umiestnenie pinov sa môže meniť v závislosti od výrobcu.
To by bolo pre túto lekciu všetko.
V budúcej lekcii, Prerušenie a časovač na module ESP-32 , sa zoznámime s možnosťou prerušenia a časovania na module ESP-32.