- Components necessaris
- Bloqueig de solenoide
- Esquema de connexions
- Instal·leu la placa ESP32 a Arduino IDE
- Explicació del codi
- Provant el fitxer
Actualment, la seguretat és el que més preocupa qualsevol persona, ja sigui per seguretat de dades o per la seva pròpia casa. Amb l’avenç de la tecnologia i l’ús creixent de l’IoT, els panys digitals de les portes s’han convertit en molt habituals en aquests dies. El pany digital no requereix cap clau física, però utilitza RFID, empremta digital, identificació facial, pin, contrasenyes, etc. per controlar el pany de la porta. En el passat, hem desenvolupat moltes aplicacions de panys digitals mitjançant aquestes diverses tecnologies. En aquest tutorial creem un sistema de bloqueig de porta digital controlat per Face ID mitjançant ESP32-CAM.
El mòdul AI-Thinker ESP32-CAM és una placa de desenvolupament de baix cost amb una càmera OV2640 de mida molt petita i una ranura per a targetes micro SD. Té un xip ESP32 S amb connexió Wi-Fi i Bluetooth integrada, amb 2 CPU LX6 de 32 bits d’alt rendiment, arquitectura de canonades de 7 etapes. Prèviament, hem explicat detalladament l’ESP32-CAM i l’hem utilitzat per construir un timbre de vídeo amb porta Wi-Fi. Aquesta vegada utilitzarem l’ESP32-CAM per construir un sistema de bloqueig de porta basat en el reconeixement facial mitjançant un mòdul de relé i un bloqueig de solenoide.
Components necessaris
- ESP32 CAM
- Junta FTDI
- Mòdul de relés
- Bloqueig de solenoide
- Jumper Wires
Bloqueig de solenoide
Un pany de solenoide funciona al mecanisme de bloqueig electrònic-mecànic. Aquest tipus de pany té un llimac amb un tall inclinat i un bon suport de muntatge. Quan s’aplica l’energia, el CC crea un camp magnètic que mou la baba a l’interior i manté la porta en posició de desbloqueig. El llimac conservarà la seva posició fins que s’elimini l’energia. Quan es desconnecta l’alimentació, la llimac es mou cap a l’exterior i tanca la porta. No utilitza cap energia en estat bloquejat. Per accionar el bloqueig del solenoide, necessitareu una font d’energia que pugui donar 12V @ 500mA.

Anteriorment hem utilitzat un pany de solenoide per construir un pany de porta RFID basat en Arduino.
Esquema de connexions
A continuació es mostra el diagrama del circuit per al sistema de bloqueig de porta de reconeixement facial ESP32-CAM:

El circuit anterior es combina amb una placa FTDI, un mòdul de relé i un bloqueig de solenoide. La placa FTDI s’utilitza per fer passar el codi a ESP32-CAM, ja que no disposa de connector USB mentre el mòdul de relé s’utilitza per activar o desactivar el bloqueig del solenoide. Els pins VCC i GND de la placa FTDI i el mòdul de retransmissió estan connectats als pins VCC i GND de l’ESP32-CAM. TX i RX de la placa FTDI estan connectats a RX i TX d’ESP32 i el pin IN del mòdul de relé està connectat a IO4 d’ESP32-CAM.
|
ESP32-CAM |
Junta FTDI |
|
5V |
VCC |
|
GND |
GND |
|
UOR |
TX |
|
UOT |
RX |
|
ESP32-CAM |
Mòdul de relés |
|
5V |
VCC |
|
GND |
GND |
|
IO4 |
IN |
Nota: Abans de penjar el codi, connecteu l'IO0 a terra. IO0 determina si l'ESP32 està en mode intermitent o no. Quan GPIO 0 està connectat a GND, l’ESP32 està en mode intermitent.
Després de connectar el maquinari segons el diagrama del circuit, hauria de tenir el següent aspecte:

Instal·leu la placa ESP32 a Arduino IDE
Aquí Arduino IDE s’utilitza per programar ESP32-CAM. Per a això, primer, instal·leu el complement ESP32 a Arduino IDE.
Per instal·lar la placa ESP32 al vostre IDE Arduino, aneu a Fitxer> Preferències.
Ara copieu l'enllaç següent i enganxeu-lo al camp "URL del gestor de taules addicionals", tal com es mostra a la figura següent. A continuació, feu clic al botó "D'acord":
https://dl.espressif.com/dl/package_esp32_index.json
Ara aneu a Eines> Tauler> Gestor de taulers
A Board Manager, cerqueu ESP32 i instal·leu l '"ESP32 by Espressif Systems".

Explicació del codi
Vam explicar el reconeixement facial amb ESP32 a l’article anterior; aquí modificarem el mateix codi per controlar un pany de solenoide. El codi complet es divideix en quatre parts. Un és el codi principal per a la càmera i el mòdul de relés, on l’ESP32 bloqueja o desbloqueja la porta segons el reconeixement facial, i els altres tres codis són per a pàgines web, índex de càmera i pins de càmera. Es dóna un codi complet al final d'aquesta pàgina. Aquí expliquem algunes parts importants del codi.
Comenceu el programa incloent tots els fitxers de la biblioteca.
#include "esp_camera.h" #include
A la següent línia, descomenteu el mòdul de càmera que utilitzeu amb ESP32. Al codi, es defineixen cinc models de càmeres diferents. En aquest cas, fem servir el model 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
Després, inseriu les vostres credencials de xarxa a les variables següents:
const char * ssid = "Nom de la Wi-Fi"; const char * password = "contrasenya Wi-Fi";
A continuació, definiu el pin on està connectat el mòdul de relé. Utilitzarem la funció millis () per bloquejar la porta després de desbloquejar-la en un interval de temps definit, aquí hi ha 5 segons.
#define relay 4 long prevMillis = 0; int interval = 5000;
A la funció setup () , inicialitzeu el monitor de sèrie a una velocitat de transmissió de 115200 per a la depuració. A continuació, a les següents línies, definiu el mode de pin del mòdul de relé i també configureu el relé en una posició baixa inicialment.
configuració nul·la () {Serial.begin (115200); pinMode (relé, OUTPUT); digitalWrite (relé, BAIX);
Dins de la funció loop () , comproveu si la cara coincideix amb la cara inscrita. Si és així, desbloqueja la porta durant 5 segons i després de 5 segons tanca la porta de nou.
bucle buit () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relé, ALTA); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> interval) {activeRelay = false; matchFace = fals; digitalWrite (relé, BAIX); }
Provant el fitxer
Finalment, per penjar el codi, connecteu la placa FDTI al vostre ordinador portàtil i seleccioneu el "mòdul ESP32 Wrover" com a placa. A més, canvieu la resta de configuracions tal com es mostra a la imatge següent:

No us oblideu de connectar el pin IO0 a GND abans de carregar el codi i també premeu el botó de restabliment ESP32 i, a continuació, feu clic al botó de càrrega.
Nota: Si teniu errors en penjar el codi, comproveu que IO0 està connectat a GND i heu seleccionat la configuració adequada al menú Eines.
Després de penjar el codi, traieu els pins IO0 i GND. A continuació, obriu el monitor sèrie i canvieu la velocitat de transmissió a 115200. Després, premeu el botó de restabliment de l'ESP32, s'imprimirà l'adreça IP de l'ESP i el port núm. al monitor sèrie.

Ara navegueu al navegador i introduïu l'adreça IP ESP que es copia del monitor sèrie per accedir a la transmissió de la càmera. Et portarà a la pàgina de transmissió. Per iniciar la transmissió de vídeo, feu clic al botó "Inicia la reproducció" a la part inferior de la pàgina.

Per reconèixer les cares amb ESP32-CAM, primer hem de registrar les cares. Per a això, activeu les funcions de reconeixement i detecció de cares des de la configuració i, a continuació, feu clic al botó Inscriure la cara. Es necessiten diversos intents per salvar la cara. Després de desar la cara, detecta la cara com a subjecte 0 on zero és el número de la cara.

Després de registrar les cares, si es reconeix una cara al canal de vídeo, ESP32 farà que el mòdul de relé sigui alt per desbloquejar la porta.

Així doncs, així es pot utilitzar l’ESP32-CAM per construir un sistema de seguretat basat en el reconeixement facial. El codi complet es pot descarregar des d’aquest enllaç i també es mostra a continuació juntament amb un vídeo de demostració.
