ESP32-DEVKITC-32D – płytka rozwojowa z modułem Wi-Fi i Bluetooth ESP32
Układy ESP32 produkowane przez firmę Espressif stanowią połączenie mikrokontrolera oraz modułu komunikacyjnego Wi-Fi oraz Bluetooth. Cechują się niską ceną, małym poborem mocy oraz rozbudowaną funkcjonalnością. Z tego powodu znajdują coraz szersze zastosowanie zarówno w warsztatach hobbystów, jak i w zastosowaniach profesjonalnych i przemysłowych.
Serce układów ESP32 stanowią 32-bitowe rdzenie Tensilica Xtensa LX6 o taktowaniu 160 MHz lub 240 MHz. Układ obsługuje szereg interfejsów cyfrowych, takich jak I2C, SPI, UART, I2S oraz CAN. Zawiera również przetworniki analogowo-cyfrowe oraz cyfrowo-analogowe. Pojemność wbudowanej pamięci SRAM wynosi 520 KB, natomiast pojemność pamięci ROM – 448 KB. Jeśli chodzi o komunikację bezprzewodową, to moduł obsługuje standardy Wi-Fi 802.11 b/g/n, a także Bluetooth 4.2 BR/EDR i BLE. W wyposażeniu tego typu układu nie mogło zabraknąć bogatej funkcjonalności bezpieczeństwa transmisji. Moduł obsługuje m.in. protokoły WFA, WPA/WPA2 oraz WAPI, bezpieczne uruchamianie szyfrowanie Flash, 1024-bitowe OTP, a także funkcje AES, SHA-2, RSA, ECC oraz RNG.
Sprawdzenie możliwości układu umożliwiają dostępne na rynku zestawy deweloperskie dla układu ESP32. Jednym z nich jest niewielki moduł ESP32-DEVKIT-32D. Jest to podstawowy zestaw rozwojowy wyposażony w moduł Wi-Fi oparty o ESP32, komponenty niezbędne do łatwego programowania układu, a także złącza szpilkowe z wyprowadzonymi interfejsami komunikacyjnymi mikrokontrolera.
Rys. 2. Zestaw rozwojowy ESP32-DEVKITC-32D
Zestaw ESP32-DevKitC-32D
Podstawowy komponentem zestawu jest moduł ESP32-WROOM-32D. Moduł zawiera oczywiście układ SoC w wersji dwurdzeniowej – ESP32-D0WD. Układ zawiera więc dwa rdzenie Xtensa LX6 o taktowaniu 240 MHz. Układ dysponuje szerokim zakresem interfejsów komunikacyjnych, od tradycyjnych wyprowadzeń GPIO i PWM, przez standardowe interfejsy takie jak I2C, SPI i UART, po bardziej zaawansowaną komunikację, taką jak interfejsy SDIO, a także I2S. Mikrokontroler zawiera także czujnik Halla oraz czujniki pojemnościowe umożliwiające podłączenie np. przycisku dotykowego. Podobnie jak cała reszta rodziny ESP32, układy zastosowane w modułach ESP-WROOM-32D również dysponują komunikacją Wi-Fi oraz Bluetooth.
Oprócz układu SoC moduł zawiera także pamięć SPI Flash o pojemności 32 MBit, oscylator kwarcowy 40 MHz, a także antenę PCB. Moduł ma wymiary 18,0 x 25,5 x 3,1 mm. Dysponuje złączem do lutowania powierzchniowego, na które wyprowadzono wszystkie niezbędne połączenia.
Wyposażenie zestawu
Zestaw rozwojowy ESP32-DEVKITC-32D, oprócz modułu mikrokontrolera zawiera również konwerter USB-UART CP2102N firmy SiLabs. Konwerter umożliwia zarówno programowanie układu, jak i komunikację zestawu z komputerem. Zestaw zawiera także port microUSB, który pozwala na komunikację z komputerem PC, a także dostarczenie zasilania do płytki. Dodatkowo na płytce zamontowano dwa przyciski oznaczone jako Enable oraz Boot. Służą do resetowania płytki, a także do wprowadzenia w tryb wgrywania oprogramowania. Aby wykonać ta drugą czynność należy przytrzymać przycisk Boot i przycisnąć wtedy przycisk EN. Ostatnim ważnym komponentem zestawu jest złącze szpilkowe o standardowym rastrze 2,54 mm. Na to złącze wyprowadzono najważniejsze interfejsy komunikacyjne układu. Na rysunku poniżej można obejrzeć rozkład wyprowadzeń omawianego złącza.
Rys. 4. Rozkład wyprowadzeń złącza ESP32-DevKitC-32D
Uwaga!Niektóre wyprowadzenia połączone ze złączem szpilkowym służą również do komunikacji z pamięcią SPI Flash wewnątrz modułu ESP32-WROOM. Chodzi tu o wyprowadzenia od numeru 17 do 22. W takim przypadku warto upewnić się, że nie nastąpi konflikt między pamięcią SPI Flash a ewentualnymi układami podłączonymi do tych wyprowadzeń.
Jak widać jest więc to podstawowa płytka bazowa. Znajduje się na niej tylko sam mikrokontroler, układy służące do programowania kontrolera, a także wyprowadzone interfejsy komunikacyjne pozwalające na podłączenie dodatkowych elementów projektu, takich jak czujniki czy wyświetlacze. Na samej płytce nie ma żadnego elementów rozszerzających możliwości mikrokontrolera, co pozwala na zmniejszenie ceny produktu. Z drugiej strony taka koncepcja zestawu pozwala użytkownikowi na dowolny dobór komponentów projektu i nie jest on ograniczany przez dobór elementów przez producenta. Na bardzo podobnym pomyśle opierają się zresztą popularne płytki Arduino Nano oraz STM32 Nucleo-32.
Warto wspomnieć, że płytka jest zgodna z systemem Amazon FreeRTOS. Oznacza to, że podczas projektowania kodu na ESP32 można zaimplementować system czasu rzeczywistego firmowany przez Amazon. Umożliwia on więc łatwą integrację z pozostałymi usługami tej firmy, takimi jak AWS IoT czy AWS Greengrass.
Obsługa zestawu w środowisku Arduino
Jedną z ważnych zalet całej rodziny układów ESP32 jest możliwości integracji z platformą Arduino. Pozwala to na proste tworzenie prototypów projektów, a także umożliwia skorzystanie z szerokiego wyboru bibliotek napisanych specjalnie dla środowiska. Dodatkowo użytkownicy mający już doświadczenie w pracy z Arduino mogą bezproblemowo zaimplementować ESP32 w swoich nowych projektach.
Aby móc programować układy w środowisku Arduino należy wykonać kilka prostych kroków. Przede wszystkim trzeba wejść do menu Plik > Preferencje, a następnie dopisać do listy dodatkowych adresów URL do menedżera płytek następujący adres:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Akceptujemy adres przyciskiem OK.
Rys. 5. Menu Preferencje w środowisku Arduino
W kolejnym kroku trzeba wejść w menu Narzędzia > Płytka > Menedżer Płytek. W okienku należy wyszukać „esp32” i zainstalować pakiet esp32. Instalacja może potrwać kilka minut.
Rys. 6. Instalacja pakietu do obsługi płytek z układami ESP32
Płytka ESP32-DEVKITC-32D jest oznaczona w systemie jako ESP32 Dev Module. W związku z tym aby zaprogramować płytkę należy wybrać tą opcję w menu Narzędzia > Płytka.
Rys. 7. Menu Narzędzia z wybraną płytką ESP32 Dev Module
Teraz można już w pełni korzystać z zestawu w środowisku Arduino.
Podsumowanie
Zestaw ESP32-DevKitC-32D to jeden z najprostszych oraz najtańszych zestawów do rozpoczęcia przygody z wszechstronnymi układami ESP32. Układy te umożliwiają prostą implementację komunikacji bezprzewodowej w projekcie. Dzięki aż dwóm wydajnym rdzeniom o taktowaniu aż 240 MHz można osiągnąć stosunkowo dużą moc obliczeniową. Zgodność ze środowiskiem Arduino oraz wbudowany konwerter USB-UART pozwalają na uproszczenie procesu prototypowania i programowania układu ESP32. Natomiast złącze szpilkowe zamontowane na płytce pozwala na podłączenie do układu komponentów peryferyjnych, takich jak czujniki czy wyświetlacze. Wydaje się więc, że zestaw jest bardzo dobrym punktem startowym do projektowania aplikacji służących do przesyłania danych do sieci IoT, a także do innych projektów elektronicznych.