- Componenti richiesti
- Blocco solenoide
- Schema elettrico
- Installa la scheda ESP32 su Arduino IDE
- Spiegazione del codice
- Testare il
La sicurezza è al massimo una preoccupazione per chiunque al giorno d'oggi, che si tratti della sicurezza dei dati o della sicurezza della propria casa. Con il progresso della tecnologia e il crescente utilizzo dell'IoT, le serrature digitali sono diventate molto comuni in questi giorni. La serratura digitale non richiede alcuna chiave fisica ma utilizza RFID, impronta digitale, Face ID, pin, password, ecc. Per controllare la serratura della porta. In passato, abbiamo sviluppato molte applicazioni di serrature digitali utilizzando queste varie tecnologie. In questo tutorial costruiamo un sistema di serratura per porte digitali controllato da Face ID utilizzando ESP32-CAM.
Il modulo AI-Thinker ESP32-CAM è una scheda di sviluppo a basso costo con una fotocamera OV2640 di dimensioni molto ridotte e uno slot per scheda micro SD. Ha un chip ESP32 S con Wi-Fi integrato e connettività Bluetooth, con 2 CPU LX6 a 32 bit ad alte prestazioni, architettura a pipeline a 7 stadi. In precedenza abbiamo spiegato in dettaglio ESP32-CAM e lo abbiamo utilizzato per costruire un campanello video per porte Wi-Fi. Questa volta useremo l'ESP32-CAM per costruire un sistema di blocco porta basato sul riconoscimento facciale utilizzando un modulo relè e una serratura a solenoide.
Componenti richiesti
- CAM ESP32
- Consiglio FTDI
- Modulo relè
- Blocco solenoide
- Cavi per ponticelli
Blocco solenoide
Una serratura a solenoide funziona sul meccanismo di bloccaggio elettronico-meccanico. Questo tipo di serratura ha uno slug con un taglio obliquo e una buona staffa di montaggio. Quando viene applicata l'alimentazione, la corrente continua crea un campo magnetico che muove il proiettile all'interno e mantiene la porta in posizione sbloccata. Lo slug manterrà la sua posizione fino a quando l'alimentazione non verrà rimossa. Quando l'alimentazione viene scollegata, lo slug si sposta all'esterno e chiude la porta. Non utilizza alcun potere in uno stato bloccato. Per azionare il blocco del solenoide, è necessaria una fonte di alimentazione che possa fornire 12V @ 500mA.
In precedenza abbiamo utilizzato una serratura a solenoide per costruire una serratura RFID basata su Arduino.
Schema elettrico
Di seguito è riportato lo schema del circuito per il sistema di blocco della porta con riconoscimento facciale ESP32-CAM:
Il circuito sopra combinato con una scheda FTDI, un modulo relè e un blocco del solenoide. La scheda FTDI viene utilizzata per far lampeggiare il codice in ESP32-CAM in quanto non ha un connettore USB mentre il modulo relè viene utilizzato per attivare o disattivare il blocco del solenoide. I pin VCC e GND della scheda FTDI e il modulo relè sono collegati ai pin Vcc e GND di ESP32-CAM. TX e RX della scheda FTDI sono collegati a RX e TX di ESP32 e il pin IN del modulo relè è collegato a IO4 di ESP32-CAM.
ESP32-CAM |
Consiglio FTDI |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Modulo relè |
5V |
VCC |
GND |
GND |
IO4 |
IN |
Nota: prima di caricare il codice, collegare l'IO0 a terra. IO0 determina se ESP32 è in modalità lampeggiante o meno. Quando GPIO 0 è collegato a GND, ESP32 è in modalità lampeggiante.
Dopo aver collegato l'hardware secondo lo schema del circuito, dovrebbe assomigliare a quanto segue:
Installa la scheda ESP32 su Arduino IDE
Qui Arduino IDE viene utilizzato per programmare ESP32-CAM. Per questo, in primo luogo, installa il componente aggiuntivo ESP32 su Arduino IDE.
Per installare la scheda ESP32 nel tuo IDE Arduino, vai su File> Preferenze.
Ora copia il link sottostante e incollalo nel campo "URL Board Manager aggiuntivi" come mostrato nella figura sotto. Quindi, fai clic sul pulsante "OK":
https://dl.espressif.com/dl/package_esp32_index.json
Ora vai su Strumenti> Board> Boards Manager
In Board Manager, cerca ESP32 e installa "ESP32 di Espressif Systems".
Spiegazione del codice
Abbiamo spiegato Face Recognition con ESP32 nell'articolo precedente; qui modificheremo lo stesso codice per controllare una serratura a solenoide. Il codice completo è diviso in quattro parti. Uno è il codice principale per la telecamera e il modulo relè in cui l'ESP32 blocca o sblocca la porta in base al riconoscimento facciale e gli altri tre codici sono per la pagina Web, l'indice della telecamera e i pin della telecamera. Il codice completo è fornito alla fine di questa pagina. Qui stiamo spiegando alcune parti importanti del codice.
Inizia il programma includendo tutti i file della libreria.
#include "esp_camera.h" #include
Nella riga successiva, rimuovere il commento dal modulo della fotocamera che si sta utilizzando con ESP32. Nel codice sono definiti cinque diversi modelli di telecamera. In questo caso, stiamo usando il modello AI-THINKER.
// # define CAMERA_MODEL_WROVER_KIT // # define CAMERA_MODEL_ESP_EYE // # define CAMERA_MODEL_M5STACK_PSRAM // # define CAMERA_MODEL_M5STACK_WIDE #define CAMERA_MODEL_AI_THINKER
Successivamente, inserisci le tue credenziali di rete nelle seguenti variabili:
const char * ssid = "Wi-Fi Name"; const char * password = "password Wi-Fi";
Quindi definire il pin a cui è collegato il modulo relè. Useremo la funzione millis () per bloccare la porta dopo averla sbloccata in un intervallo di tempo definito, qui sono 5 secondi.
#define relay 4 long prevMillis = 0; int intervallo = 5000;
Nella funzione setup () , inizializza il monitor seriale a una velocità di trasmissione di 115200 per scopi di debug. Quindi, nelle righe successive, definire la modalità pin per il modulo relè e impostare inizialmente il relè su una posizione bassa.
void setup () {Serial.begin (115200); pinMode (relè, OUTPUT); digitalWrite (relè, BASSO);
All'interno della funzione loop () , controlla se il viso corrisponde a quello registrato. In caso affermativo, sbloccare la porta per 5 secondi e dopo 5 secondi bloccarla di nuovo.
void loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relè, HIGH); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> intervallo) {activeRelay = false; matchFace = false; digitalWrite (relè, BASSO); }
Testare il
Infine, per caricare il codice, collega la scheda FDTI al tuo laptop e seleziona il "Modulo Wrover ESP32" come scheda. Inoltre, modifica le altre impostazioni come mostrato nell'immagine sottostante:
Non dimenticare di collegare il pin IO0 a GND prima di caricare il codice e premere anche il pulsante di ripristino ESP32 e quindi fare clic sul pulsante di caricamento.
Nota: se ricevi errori durante il caricamento del codice, verifica che IO0 sia connesso a GND e di aver selezionato le impostazioni corrette nel menu Strumenti.
Dopo aver caricato il codice, rimuovere il pin IO0 e GND. Quindi aprire il monitor seriale e modificare la velocità di trasmissione in 115200. Successivamente, premere il pulsante di ripristino ESP32, stamperà l'indirizzo IP ESP e la porta n. sul monitor seriale.
Ora vai al browser e inserisci l'indirizzo IP ESP che viene copiato dal monitor seriale per accedere allo streaming della telecamera. Ti porterà alla pagina di streaming. Per avviare lo streaming video, fare clic sul pulsante "Avvia streaming" nella parte inferiore della pagina.
Per riconoscere i volti con ESP32-CAM, prima dobbiamo registrare i volti. Per questo, attiva le funzioni di riconoscimento e rilevamento del viso dalle impostazioni, quindi fai clic sul pulsante Registra viso. Ci vogliono diversi tentativi per salvare la faccia. Dopo aver salvato il viso, rileva il viso come soggetto 0 dove zero è il numero del viso.
Dopo aver registrato i volti, se viene riconosciuto un volto nel feed video, ESP32 alzerà il modulo relè per sbloccare la porta.
Ecco come utilizzare ESP32-CAM per creare un sistema di sicurezza basato sul riconoscimento facciale. Il codice completo può essere scaricato da questo collegamento ed è anche fornito di seguito insieme a un video dimostrativo.