ESP32 – rewolucja wśród mikrokontrolerów

ESP32_PROTOTYPE

Słyszeliście może o ESP8266? Tak, chodzi mi o ten moduł WiFi. A może jednak nie? ESP8266 jest mikrokontrolerem, w pełni funkcjonalnym – a ESP32 jest jego młodszym, znacznie ulepszonym bratem. 

 

ESP8266-01 – niepozorny maluch

Większość z was myślała o ESP8266 w kategoriach modułu WiFi – zwykły, podłączany przez port szeregowy moduł sterowany tzw. Komendami AT dający możliwość wystawienia na świat prostego serwera WWW czy pobierania danych z sieci i wykorzystywanie ich w projektach. Prawdopodobnie podczas podłączania go podpinaliście też pin oznaczony jako GPIO0 do 3,3 V, tak jak kazali w poradniku/dokumentacji/gdziekolwiek indziej. Czemu?

P1010431
ESP8266-01 – prawda że mały?

Gdybyście pozostawili ten pin niepodłączony do niczego zaistniałaby (mała, ale jednak) szansa na to, że moduł nie będzie reagować na wasze komendy. Pin pozostawiony sam sobie pozostaje w tzw. stanie nieustalonym (ang. floating). Mogłaby więc zaistnieć sytuacja, gdy podczas włączania się modułu stan tego pinu mógłby zostać odczytany jako niski. Nadal jednak nie powiedziałem, czemu moduł przestałby reagować. A no dlatego, że w tym momencie przełączył się on do trybu Download Flash (ang. ściąganie oprogramowania). Tak, ESP8266 można programować. Jest on mikrokontrolerem, taktowanym z częstotliwością 26 Mhz – to ponad dwa razy więcej niż w przypadku Arduino Mega!

Posiada:

  • 32 -bitowy (!)  procesor,
  • Wbudowany czujnik temperatury (nadaje się tylko do mierzenia temperatury samego mikrokontrolera, jest umiejscowiony w jego środku),
  • Porty UART oraz SPI,
  • W zależności od wersji różną ilość pinów GPIO (w wersji 01 jest równa 2, ale już w wersji 07 możemy ich uświadczyć 9)

Na koniec powiem tylko, że powstała już wtyczka do środowiska Arduino IDE pozwalająca na programowanie go za pomocą standardowych poleceń znanych nam z Arduino oraz interaktywny firmware bazujący na lua: nodemcu. Ale, przejdźmy do właściwego tematu posta…

ESP32 – godny następca

Kiedyś na wykopie napisałem, że udało mi się dostać do programu betatestów firmy Espressif Systems. W ramach tego właśnie programu otrzymałem nowiutki, ręcznie składany moduł ESP32, którego nazwa kodowa to ESP-WROOM-03.

Co się zmienia?

Po pierwsze, samo CPU – a raczej dwa CPU. ESP32 posiada dwa potężne procesory Tensilica 108 pracujące z taktowaniem 160 Mhz. Dzięki temu podczas pisania aplikacji nie musimy martwić się o łączność – tą będzie zajmować się drugi procesor, o ile mu tak nakażemy. Posiada on 400 KB ramu, 1 MB pamięci flash, 24 piny GPIO (w tym 2x UART, SPI, I2C, DMA i I2S). Idąc dalej – dwa timery, 16- i 32-bitowy, służące między innymi do obsługi PWM, 12-bitowe ADC oraz 8-bitowe DAC (!)

W poprzednim akapicie użyłem słowa łączność zamiast WiFi. Tak, w zestawie z ESP32 dostajemy nie tylko WiFi działające z szybkością HT40 (144,4 Mbps) ale także Bluetooth w parze z BLE (Bluetooth Low Energy)! Gdy mówimy o łączności, mikrokontroler ten posiada sprzętowe wsparcie dla najpopularniejszych metod hashowania i szyfrowania – SHA, MD5, DES i AES. Wsparcie SSL oraz TLS także znalazło się na liście 🙂

Przechodząc bardziej do dodatków, również znajdziemy tam czujnik temperatury, 12-bitowy, wskazujący zakres temperatur od -40 do +125 stopni Celsjusza. To mieliśmy jednak okazje zobaczyć w ESP8266 – nowością jest tu wbudowany RTC (Real Time Clock), tak samo jak obsługa dotyku pojemnościowego – wystarczy dołączyć do dowolnego obsługującego go pinu elektrodę, nie potrzeba nic więcej!

Jeżeli chcesz, mozesz zobaczyć pinout mikrokontrolera lub całego modułu.

This slideshow requires JavaScript.

Oprócz zmian w sprzęcie mamy także zmiany software’owe – ESP32 chodzi na RTOS’ie (Real Time Operating System), a dokładnie na FreeRTOS. SDK zostało uproszczone – jego publiczną wersję możecie zobaczyć tu. Nie zawiera ona jeszcze wielu funkcji, ale to z dwóch powodów – po pierwsze, panowie z Espressif Systems chcą dopieścić je jak tylko mogą, a po drugie…

No właśnie, a co po drugie?

…rozpoczęcie masowej produkcji modułu planowane jest na kwiecień. Czemu planowane? A no – według planów, mieliście dostać je już na początku lutego – to okazało się niemożliwe z wielu powodów.

Czy ESP32 ma szansę zawojować rynek?

Jasne, że tak! Z (przewidywaną) ceną około $5 i tyloma genialnymi podzespołami na pokładzie to pewne. Tylko musimy odpowiedzieć sobie na pytanie – w jakim stopniu?

Jak już wam wiadomo, ESP32 produkuje ta sama firma, która wypuściła na świat ESP8266 – Espressif Systems. Jej ESP8266 cieszy się wielką popularnością jako moduł WiFi jak i mikrokontroler (tak jak już wspominałem, wsparcie społeczności wciąż się zwiększa – wystarczy tylko popatrzeć na projekty takie jak nodemcu). Jak ze społecznością w tym wypadku?

Na forum dla betatesterów uzbierała się już całkiem spora grupka ludzi zainteresowanych tym cudem – płytek na świat wyszło tylko 200, a zainteresowanych użytkowników w chwili pisania tego posta jest ponad 1400: w sumie napisali oni 527 postów w 110 wątkach. Co niektórzy już na tej początkowej, okrojonej wersji SDK piszą działające, wielowątkowe aplikacje – jak ta, pokazująca temperaturę z wewnętrznego czujnika i jednocześnie mrugająca diodą, serwując hotspot WiFi.

Bez wątpienia jest to duży krok na przód w stosunku do jego poprzednika, czy wystarczy jednak, by konkurować z Arduino? Mimo tego, że już tworzona jest wtyczka do Arduino IDE – raczej nie zaćmi on konkurenta, mimo jego bardzo dobrego stosunku ceny do możliwości oraz wsparcia społeczności wygrywa Arduino. Czemu? Można się domyślić – popularność Arduino bierze górę.

Co wy myślicie o nowym mikrokontrolerze od Espressif Systems? Jeżeli macie pytania – zapraszam do zadawania ich w komentarzach, odpowiem na wszystkie, o ile nie naruszają one klauzuli tajności 😛

10 thoughts on “ESP32 – rewolucja wśród mikrokontrolerów

  1. Wkradł Ci się błąd na górze posta. Trzymam przed sobą właśnie Megę i jest ona traktowana 16 Mhz, co podwojone daje 32 Mhz więc jest to wolniej niż 26 Mhz. Może też pomyliły Ci się taktowania tego układu i tam miało być 36 ale tej informacji nie mogę się doszukać w internetach. Co do samego ESP32 to jeżeli będzie oscylował koło 20 PLN a programowanie będzie tak samo proste jak w przypadku arduino to zapowiada się bardzo fajnie biorąc pod uwagę zintegrowaną łączność bezprzewodową i możliwą wielowątkowość aplikacji.

    1. Nie za bardzo – tak jak pisałem na wykopie, mam problem z wgraniem do niego czegokolwiek, a bez niczego wgranego restartuje się co kilka sekund – zmierzenie prądu nie byłoby tutaj zbyt adekwatne. Wiem tylko, że jest bardzo energooszczędny – w trybie Deep Sleep pobiera około 10 uA 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *