- Componente necesare
- Blocare solenoidă
- Diagrama circuitului
- Instalați placa ESP32 pe Arduino IDE
- Explicarea codului
- Testarea
Securitatea este cel mai mult îngrijorătoare pentru oricine în zilele noastre, fie că este vorba despre securitatea datelor sau securitatea propriei case. Odată cu avansarea tehnologiei și utilizarea tot mai mare a IoT, încuietorile digitale ale ușilor au devenit foarte frecvente în aceste zile. Blocarea digitală nu necesită nicio cheie fizică, dar folosește RFID, amprentă, Face ID, PIN, parole etc. pentru a controla încuietoarea ușii. În trecut, am dezvoltat multe aplicații digitale pentru încuietori de ușă folosind aceste diverse tehnologii. În acest tutorial construim un sistem de blocare digitală a ușii controlat de Face ID utilizând ESP32-CAM.
Modulul AI-Thinker ESP32-CAM este o placă de dezvoltare cu cost redus, cu o cameră OV2640 de dimensiuni foarte mici și un slot pentru card micro SD. Are un cip ESP32 S cu conectivitate Wi-Fi și Bluetooth încorporată, cu 2 procesoare LX6 de 32 biți de înaltă performanță, arhitectură de conducte în 7 etape. Am explicat anterior în detaliu ESP32-CAM și l-am folosit pentru a construi o ușă Wi-Fi Video sonerie. De data aceasta vom folosi ESP32-CAM pentru a construi un sistem de blocare a ușilor bazat pe recunoașterea feței, utilizând un modul de releu și blocarea solenoidului.
Componente necesare
- ESP32 CAM
- Consiliul FTDI
- Modul releu
- Blocare solenoidă
- Sârme jumper
Blocare solenoidă
O blocare solenoidă funcționează pe mecanismul de blocare electronico-mecanic. Acest tip de încuietoare are un slug cu o tăietură înclinată și un suport de montare bun. Când puterea este aplicată, DC creează un câmp magnetic care mută slugul în interior și menține ușa în poziția deblocată. Slugul își va păstra poziția până când se va scoate puterea. Când alimentarea este deconectată, melcul se deplasează în exterior și blochează ușa. Nu folosește nicio putere într-o stare blocată. Pentru a acționa blocarea solenoidului, veți avea nevoie de o sursă de alimentare care poate da 12V @ 500mA.
Am folosit anterior o încuietoare solenoidă pentru a construi o încuietoare RFID pe bază de Arduino.
Diagrama circuitului
Diagrama circuitului pentru sistemul de blocare a ușii cu recunoaștere a feței ESP32-CAM este prezentată mai jos:
Circuitul de mai sus s-a combinat cu o placă FTDI, modul de releu și blocare solenoidă. Placa FTDI este utilizată pentru a bloca codul în ESP32-CAM deoarece nu are un conector USB în timp ce modulul de releu este utilizat pentru a activa sau dezactiva blocarea solenoidului. Pinii VCC și GND ai plăcii FTDI și ai modulului de releu sunt conectați la pinii Vcc și GND ai ESP32-CAM. TX și RX ale plăcii FTDI sunt conectate la RX și TX ale ESP32, iar pinul IN al modulului releu este conectat la IO4 al ESP32-CAM.
ESP32-CAM |
Consiliul FTDI |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Modul releu |
5V |
VCC |
GND |
GND |
IO4 |
ÎN |
Notă: Înainte de a încărca codul, conectați IO0 la sol. IO0 determină dacă ESP32 este în modul intermitent sau nu. Când GPIO 0 este conectat la GND, ESP32 este în modul intermitent.
După conectarea hardware-ului conform schemei de circuite, ar trebui să arate ca mai jos:
Instalați placa ESP32 pe Arduino IDE
Aici Arduino IDE este folosit pentru a programa ESP32-CAM. Pentru aceasta, mai întâi, instalați add-on-ul ESP32 pe Arduino IDE.
Pentru a instala placa ESP32 în IDE-ul dvs. Arduino, accesați Fișier> Preferințe.
Acum copiați linkul de mai jos și lipiți-l în câmpul „Adrese URL suplimentare ale administratorului de bord” așa cum se arată în figura de mai jos. Apoi, faceți clic pe butonul „OK”:
https://dl.espressif.com/dl/package_esp32_index.json
Acum accesați Instrumente> Placă> Manager placi
În Board Manager, căutați ESP32 și instalați „ESP32 by Espressif Systems“.
Explicarea codului
Am explicat recunoașterea feței cu ESP32 în articolul anterior; aici vom modifica același cod pentru a controla o blocare a ușii cu solenoid. Codul complet este împărțit în patru părți. Unul este codul principal pentru camera și modulul de releu în care ESP32 blochează sau deblochează ușa în funcție de recunoașterea feței, iar celelalte trei coduri sunt pentru pagina web, indexul camerei și pinii camerei. Codul complet este dat la sfârșitul acestei pagini. Aici explicăm câteva părți importante ale codului.
Începeți programul prin includerea tuturor fișierelor bibliotecii.
#include "esp_camera.h" #include
În rândul următor, decomentați modulul camerei pe care îl utilizați cu ESP32. În cod, sunt definite cinci modele de camere diferite. În acest caz, folosim modelul 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
După aceea, introduceți acreditările de rețea în următoarele variabile:
const char * ssid = "Nume Wi-Fi"; const char * password = "parolă Wi-Fi";
Apoi definiți pinul la care este conectat modulul de releu. Vom folosi funcția millis () pentru a bloca ușa după deblocarea acesteia într-un interval de timp definit, aici sunt 5 secunde.
#define relay 4 long prevMillis = 0; intervalul int = 5000;
În funcția setup () , inițializați serialul la o rată de transmisie de 115200 în scopuri de depanare. Apoi, în rândurile următoare, definiți modul pin pentru modulul releu și, de asemenea, setați releul la o poziție joasă inițial.
void setup () {Serial.begin (115200); pinMode (releu, OUTPUT); digitalWrite (releu, LOW);
În interiorul funcției loop () , verificați dacă fața se potrivește cu fața înscrisă. Dacă da, deblocați ușa timp de 5 secunde și după 5 secunde blocați din nou ușa.
bucla void () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (releu, HIGH); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> interval) {activeRelay = false; matchFace = fals; digitalWrite (releu, LOW); }
Testarea
În cele din urmă pentru a încărca codul, conectați placa FDTI la laptop și selectați „ESP32 Wrover Module” ca placa dvs. De asemenea, modificați celelalte setări așa cum se arată în imaginea de mai jos:
Nu uitați să conectați pinul IO0 la GND înainte de a încărca codul și, de asemenea, apăsați butonul de resetare ESP32 și apoi faceți clic pe butonul de încărcare.
Notă: Dacă primiți erori în timp ce încărcați codul, verificați dacă IO0 este conectat la GND și ați selectat setările corecte în meniul Instrumente.
După încărcarea codului, eliminați pinul IO0 și GND. Apoi deschideți monitorul serial și modificați rata de transmisie la 115200. După aceea, apăsați butonul de resetare ESP32, acesta va imprima adresa IP IP și portul nr. pe monitorul serial.
Navigați acum la browser și introduceți adresa IP ESP care este copiată de pe monitorul serial pentru a accesa fluxul camerei. Vă va duce la pagina de streaming. Pentru a începe redarea video, faceți clic pe butonul „Start Stream” din partea de jos a paginii.
Pentru a recunoaște fețele cu ESP32-CAM, mai întâi, trebuie să înscriem fețele. Pentru aceasta, activați funcțiile de recunoaștere și detectare a feței din setări și apoi faceți clic pe butonul Înscriere față. Este nevoie de mai multe încercări pentru a salva fața. După salvarea feței, detectează fața ca subiect 0 unde zero este numărul feței.
După înregistrarea fețelor, dacă o față este recunoscută în fluxul video, ESP32 va ridica modulul de releu pentru a debloca ușa.
Deci, astfel ESP32-CAM poate fi utilizat pentru a construi un sistem de securitate bazat pe recunoașterea feței. Codul complet poate fi descărcat de pe acest link și este, de asemenea, prezentat mai jos, împreună cu un videoclip demonstrativ.