Lekce 1 - Seznámení s ESP-32 - Online kurz
Vítejte u prvního tutoriálu kurzu Internetu věcí s ESP32. Tento kurz je určen středně pokročilým programátorům, kteří chtějí své projekty propojit s internetem. V jeho průběhu se naučíme používat modul ESP32, který integruje Bluetooth, Low Energy Bluetooth (BLE) a Wi-Fi.
Minimální požadavky kurzu
Pro úspěšné zvládnutí tohoto kurzu potřebujeme znát programovací jazyk C/C++, přičemž je vhodný jeho framework Wiring z našeho kurzu Arduino - Programovací jazyk. Výhodou je také základní znalost elementární práce s hardwarem.
Mikrokontrolery ESP32
Pod označením ESP32 se skrývá řada levných nízkoenergetických mikrokontrolerů vyvinutých společností Espressif. Moduly s ESP32 zahrnují bezdrátové funkce Wi-Fi a Bluetooth s podporou BLE (Bluetooth Low Energy). Procesor obsahuje dvě výpočetní jádra a jeho SRAM paměť má velikost 512 kB. Jde o nástupce známého mikrokontroleru ESP8266, který má oproti starší revizi řadu nových funkcí.
Představení čipu ESP32
Mikrokontrolery ESP32 jsou v praxi velmi oblíbené, zejména v aplikacích Internetu věcí (IoT). Je tomu tak především kvůli jejich jednoduchosti a širokým schopnostem:
- kompatibilita s frameworkem Wiring pro Arduino,
- konektivita prostřednictvím Wi-Fi, Bluetooth a Bluetooth Low Energy (BLE),
- většina ESP32 je dvoujádrová. Dvě 32bitová jádra Xtensa LX6 zajišťují dobrý výkon,
- podpora režimů nízké spotřeby,
- široká škála periferií jako jsou kapacitní dotykové displeje,
ADC
,DAC
,UART
,SPPI
,I2C
,PWM
a mnoho dalších, - nízká cena kolem 150 Kč.
Specifikace čipu ESP32
Podrobné specifikace ESP32 jsou uvedeny v datasheetu výrobce. Pojďme se nyní podívat na ty nejdůležitější. Bezdrátové připojení čipu má tři varianty:
- Wi-Fi s rychlostí přenosu dat až 150 Mbps s HT40,
- Bluetooth Classic,
- Bluetooth Low Energy (BLE).
Procesor použitý v čipu je Tensilica Xtensa Dual-Core. Je to 32bitový LX6
mikroprocesor běžící na 160 nebo 240 MHz. Mimo jiné je vybavený funkcí
Low Power, která zajišťuje, že lze používat převody
ADC
i během stavu hlubokého spánku. Tento procesor má k
dispozici paměť:
- 448 KB ROM pro bootování a základní funkce,
- 520 KB SRAM pro data a pokyny,
- 8 KB rychlé RTC SRAM pro ukládání dat během RTC bootování z režimu hlubokého spánku,
- 8 KB pomalé RTC SRAM pro koprocesorový přístup v režimu hlubokého spánku,
- 1 Kbit eFuse, z toho 256 bitů je použito pro systém (MAC adresa a konfigurace čipu) a zbývajících 768 bitů je vyhrazeno pro zákaznické aplikace včetně Flash-Encryption a Chip-ID,
- vestavěnou flash pamět.
Flash pamět je u mikrokontrolerů ESP32-D2WD a ESP32-PICO-D4
připojená interně přes IO16
, IO17
,
SD_CMD
, SD_CLK
, SD_DATA_0
a
SD_DATA_1
.
Vstupní a výstupní periferie ESP32 jsou následující:
- periferní rozhraní s
DMA
, které zahrnuje i kapacitní dotyk, - analogově-digitální převodník
ADC
, - digitálně-analogový převodník
DAC
, - sběrnice
I2C
, - univerzální asynchronní přijímač-vysílač
UART
, - sériové periferní rozhraní
SPI
, - sběrnice pro propojení audio zařízení
I2S
, - redukované rozhraní nezávislé na médiích
RMII
, - rozhraní pulzně šířkové modulace
PWM
.
Čip ESP32 disponuje také možnostmi zabezpečení. Konkrétně jsou v něm
implementovány hardwarové akcelerátory pro AES
a
SSL/TLS
.
Vývojové desky ESP32
Termín ESP32 označuje holý čip ESP32. Často se však také používá k označení vývojových desek s čipem ESP32. Používání samostatných čipů ESP32 není při učení, testování a prototypování snadné ani praktické. Většinu času proto budeme chtít používat spíše vývojovou desku s čipem ESP32.
Vývojové desky se dodávají se všemi potřebnými obvody pro napájení a programování čipu, jeho připojení k počítači a piny pro připojení periferií. Desky mají také vestavěné napájení a ovládání LED diody, anténu pro Wi-Fi signál a další užitečné funkce. Některé desky dokonce přicházení již s extra hardwarem jakou jsou specifické senzory, moduly, displeje nebo třeba kamera (v případě ESP32-CAM).
Parametry vývojové desky
Jakmile začneme hledat desky ESP32 na internetu, zjistíme, že jich existuje opravdu široká škála od různých výrobců. I když všechny fungují podobným způsobem, některé desky mohou být pro některé projekty vhodnější než jiné. Při hledání vývojové desky ESP32 je třeba vzít v úvahu několik aspektů:
- rozhraní USB-to-UART a obvod regulátoru napětí: Většina plnohodnotných vývojových desek má tyto dvě vlastnosti. Jsou důležité pro snadné připojení ESP32 k počítači za účelem nahrání kódu a napájení,
- tlačítka BOOT a RESET/EN: Slouží pro přepnutí desky do režimu blikání a pro restart desky. Některé desky tlačítko BOOT nemají a obvykle automaticky přejdou do režimu blikání,
- konfigurace a počet pinů: Pro plné využití schopností
ESP32 potřebujeme mít přístup k pinoutu desky (to je mapa, která ukazuje,
který pin odpovídá kterému
GPIO
a jeho funkcím), - anténní konektor: Většina desek je dodávána s integrovanou anténou pro signál Wi-Fi. Některé desky jsou dodávány s anténním konektorem pro případné připojení externí antény, čímž se dosah Wi-Fi zvýší,
- konektor baterie: Některé vývojové desky jsou dodávány s konektory pro LiPo baterie (napájecí piny jsou zachované),
- extra hardwarové funkce: Některé vývojové desky ESP32 mají například vestavěný OLED displej, modul LoRa, modul SIM800 (pro GSM a GPRS), držák baterie, kameru a další.
Deska vhodná pro začátečníky
Pro začátečníky je vhodné zvolit desku ESP32 s velkým množstvím
GPIO
pinů a bez přidaných hardwarových funkcí. Je také
důležité, aby deska byla dodávána s USB vstupem pro napájení a nahrání
kódu. V našich projektech v rámci kurzu Internetu věcí s
ESP32 tedy budeme jako referenci používat desku ESP32 DEVKIT
DOIT. Tato deska plně vyhovuje zmíněným předpokladům. Všechny
informace nicméně budou kompatibilní i s ostatními vývojovými deskami jako
například Adafruit ESP32 Feather, Sparkfun ESP32 Thing, NodeMCU-32S, Wemos
LoLin32 a další.
ESP32 DEVKIT DOIT
Deska ESP32 DEVKIT DOIT se dodává s 36 piny (počet dostupných pinů závisí na konkrétním modelu). Deska se dodává s rozhraním microUSB, které budeme používat pro připojení k počítači a nahrání kódu nebo k napájeni. Ke komunikaci s počítačem přes COM port pomocí sériového rozhraní deska využívá čip CP2102 nebo CH340. Musíme proto zkontrolovat konkrétní typ převodníku na desce, abychom si mohli nainstalovat příslušné ovladače.
Deska má tlačítko RESET pro restart a tlačítko BOOT
pro uvedení do režimu blikání. Dodává se také s vestavěnou modrou LED
diodou, která je vnitřně připojena na GPIO 2
. Tato dioda je
užitečná při ladění. Je zde také červená dioda, která se rozsvítí,
pokud je připojeno napájení:

Pinout ESP32 DEVKIT DOIT
Čip ESP32 je dodáván s 48 piny s více funkcemi. Na všech vývojových
deskách ESP32 nicméně nejsou všechny piny zpřístupněné. Jak jsme si již
řekli, deska ESP32 DEVKIT DOIT se obvykle dodává s 36 GPIO
,
které můžeme použít pro připojení k perifériím.
Napájecí piny
Všechny desky jsou obvykle dodávány s napájecími piny 3V3
,
GND
a VIN
. Tyto piny slouží k napájení desky,
pokud ji nenapájíme přes USB port. Pokud ano, je možné je využít k
napájení dalších periférií.
Piny General Purpose Input Output
Téměř všechny GPIO
piny mají přidělené číslo a tak je
také budeme označovat. Výhodou ESP32 je, že sami rozhodujeme, které piny
použijeme pro UART
, I2C
nebo SPI
.
Stačí je nastavit v kódu našeho programu. Tento přístup je možný díky
multiplexní funkci čipu ESP32, která umožňuje přiřadit více funkcí ke
stejnému pinu.
ESP32 nabízí také piny se specifickými vlastnostmi pro konkrétní projekty.
Pokud v kódu GPIO
piny uživatelsky nenastavíme, budou
nakonfigurovány standardně. Tato standardní konfigurace je znázorněná
zde:

Mějme na paměti, že umístění pinů se může měnit v závislosti na výrobci.
To by bylo pro tuto lekci vše.
V příští lekci, Přerušení a časovač na modulu ESP-32, se seznámíme s možností přerušení a časování na modulu ESP-32.