IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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.
Špecifikácia čipu ESP32

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).
Procesor použitý v čipe je Tensilica Xtensa Dual-Core. Je to 32-bitový LX6 mikroprocesor bežiaci na 160 alebo 240 MHz. Okrem iného je vybavený funkciou Low Power, ktorá zaisťuje, že je možné používať prevody 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.
Flash pamät je u mikrokontrolérov ESP32-D2WD a ESP32-PICO-D4 pripojená interne cez 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.
Čip ESP32 disponuje aj možnosťami zabezpečenia. Konkrétne sú v ňom implementované hardvérové akcelerátory pre 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.
Doska vhodná pre začiatočníkov

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:

Internet vecí s ESP32

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:

Internet vecí s ESP32

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.


 

Všetky články v sekcii
Internet vecí s ESP32
Preskočiť článok
(neodporúčame)
Prerušenie a časovač na module ESP-32
Článok pre vás napísal Jiří Tomešek
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity