Vai al contenuto

ESP32 vs STM32

Quando usare l'uno e quando l'altro in un progetto embedded

Se hai iniziato a muoverti nel mondo dell’embedded e dell’IoT, prima o poi ti sei trovato davanti a questa sfida: ESP32 vs STM32?

Entrambi sono microcontrollori potenti, diffusi e supportati da community attive. Eppure sono molto diversi, pensati per contesti differenti. Scegliere quello sbagliato non significa necessariamente fallire il progetto, ma significa faticare il doppio — e spesso scoprirlo tardi.

In questo articolo ti guidiamo attraverso le differenze concrete, con criteri pratici per orientarti nella scelta.

Prima di tutto: di cosa stiamo parlando?

ESP32 è un System-on-Chip (SoC) prodotto da Espressif Systems. Nasce con la connettività integrata nel DNA: Wi-Fi e Bluetooth sono on-chip, non aggiunte. È economico, ha una community enorme e si programma facilmente anche con Arduino IDE o MicroPython. Per molti è il punto d’ingresso nel mondo IoT.

STM32 è invece una famiglia di microcontrollori prodotta da STMicroelectronics — azienda europea, con sede anche in Italia. Non è un singolo chip ma una galassia di varianti (STM32F, STM32L, STM32H, STM32G…) che coprono un range enorme di prestazioni, consumi e periferiche. È il riferimento nel mondo industriale e professionale embedded.

Le differenze chiave

Connettività

ESP32 vince senza discussioni. Wi-Fi 802.11 b/g/n e Bluetooth 4.2/5.0 sono integrati nel chip. Per un nodo IoT che deve comunicare via wireless senza hardware aggiuntivo, è imbattibile in termini di rapporto costo/funzionalità.

STM32 di base non ha connettività wireless. Si può aggiungere tramite moduli esterni (ES-WiFi, moduli LoRa, GSM), ma questo aumenta la complessità del progetto e il BOM (Bill of Materials). In compenso, questa separazione è spesso un vantaggio in contesti industriali, dove la connettività è gestita da un layer dedicato.

Consumo energetico

Qui le carte si ribaltano. STM32, in particolare le varianti della famiglia STM32L (la “L” sta proprio per Low Power), sono progettate per consumare pochissimo. In modalità Stop o Standby si scende facilmente sotto i 10 µA. Per un dispositivo alimentato a batteria che deve durare anni, questo fa una differenza enorme.

ESP32 ha modalità deep sleep che consumano circa 10-150 µA a seconda della configurazione, ma il risveglio e la riconnessione Wi-Fi portano picchi di corrente significativi (fino a 250–500 mA). Su una batteria piccola, quei picchi si sentono.

Regola pratica: se il dispositivo si sveglia raramente e trasmette poco (LoRa, sensori ambientali), STM32L è spesso la scelta più efficiente. Se invece trasmette frequentemente via Wi-Fi, ESP32 gestisce meglio il ciclo complessivo.

Potenza di calcolo

ESP32 monta un dual-core Xtensa LX6 a 240 MHz con FPU (Floating Point Unit). È potente, gestisce task paralleli e può fare elaborazione locale non banale — JPEG encoding, piccole reti neurali con TensorFlow Lite, stream audio.

STM32 varia moltissimo: si va da core Cortex-M0+ a pochi MHz fino a Cortex-M7 a 480 MHz con DSP e FPU avanzata (famiglia STM32H7). La potenza c’è, ma va scelta la variante giusta per il task.

Real-Time e determinismo

Questo è il punto dove STM32 prende un vantaggio netto. I Cortex-M di ST sono progettati per sistemi real-time hard: timer precisi, interrupt con latenza garantita, compatibilità con RTOS come FreeRTOS o Zephyr in ambienti industriali certificati.

ESP32, pur supportando FreeRTOS, ha un core non deterministico per via del Wi-Fi stack che gira in background e può introdurre jitter. Per applicazioni dove il timing è critico (controllo motori, acquisizione dati ad alta frequenza, sicurezza funzionale), questo è un limite reale.

Ecosistema e facilità di sviluppo

ESP32 ha un ecosistema di sviluppo straordinariamente accessibile: Arduino IDE, PlatformIO, ESP-IDF, MicroPython, ESPHome. La curva di apprendimento è bassa e il time-to-prototype è rapidissimo.

STM32 richiede più investimento iniziale. L’IDE ufficiale è STM32CubeIDE, il codice si genera con STM32CubeMX, e la HAL (Hardware Abstraction Layer) di ST ha una curva di apprendimento più ripida. La ricompensa è un controllo molto più fine sull’hardware e una scalabilità industriale.

Costo

ESP32 si trova a meno di 2€ in volumi medi. È difficile batterlo.

STM32 varia molto: da ~1€ per i Cortex-M0 entry-level fino a 10–15€ per le varianti H7 high-performance. In volumi industriali il prezzo è negoziabile con STMicro, ma rimane generalmente più alto dell’ESP32.

Quando scegliere ESP32

  • Prototipazione rapida di nodi IoT connessi via Wi-Fi o Bluetooth;
  • Dispositivi consumer o semi-consumer con connettività richiesta;
  • Budget ridotto e time-to-market prioritario;
  • Progetti educativi, maker, proof-of-concept;
  • Edge computing leggero (es. riconoscimento vocale base, image processing).


Esempio concreto:
una centralina per il monitoraggio ambientale indoor che invia dati ogni 5 minuti a un broker MQTT via Wi-Fi. ESP32 è perfetto: economico, connesso, facile da aggiornare OTA.

Quando scegliere STM32

  • Dispositivi alimentati a batteria con autonomia pluriennale;
  • Nodi LoRa o altri protocolli radio gestiti da modulo esterno;
  • Prodotti industriali o medicali dove la certificazione è richiesta;
  • Contesti dove la robustezza e l’affidabilità a lungo termine sono prioritarie.


Esempio concreto:
un sensore di temperatura e umidità alimentato da due pile AA, con trasmissione LoRa ogni 15 minuti, installato in un campo remoto per 3 anni senza manutenzione. STM32L è la scelta naturale.

E se li usi insieme?

Non è una risposta di comodo: in molti progetti embedded professionali, ESP32 e STM32 coesistono.

Un’architettura comune è quella in cui STM32 gestisce l’acquisizione real-time dei sensori e il controllo preciso dei periferici, mentre ESP32 si occupa della connettività Wi-Fi e dell’interfaccia cloud. I due comunicano via UART o SPI. Ognuno fa quello che sa fare meglio.

Tabella di sintesi

Criterio

ESP32

STM32

Wi-Fi / Bluetooth integrato

✅ Sì

❌ No (modulo esterno)

Low power estremo

⚠️ Discreto

✅ Eccellente (serie L)

Real-time / determinismo

⚠️ Limitato

✅ Eccellente

Facilità di sviluppo

✅ Alta

⚠️ Media-alta

Costo

✅ Molto basso

⚠️ Variabile

Scalabilità industriale

⚠️ Limitata

✅ Elevata

Creatore della comunità

✅ Enorme

✅ Ampia

Certificazioni (IEC, ISO)

❌ Raro

✅ Disponibili

Conclusione

Non esiste una risposta universale, ma esiste una risposta giusta per il tuo progetto specifico.

ESP32 è il compagno ideale per chi vuole connettere, prototipare e spedire velocemente. STM32 è il riferimento quando il progetto cresce, quando la batteria deve durare, quando il timing conta o quando il cliente si chiama “industria”.

In Omnetica utilizziamo entrambi, spesso nella stessa soluzione. La scelta del microcontrollore è una delle prime decisioni architetturali che facciamo insieme al cliente — perché sbagliare quella, significa rifare tutto il resto.

Hai un progetto embedded in mente e non sai da dove partire? Contattaci: ti aiutiamo a scegliere la tecnologia giusta fin dal primo passo.