Stazione meteo con ESP32-P4, touchscreen e sensori wireless

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.

Scheda di sviluppo Waveshare ESP32-P4-Module-DEV-KIT-C
Waveshare ESP32-P4-Module-DEV-KIT-C

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.

Diagramma a blocchi dell'architettura del sistema
Diagramma a blocchi dell’architettura

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu