Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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í:

Internet věcí s ESP32

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:

Internet věcí s ESP32

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.


 

Všechny články v sekci
Internet věcí s ESP32
Přeskočit článek
(nedoporučujeme)
Přerušení a časovač na modulu ESP-32
Článek pro vás napsal Jiří Tomešek
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
Aktivity