Un computer contro un microcontrollore
Il primo equivoco da chiarire è che il Raspberry Pi e le schede ESP8266/ESP32 non sono concorrenti diretti: il Raspberry Pi è un vero computer, con un sistema operativo completo (in genere Linux), che consuma qualche watt e richiede decine di secondi per avviarsi. L'ESP8266 e l'ESP32 sono invece microcontrollori: chip pensati per eseguire un singolo programma dedicato, si accendono in una frazione di secondo, consumano pochissima energia (fino a poter funzionare per mesi con una batteria) e non eseguono un sistema operativo generico.
Quando conviene un microcontrollore
Per un nodo sensore che deve stare acceso 24 ore su 24, magari alimentato a batteria, leggere un valore ogni pochi minuti e inviarlo in rete, un ESP32 è quasi sempre la scelta più sensata: il consumo energetico è di ordini di grandezza inferiore a quello di un Raspberry Pi, il costo è più basso, e non c'è un sistema operativo da mantenere aggiornato o che possa "piantarsi" dopo settimane di funzionamento continuo.
Quando conviene il Raspberry Pi
Il Raspberry Pi eccelle invece quando serve potenza di calcolo reale: elaborare immagini da una videocamera, far girare un database, ospitare un server web che raccoglie i dati di più sensori periferici, eseguire logiche complesse o persino un piccolo modello di intelligenza artificiale in locale. È il "cervello" adatto a orchestrare un sistema, non il componente giusto per un singolo nodo sensore a basso consumo.
Un'architettura tipica: hub e periferiche
Il pattern più comune nei progetti IoT più maturi è proprio la combinazione dei due mondi: diversi ESP32 sparsi in punti diversi (giardino, garage, diverse stanze), ciascuno dedicato alla lettura di uno o due sensori e all'invio dei dati via Wi-Fi verso un unico Raspberry Pi centrale, che li raccoglie, li salva in un database, li visualizza in una dashboard ed eventualmente invia notifiche. Il Raspberry Pi funge quindi da hub centrale, mentre gli ESP32 fanno da periferiche distribuite a basso consumo.
Come farli comunicare
Il protocollo più diffuso per questo tipo di comunicazione è MQTT: un protocollo di messaggistica leggero, pensato apposta per dispositivi con risorse limitate, in cui ogni ESP32 pubblica i propri dati su un "topic" e il Raspberry Pi (che ospita il broker MQTT, ad esempio con il software open source Mosquitto) li riceve e li smista. In alternativa, per scenari più semplici, un ESP32 può anche esporre un piccolo server HTTP interrogato periodicamente dal Raspberry Pi, oppure inviare direttamente richieste HTTP verso di esso.