◉ Mobile e IoT

ESP32: il microcontrollore per i progetti IoT fai da te

Che cos'è l'ESP32, in cosa si distingue da Arduino e Raspberry Pi, come programmarlo, alimentarlo a batteria e usarlo per un sensore domestico Wi-Fi.

Chi vuole costruire un sensore di temperatura connesso, un pulsante Wi-Fi o un piccolo controller per l'irrigazione finisce quasi sempre sullo stesso componente: l'ESP32. È un microcontrollore prodotto da Espressif che integra Wi-Fi e Bluetooth in un chip economico, e attorno a cui si è formata una comunità enorme di librerie, esempi e progetti già pronti.

Che cos'è un microcontrollore

Un microcontrollore è un piccolo computer su un solo chip, con processore, memoria e periferiche, ma senza un sistema operativo tradizionale. Esegue un unico programma, si avvia in una frazione di secondo e consuma pochissimo. È la scelta naturale per compiti semplici e continui: leggere un sensore, accendere un relè, inviare un dato in rete.

ESP32, Arduino e Raspberry Pi a confronto

Caratteristica ESP32 Arduino classico Raspberry Pi
tipo microcontrollore microcontrollore computer completo
sistema operativo no no Linux
Wi-Fi e Bluetooth integrati di norma assenti integrati
consumo basso, bassissimo in sleep basso alto in confronto
avvio istantaneo istantaneo decine di secondi
uso ideale sensori e attuatori connessi elettronica didattica server, interfacce, elaborazione

L'ESP32 sta in mezzo: semplice come un Arduino, ma già pronto per la rete. Esistono diverse varianti della famiglia, con caratteristiche differenti: alcune hanno più core, altre supportano il Bluetooth Low Energy soltanto, altre ancora la radio per Thread e Zigbee. Prima di comprare una scheda conviene verificare quale chip monta.

Come si programma

Le strade principali sono quattro.

  1. Arduino IDE o PlatformIO, scrivendo codice in C++ con le librerie della comunità Arduino. È il percorso più documentato.
  2. ESP-IDF, il framework ufficiale del produttore, più completo e più complesso.
  3. MicroPython, per chi preferisce Python e vuole provare il codice in modo interattivo.
  4. ESPHome, che non richiede di scrivere codice: si descrive il dispositivo in un file YAML e lo strumento genera e carica il firmware.

Per un progetto domotico ESPHome è spesso la scelta più rapida. Un sensore di temperatura e umidità si descrive in poche righe:

esphome:
  name: sensore-camera
esp32:
  board: esp32dev
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
sensor:
  - platform: dht
    pin: GPIO4
    temperature:
      name: "Temperatura camera"
    humidity:
      name: "Umidità camera"
    update_interval: 60s

Dopo il primo caricamento via USB, gli aggiornamenti successivi possono essere inviati via Wi-Fi.

Alimentazione e batteria

Un ESP32 sempre connesso al Wi-Fi consuma troppo per durare a lungo con una batteria. La soluzione è il deep sleep: il chip si spegne quasi del tutto, si risveglia dopo un intervallo prestabilito o al cambio di stato di un pin, legge il sensore, invia il dato e torna a dormire.

Qualche indicazione concreta:

  • ridurre la frequenza di invio: un dato ogni dieci minuti invece che ogni dieci secondi cambia radicalmente l'autonomia;
  • usare un indirizzo IP statico, che accorcia il tempo di connessione al risveglio;
  • scegliere schede progettate per il basso consumo: molte schede di sviluppo hanno LED e regolatori di tensione che consumano anche in sleep;
  • per alimentazione a batteria al litio, usare un circuito di protezione e di ricarica adeguato.

Errori comuni dei principianti

  • Collegare sensori a 5 V: i pin dell'ESP32 lavorano a 3,3 V. Un segnale a 5 V può danneggiarli.
  • Usare pin riservati: alcuni GPIO hanno funzioni particolari all'avvio o sono collegati alla memoria flash. Le tabelle dei pin della propria scheda vanno consultate prima di saldare.
  • Alimentazione insufficiente: durante la trasmissione Wi-Fi il consumo ha dei picchi. Un cavo USB scadente o un alimentatore debole causano riavvii casuali.
  • Password nel codice: credenziali scritte in chiaro finiscono facilmente in un repository pubblico. Meglio un file separato di segreti, escluso dal controllo versione.

Un progetto di partenza concreto

Un buon primo progetto è un sensore di temperatura per una stanza: una scheda ESP32, un sensore digitale, tre fili e ESPHome. In un pomeriggio si ottiene un dispositivo che invia i dati al proprio hub domotico, senza cloud esterni. Da lì si passa naturalmente a relè, pulsanti, display e sensori di presenza, riutilizzando le stesse basi.

In sintesi

  • L'ESP32 è un microcontrollore economico con Wi-Fi e Bluetooth integrati, ideale per l'IoT domestico.
  • Si programma con Arduino, ESP-IDF, MicroPython o, senza codice, con ESPHome.
  • Il deep sleep è indispensabile per i progetti alimentati a batteria.
  • I pin lavorano a 3,3 V e alcuni sono riservati: verificare sempre prima di collegare.
  • Un sensore di temperatura locale è un ottimo primo progetto per imparare.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche