Progetto per Scheda Sorveglianza con ESP32

Come controllare presenze e qualità dell’aria in un locale chiuso 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 esclusiva 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. tracciare il passaggio di oggetti o persone davanti alla fotocellula, (fotoresistore) e
  4. registrare temperatura e umidità ambientali.
  5. stimare il numero di persone presenti nel locale (versione in Kit o premontata).

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 – 30 pin GPIO
2 x Resistenze 330 Ohm
1 x Pulsante
1 x Resistenza 10 k Ohm
1 x Potenziometro 10 k Ohm
1 x Sensore di umidità e temperatura DHT2
1 x Foto Resistore BMP180
1 x Modulo scheda microSD
2 x LED SMD
1 x Tasto On/Off
1 x Trimmer
2 x Morsettiere – per collegare 3 GPIO aggiuntivi

Scheda SD Card per Scheda Sorveglianza con ESP32

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.

Scheda ESP32 con 30 piedini

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.

Scheda Sorveglianza con ESP32 completamente montata

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 omaggio da Robotazero.it e con un buono sconto sugli acquisti successivi. Trovate anche il mini Multimetro per misurazioni sul campo se ordinate la versione già montata e collaudata.

Box cartone della del Kit di montaggio

Il circuito stampato viene realizzato dal fornitore secondo lo standard industriale, con colorazione verde o blu a seconda del lotto e serigrafia sempre bianca.

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

Circuito stampato della scheda sorveglianza

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. Son  componenti un poco difficili da saldare ma permettono di risparmiare molto spazio, una 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.

Tutti i componenti del Kit della scheda

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

Come appare la scheda dopo la saldatura e senza ESP32

 

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 2 tutorial per Windows e Mac/Linux (in inglese):

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 password.

// Sostituire con le credenziali di rete
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

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

Salva il file come index.html,  copia il file HTML nella scheda micro SD e mettila nel connettore come puoi vedere nella foto qua sotto.

La SD Card della scheda di sorveglianza

Come provare il server Web della scheda Meteo

Apri il monitor seriale a 115200 baud e controlla l’indirizzo IP dell’ ESP32.

IDE di Arduino con la scheda ESP21

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!

Progetto open source da Randomnerdtutorials