Progetto per Scheda Sorveglianza con ESP32

Come controllare la qualità dell’aria usando la nostra Scheda Sorveglianza con ESP32

Disponibile anche con il Kit completo da montare, con software per la conservazione e analisi dei dati in Machine Learning sulla nostra Piattaforma Web.

Il circuito consente di:

  1. rilevare la presenza di gas nocivi o tossici,
  2. controllare la pressione perimetrale e quindi l’apertura di porte e finestre,
  3. registrare temperatura e umidità ambientali.

I dati vengono salvati in cloud su un database Amazon AWS e sono comodamente consultabili dallo smartphone grazie alla nostra Piattaforma Web. La piattaforma viene fornita free per chi compra il KIT o la scheda premontata nello Shop di Robotdazero. Se decidi di costruire da solo il progetto con i tuoi componenti puoi comunque usare il server HTTP che trovi in codice sorgente alla fine di questo post. Potrai acquisire tutti i parametri in tempo reale e leggerli da ogni dispositivo collegato alla tua rete WIFI.

Piattaforma Web per Scheda Sorveglianza con ESP32

A differenza di progetti simili, con la nostra piattaforma non sei obbligato a salvare i dati sulla schedina micro SD, non devi importarli in Excel e non devi creare i grafici manualmente.

La Dashboard ti fornisce in automatico il quadro complessivo dei valori di base e con sofisticate elaborazioni in Machine Learning riesce a stimare il numero di persone presenti nel locale. Tutto questo in modo del tutto legale e senza violare la privacy delle persone come accade con le solite microcamere.

Inoltre se ti occupi di marketing o advertising con la  nostra Scheda Sorveglianza  e il report Marketing Funnel puoi controllare i numeri della tua attività on line e offline. Puoi controllare il numero delle persone che hanno visitato negozi, convegni e hotel in tempo reale e stabilire la efficacia delle campagne promozionali senza essere fisicamente presente. Anche il report  Marketing Funnel viene fornito free ed è incorporato nella piattaforma. Nella versione a pagamento della piattaforma  – 29 euro mensili – sono disponibili ulteriori elaborazioni scritte usando le librerie TensorflowSci-kit e anche questi programmi funzionano in modo del tutto automatico senza configurazione manuale.

Componenti elettronici forniti con il kit:

1 x ESP32 – versione con 30 pin
2 x Resistenze 330 Ohm SMD (+1 di riserva)
1 x Pulsante di reset
1 x Trimmer 10 kOhm
1 x Sensore di umidità e temperatura DHT11
1 x Sensore barometrico/pressione BMP180
2 x LED SMD 1026
1 x Circuito stampato Multifunzione
2 x Zoccoletti 05 pin per montare l’ESP32
2 x Zoccoletti 10 pin per montare l’ESP32
2 x Morsettiere mammoth – per collegare 3 GPIO aggiuntivi

 

Caratteristiche

Per costruire questo progetto, abbiamo usato una PCB compatibile con lo standard ESP32 NODE MCU disponibile su Amazon. Il circuito funziona solo con la versione a 30 pin.

esp32 in versione a 30 pin usata in questo progetto
esp32 in versione a 30 pin usata in questo progetto

La scheda è stato pensata per allestire una stazione di monitoraggio ambientale, ma può adattarsi a usi molteplici semplicemente collegando nuovi sensori alle morsettiere. Potresti, ad esempio usarla per scopi didattici relativi all’ ESP32 o per programmare servocomandi usando Micro Python.

La schedina micro SD è un modulo molto interessante: può essere utilizzato per memorizzare le letture, se si vuole costruire un data logger ma noi la useremo per memorizzare un file HTML per il server HTTP.

ESP32 – Assegnazione dei Pin

La seguente tabella descrive l’assegnazione dei pin per ogni componente della scheda:

Componente ESP32 
Pulsante GPIO 33
Trimpot GPIO 32
Fotoresistenza (LDR) GPIO 4
DHT22 dati pin GPIO 15
LED1 GPIO 27
LED2 GPIO 26
BMP180 SDA(GPIO 21); SCL(GPIO 22)
Modulo per schede SD MOSI(GPIO 23); MISO(GPIO 19): CLK(GPIO 18); CS(GPIO 5)
Gratuito Articoli (Morsettiera) GPIO14, GPIO13, GPIO12

Come provare il circuito su una Breadboard

Prima di assemblare il circuito puoi testarlo su una basetta millefori o su una basetta breadboard. In questo modo puoi provare i programmi e magari cambiare i componenti . Ad esempio potresti testare un sensore alternativo al DHT22 senza saldarlo e dissaldarlo.

Schema dei collegamenti

Dopo avere testato i componenti, puoi  assemblarli secondo questo schema:

Breadboard per Scheda Sorveglianza con ESP32

 

Importante: se vuoi usare un ESP32 differente ti consiglio di controllare bene la piedinatura.

Schema elettrico della Scheda Sorveglianza con ESP32

Circuito elettrico scheda sorveglianza con ESP32 completamente montata

Unboxing

Il Kit viene spedito ben imballato e con un buono sconto del 10% sull’acquisto successivo.

I componenti elettronici del kit con in evidenza la busta dell'ESP32 , il sensore DHT11 in basso a destra e il minuscolo BMP180 nella parte più bassa della foto al centro.
I componenti elettronici del kit con in evidenza la busta dell’ESP32 , il sensore DHT11 in basso a destra e il minuscolo BMP180 nella parte più bassa della foto al centro.

Il circuito stampato viene realizzato dal fornitore secondo i nostri file Gerber con il QRCode cui puoi ricorrere se perdi il bookmark di questa pagina: fai la scansione e sarai rediretto qui.

I fori che collegano le due facce del circuito sono metallizzati con trattamento antiossidante e sono compatibili con ambienti leggermente corrosivi.

Cricuito stampato multifuzione disponibile nel kit con il QRCode per ritrovare la pagina di help.
Cricuito stampato multifuzione disponibile nel kit con il QRCode per ritrovare la pagina di help.

Saldare i Componenti

Il passo successivo è la saldatura dei componenti sul circuito stampato. Sono usati dei LED a montaggio superficiale (SMD) e lo stesso dicasi per le resistenze. Sono componenti un poco difficili da saldare ma permettono di risparmiare molto spazio, un plus necessario se vuoi installare il circuito dentro un case professionale. L’ ESP32 viene collegato con degli zoccoletti e lo stesso potete fare con i sensori.

La figura seguente mostra la parte inferiore della scheda dopo la saldatura di tutti i componenti.

 

Preparare l’ ESP32 per l’ IDE di Arduino

Per caricare il codice per il tuo ESP32 sull’IDE di Arduino si devono installare un add-on e il drier per l’ ESP32. Puoi seguire qui il nostro tutorial per Windows e Mac/Linux:

Inoltre, è necessario installare le seguenti librerie:

Codice

Il passo successivo è scrivere il codice per leggere i sensori e costruire il web server. Il codice per questo progetto è diviso in due parti:

  • Il codice in IDE di Arduino per leggere i sensori e l’host di un server web
  • Un file HTML per creare la pagina HTML. Questo file deve essere salvato nella scheda micro SD.

Fai Copia e Incolla del codice nell’IDE di Arduino. Il programma è alquanto lungo, ma è abbastanza facile da capire. Ho anche aggiunto i vari commenti del codice.

Prima di caricare il codice, è necessario modificare queste righe per aggiungere il tuo SSID e la tua password:

// Replace with your network credentials
const char* ssid     = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Quindi, premi il pulsante “carica” per caricare lo sketch nel tuo ESP32. Assicurati di avere configurato correttamente la scheda e che la porta COM corrisponda.

Come provare il server Web della scheda Meteo

Apri il monitor seriale a 115200 baud e controlla l’indirizzo IP dell’ ESP32, in questo caso 192.168.1.134.

IDE di Arduino con la scheda ESP32

Apri il browser, digita l’indirizzo IP e dovrebbe apparire una tabella con le ultime letture del sensore. Il server web visualizza i dati di: DHT22, BMP180, potenziometro e LDR. Le letture vengono aggiornate ogni 10 secondi, senza bisogno di premere il tasto Aggiorna.

Interfaccia Web della scheda

Nel server viene usata la tecnologia AJAX. Si tratta di una libreria estremamente potente per velocizzare il protocollo HTTP: con AJAX la richiesta e la ricezione dei dati avvengono in background con dei brevi programmi Javascript senza che l’utente avverta i ritardi della rete.

AJAX è il sogno dei programmatori perché permette di:
* Aggiornare una pagina web senza interventi manuali
* Richiedere altri dati da un server – dopo il caricamento della pagina
* Ricevere dati da un server – dopo il caricamento della pagina
* Inviare dati a un server – in background

Ulteriori Migliorie

C’è ancora spazio per migliorare questo progetto, è possibile utilizzare i morsetti aggiuntivi per collegare altri sensori o un relè. È inoltre possibile attivare una subroutine quando la lettura è al di sotto o al di sopra di una certa soglia. Se avete un poco di esperienza nella programmazione sicuramente siete all’altezza di modificare il codice originale per mille usi innovativi!