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.