Układy i moduły serii ESP32, opatrzone charakterystycznym logotypem, produkuje chińska firma ESPRESSIF z siedzibą w Szanghaju. Są one następcami niedrogiego układu ESP8266, łączącego w jednej strukturze mikrokontroler oraz obwody do komunikacji za pośrednictwem Wi-Fi. ESP32 przystosowany jest – oprócz łączności Wi-Fi – także do porozumiewania się z otoczeniem poprzez protokół Bluetooth, jego procesor może być 2-rdzeniowy, a do wybranych wersji układu można podłączyć pseudostatyczną pamięć RAM o pojemności do 8 MB. Oprócz tego układ jest wewnętrznie taktowany szybszym zegarem – w niektórych wersjach nawet 240 MHz, obsługuje także kilka trybów oszczędzania energii.
Moduły z ESP32 konkurują technicznie i cenowo z takimi konstrukcjami, jak Raspberry Pi Pico, STM32Nucleo czy Arduino.
ESP32 – dostępne wersje
Od czasu pojawienia się pierwszego ESP32 rodzina kontrolerów znacznie się rozrosła. Pojawiły się nowe serie jak ESP32-S czy ESP32-C z rozmaitymi wariantami w obrębie poszczególnych rodzin. W tabeli 1, na przykładzie wybranych wersji, pokazano niektóre z różnic pomiędzy nimi.
Do zastosowań małoseryjnych lub hobbystycznych wybiera się – zamiast kontrolerów – moduły, czyli małe płytki, na których pod metalowym ekranem jest wlutowany transceiver, oscylator kwarcowy i niezbędne elementy dodatkowe, takie jak pojemności odsprzęgające linie zasilania. Na krawędzie modułu wyprowadzone są podłączenia do dostępnych portów, a także linie zasilania i resetu. Na płytce może znajdować się ścieżka pełniąca funkcję anteny Wi-Fi i Bluetooth lub miniaturowe gniazdo do podłączenia zewnętrznej anteny. Do programowania takiego modułu potrzebny jest zewnętrzny konwerter USB-UART, pracujący z sygnałami TxD i RxD o poziomach 0...3,3 V. Wyprowadzenie TxD konwertera powinno być połączone z wyprowadzeniem RxD modułu, a wyprowadzenie RxD konwertera łączy się z wyprowadzeniem TxD modułu. Dodatkowo należy połączyć ze sobą wyprowadzenia GND konwertera i modułu. Aby wprowadzić moduł w tryb programowania, port GPIO0 w momencie resetu lub podania napięcia zasilania powinien być zwarty do masy.
Jeszcze wygodniejsza w użyciu okazuje się jedna z wielu dostępnych na rynku płyt rozwojowych (fotografia tytułowa). Taka płyta ma już zamontowany moduł ESP32, może być wyposażona w stabilizator 3,3 V, układ konwertera UART i gniazdo USB do wpięcia kabla łączącego płytę z komputerem, a przy okazji dostarczającego zasilanie. Przy opisanej konfiguracji w czasie programowania użytkownik nie musi sam ustawiać poziomu na porcie GPIO0 i resetować modułu, gdyż odbywa to się z użyciem dodatkowych sygnałów udostępnianych przez konwerter.