Harald Kreuzer ha costruito una stazione meteo e un monitor di qualità dell’aria che probabilmente è uno dei primi progetti completi basati su ESP32-P4. Il sistema è diviso in tre livelli: una base station con touchscreen da 10,1 pollici, un gateway radio dedicato e una famiglia di nodi sensore wireless alimentati a batteria. Tutto è realizzato con schede commerciali pronte all’uso, senza hardware personalizzato e senza bisogno di cloud o account utente. Il codice sorgente e la documentazione sono nel repository di Harald Kreuzer su GitHub.
La BaseStation usa la Waveshare ESP32-P4-Module-DEV-KIT-C e un pannello IPS da 10,1 pollici con risoluzione 1280 x 800, contrasto 800:1 e luminosità 400 cd/m². Mostra le letture in tempo reale, i grafici storici delle ultime 24 ore e le previsioni scaricate da internet. Include anche un sensore di qualità dell’aria Sensirion SEN66 integrato.

Il gateway radio e i nodi sensore
Il Sensor-Receiver è un ESP32-S3 su scheda Heltec WiFi LoRa 32. Ascolta i pacchetti LoRa e ESP-NOW dai nodi sensore, li bufferizza e li espone alla base station tramite un’interfaccia I2C slave. I nodi wireless sono firmware indipendenti: ognuno legge un sensore fisico, trasmette un piccolo pacchetto e torna in deep sleep. I nodi di temperatura, umidità e pressione si svegliano ogni 10 minuti.
Tutti i nodi LoRa usano gli stessi parametri di collegamento: 869,525 MHz, larghezza di banda 125 kHz, CR 4/5 e sync word 0x1424. Per questo le varianti ESP32 e CubeCell dello stesso sensore sono intercambiabili dal punto di vista del gateway. Kreuzer ha realizzato nodi con BME280, SHT45, BH1750 per la luce e due versioni del contatore Geiger con RadiationD-v1.1.

Il contatore Geiger a basso consumo
Il nodo Geiger basato su ESP32 merita un discorso a parte. Esegue un piccolo programma ULP, il coprocessore a basso consumo, che conta gli impulsi anche mentre la CPU principale è spenta. Così nessun impulso viene perso tra una sveglia e l’altra. La variante ESP32 si sveglia ogni 60 secondi e mantiene una media mobile nella memoria RTC.
L’ottimizzazione iterativa ha ridotto la corrente media del sensore Geiger ESP32 da circa 45 mA a meno di 30 mA. Inoltre, la variante CubeCell HTCC-AB01 V2 consuma ancora meno grazie al chip LoRa dedicato. Il costo stimato della sola unità principale è di almeno 185 dollari, inclusi la scheda Waveshare a 77,99 dollari, la Heltec V4 a 29,99 dollari e il SEN66 a 62,03 dollari.
Software e strumenti di sviluppo
Il progetto usa ESP-IDF per la base station e PlatformIO o Arduino per i nodi. L’interfaccia grafica è sviluppata con LVGL e l’editor EEZ Studio. La struttura software è modulare: ogni nodo è un firmware separato, quindi aggiungere un nuovo sensore non tocca il resto del sistema.
- BaseStation ESP32-P4 con touchscreen DSI e SEN66
- Sensor-Receiver ESP32-S3 come gateway I2C slave
- Nodi LoRa e ESP-NOW con BME280, SHT45, BH1750 e Geiger
- Contatore Geiger con coprocessore ULP per il conteggio in sleep
Per chi vuole rifare il progetto, la documentazione copre l’architettura, il firmware e il montaggio. Il repository di Kreuzer contiene tutto il necessario per partire, compresi gli schemi dei collegamenti e i file per la stampa 3D del supporto. Una scheda di sviluppo ESP32 con Wi-Fi e Bluetooth può servire per sperimentare i nodi sensore prima di passare alle versioni LoRa.
Fonte: https://github.com/HarryVienna/ESP32-Weather-Station-and-Air-Quality-Monitor/tree/develop
