Niemal każdy domowej roboty czujnik, przekaźnik czy sterownik LED zaczyna się od tego samego pytania: na jakiej płytce z mikrokontrolerem i Wi-Fi go zbudować? Najczęściej wybór pada na jedną z czterech: weterana ESP8266, klasyczny ESP32, mniejszy ESP32-C3 z rdzeniem RISC-V albo Raspberry Pi Pico 2 W. Wiele je łączy, ale różnice w pamięci, peryferiach, poborze prądu i perspektywach wsparcia mają spore znaczenie.
Porównanie opiera się na notach katalogowych producentów (odnośniki na końcu). Wszystkie liczby dotyczą samych układów. Konkretne płytki rozwojowe mają własne stabilizatory, konwertery USB i diody, a od nich zależy na przykład pobór prądu w uśpieniu.
Parametry obok siebie
| ESP8266EX | ESP32 | ESP32-C3 | Pico 2 W (RP2350) | |
|---|---|---|---|---|
| Procesor | 1 × Tensilica L106, do 160 MHz | 1 lub 2 × Xtensa LX6, do 240 MHz | 1 × RISC-V, do 160 MHz | 2 × Cortex-M33 lub RISC-V Hazard3, do 150 MHz |
| RAM | ok. 50 kB dla programu w trybie stacji | 520 KB SRAM | 400 KB SRAM | 520 kB SRAM |
| Wi-Fi | 802.11 b/g/n, 2,4 GHz | 802.11 b/g/n, 2,4 GHz | 802.11 b/g/n, 2,4 GHz | 802.11n, 2,4 GHz (Infineon CYW43439) |
| Bluetooth | brak | Bluetooth 4.2 Classic i LE | Bluetooth 5 (tylko LE) | Bluetooth 5.2, LE i Classic |
| GPIO | 17 | 34 | 22 (w części wersji 16) | 26 na złączu płytki |
| Przetwornik A/C | jedno wejście 10-bitowe | dwa 12-bitowe, do 18 kanałów | dwa 12-bitowe, do 6 kanałów | 12-bitowy, 3 wejścia na złączu |
| Głębokie uśpienie (układ) | 20 µA | 10 µA (zegar RTC i pamięć RTC) | 5 µA | brak danych w nocie płytki |
| Własne USB | nie | nie | USB Serial/JTAG | USB 1.1, urządzenie i host |
ESP8266: tani i sprawdzony, ale bez przyszłości
Dzięki ESP8266EX mikrokontrolery z Wi-Fi trafiły pod strzechy, a sam układ nadal można znaleźć w niezliczonych gniazdkach i płytkach. W nowych projektach przemawiają jednak przeciw niemu dwa fakty.
- Nota katalogowa ESP8266EX ma teraz oznaczenie NRND, czyli „not recommended for new designs”: Espressif nie zaleca tego układu do nowych konstrukcji. Nadal można go kupić, ale rozwój idzie w innym kierunku.
- Pamięci jest mało. Według noty katalogowej po połączeniu z routerem w trybie stacji na stertę i dane programu jest dostępnych około 50 kB. Na prosty czujnik wystarczy, ale serwer WWW, połączenia TLS czy większy wyświetlacz szybko ją zapełnią.
Do tego jest tylko jedno wejście analogowe o rozdzielczości 10 bitów i brak Bluetootha. Płytka z ESP8266 ma sens, jeśli już masz kilka w szufladzie albo planujesz wgrać nowe oprogramowanie do gotowego urządzenia z tym układem. Zarówno ESPHome, jak i MicroPython nadal go wspierają.
ESP32: wszechstronny standard
Klasyczny ESP32 nie bez powodu jest domyślnym wyborem. Ma dwa rdzenie taktowane do 240 MHz, 520 KB SRAM, 34 piny GPIO, dwa 12-bitowe przetworniki A/C z maksymalnie 18 kanałami, 10 pojemnościowych wejść dotykowych oraz Bluetooth Classic i Bluetooth LE. Jedna płytka może więc jednocześnie odczytywać kilka czujników, sterować diodami i nasłuchiwać urządzeń Bluetooth LE.
Kilka szczegółów, które warto znać:
- W układzie nie ma kontrolera USB (w nocie katalogowej nie ma żadnego), dlatego na płytkach rozwojowych do wgrywania programu i odczytu komunikatów służy dodatkowy konwerter USB-UART.
- Głębokie uśpienie to 10 µA na samym układzie przy działającym tylko zegarze i pamięci RTC albo ok. 150 µA z włączonym koprocesorem ULP. Na typowej płytce rozwojowej stabilizator i konwerter USB pobierają zwykle znacznie więcej, więc przy zasilaniu bateryjnym konstrukcja płytki znaczy tyle samo co układ.
- Zwróć uwagę na dokładny wariant układu. Espressif oznaczył niektóre starsze wersje, np. ESP32-D0WD i ESP32-S0WD, jako niezalecane do nowych konstrukcji. To ważniejsze dla projektantów produktów niż dla hobbystów kupujących gotową płytkę.
ESP32-C3: mniejszy, nowszy i oszczędny
W ESP32-C3 miejsce rdzeni Xtensa zajął jeden 32-bitowy rdzeń RISC-V taktowany do 160 MHz, a pamięci SRAM jest 400 KB. Przewagi nad klasycznym ESP32 są głównie praktyczne:
- Wbudowany interfejs USB Serial/JTAG, więc do wgrywania programu i debugowania nie trzeba osobnego konwertera USB-UART.
- Mniejszy pobór prądu w głębokim uśpieniu: według noty katalogowej 5 µA.
- Bluetooth 5 (LE) z obsługą Bluetooth mesh zamiast Bluetootha 4.2.
W zamian dostajesz mniej pinów (22, a 16 w wariantach z pamięcią flash w obudowie, takich jak ESP32-C3FH4X), jeden rdzeń i mniej kanałów analogowych (do 6). Bluetooth Classic nie jest dostępny, co ma znaczenie głównie przy projektach audio. Do czujnika, przekaźnika czy pośrednika Bluetooth LE C3 zwykle w zupełności wystarczy.
Raspberry Pi Pico 2 W: inna rodzina
Sercem Pico 2 W jest własny układ Raspberry Pi, RP2350, a do łączności bezprzewodowej służy osobny układ Infineon CYW43439 podłączony przez SPI. RP2350 ma dwa rdzenie, które mogą pracować jako Arm Cortex-M33 albo RISC-V Hazard3, z taktowaniem do 150 MHz, i 520 kB SRAM. Na liście cech w nocie płytki figuruje 4 MB pamięci flash.
Czym się wyróżnia:
- Programowalne wejścia i wyjścia (PIO). Dzięki trzem blokom PIO z 12 maszynami stanów łącznie da się sprzętowo obsłużyć własne protokoły cyfrowe, co przydaje się przy nietypowych taśmach LED, wyświetlaczach czy czujnikach.
- Bardzo proste wgrywanie oprogramowania. Wystarczy przeciągnąć plik na płytkę, widoczną w komputerze jako dysk USB. Wyprowadzony jest też port debugowania SWD.
- Szeroki zakres zasilania. Wbudowana przetwornica obniżająco-podwyższająca wytwarza 3,3 V z napięcia od ok. 1,8 do 5,5 V na wejściu VSYS, więc płytkę można zasilić bezpośrednio z dwóch lub trzech baterii AA albo z ogniwa litowego.
- Bluetooth 5.2 w wersji LE i Classic.
W nocie płytki nie ma wartości prądu w głębokim uśpieniu porównywalnej z danymi układów ESP, więc przed wyborem jej do projektu na baterie sprawdź pomiary dla swojego zastosowania. Wsparcie programowe jest szerokie, ale młodsze niż w przypadku ESP: MicroPython ma osobną wersję dla Pico 2 W, a według dokumentacji ESPHome płytki z RP2350, takie jak Pico 2 W, działają na platformie RP2. ESPHome wprost nie wspiera natomiast klonów Pico W z modułem radiowym opartym na ESP zamiast CYW43439.
Który do czego
- Prosty czujnik lub przekaźnik Wi-Fi zasilany z sieci: ESP32-C3 albo klasyczny ESP32. Oba mają dobre wsparcie w ESPHome, MicroPythonie i środowisku Arduino.
- Wiele wejść, pomiary analogowe, przyciski dotykowe albo nasłuch Bluetooth LE: klasyczny ESP32.
- Czujnik na baterie: z omawianych układów ESP najmniejszy prąd uśpienia ma ESP32-C3, ale wybierz płytkę zaprojektowaną z myślą o niskim poborze prądu i zmierz go.
- Nietypowe protokoły wymagające precyzyjnych zależności czasowych albo nauka programowania na Arm lub RISC-V: Pico 2 W.
- Sprzęt, który już masz: ESP8266 sprawdzi się w prostych zadaniach, ale w nowych konstrukcjach lepiej go unikać.
Niezależnie od wyboru planuj logikę 3,3 V. GPIO w Pico 2 W ma stałe napięcie 3,3 V, a zasilanie wejść i wyjść układów ESP może wynosić najwyżej 3,6 V, więc czujniki z wyjściem 5 V wymagają konwertera poziomów albo dzielnika napięcia.