- Componentes requeridos
- Bloqueo de solenoide
- Diagrama de circuito
- Instale la placa ESP32 en Arduino IDE
- Explicación del código
- Probando el
La seguridad es lo que más preocupa a cualquier persona hoy en día, ya sea la seguridad de los datos o la seguridad de su propio hogar. Con el avance de la tecnología y el uso cada vez mayor de IoT, las cerraduras de puertas digitales se han vuelto muy comunes en estos días. La cerradura digital no requiere ninguna llave física, pero utiliza RFID, huella digital, Face ID, pin, contraseñas, etc. para controlar la cerradura de la puerta. En el pasado, hemos desarrollado muchas aplicaciones de cerraduras de puertas digitales utilizando estas diversas tecnologías. En este tutorial construimos un sistema de cerradura de puerta digital controlado por Face ID usando ESP32-CAM.
El módulo AI-Thinker ESP32-CAM es una placa de desarrollo de bajo costo con una cámara OV2640 de tamaño muy pequeño y una ranura para tarjeta micro SD. Tiene un chip ESP32 S con conectividad Wi-Fi y Bluetooth incorporada, con 2 CPU LX6 de 32 bits de alto rendimiento, arquitectura de canalización de 7 etapas. Anteriormente explicamos ESP32-CAM en detalle y lo usamos para construir un timbre con video de puerta Wi-Fi. Esta vez usaremos el ESP32-CAM para construir un sistema de bloqueo de puerta basado en reconocimiento facial usando un módulo de relé y un bloqueo de solenoide.
Componentes requeridos
- ESP32 CAM
- Tablero FTDI
- Módulo de relé
- Bloqueo de solenoide
- Cables de puente
Bloqueo de solenoide
Un bloqueo de solenoide funciona en el mecanismo de bloqueo electrónico-mecánico. Este tipo de cerradura tiene un taco con un corte inclinado y un buen soporte de montaje. Cuando se aplica la energía, la CC crea un campo magnético que mueve la bala hacia adentro y mantiene la puerta en la posición desbloqueada. La babosa mantendrá su posición hasta que se retire la energía. Cuando se desconecta la energía, la babosa se mueve hacia afuera y bloquea la puerta. No usa energía en un estado bloqueado. Para accionar el bloqueo de solenoide, necesitaría una fuente de alimentación que pueda proporcionar 12 V a 500 mA.
Anteriormente utilizamos una cerradura de solenoide para construir una cerradura de puerta RFID basada en Arduino.
Diagrama de circuito
El diagrama de circuito para el sistema de bloqueo de puerta con reconocimiento facial ESP32-CAM se muestra a continuación:
El circuito anterior combinado con una placa FTDI, módulo de relé y bloqueo de solenoide. La placa FTDI se usa para actualizar el código en ESP32-CAM ya que no tiene un conector USB, mientras que el módulo de relé se usa para encender o apagar el bloqueo del solenoide. Los pines VCC y GND de la placa FTDI y el módulo de relé están conectados al pin Vcc y GND de ESP32-CAM. TX y RX de la placa FTDI están conectados a RX y TX de ESP32 y el pin IN del módulo de relé está conectado a IO4 de ESP32-CAM.
ESP32-CAM |
Tablero FTDI |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Módulo de relé |
5V |
VCC |
GND |
GND |
IO4 |
EN |
Nota: Antes de cargar el código, conecte el IO0 a tierra. IO0 determina si el ESP32 está en modo intermitente o no. Cuando GPIO 0 está conectado a GND, el ESP32 está en modo intermitente.
Después de conectar el hardware de acuerdo con el diagrama del circuito, debería verse como a continuación:
Instale la placa ESP32 en Arduino IDE
Aquí se utiliza Arduino IDE para programar ESP32-CAM. Para eso, primero, instale el complemento ESP32 en Arduino IDE.
Para instalar la placa ESP32 en su IDE de Arduino, vaya a Archivo> Preferencias.
Ahora copie el enlace siguiente y péguelo en el campo "URL adicionales del administrador de la placa" como se muestra en la figura siguiente. Luego, haga clic en el botón "Aceptar":
https://dl.espressif.com/dl/package_esp32_index.json
Ahora vaya a Herramientas> Tablero> Administrador de tableros
En Board Manager, busque ESP32 e instale "ESP32 by Espressif Systems".
Explicación del código
Explicamos el reconocimiento facial con ESP32 en el artículo anterior; aquí modificaremos el mismo código para controlar una cerradura de puerta por solenoide. El código completo se divide en cuatro partes. Uno es el código principal para la cámara y el módulo de relé donde el ESP32 bloquea o desbloquea la puerta según el reconocimiento facial, y los otros tres códigos son para la página web, el índice de la cámara y los pines de la cámara. El código completo se encuentra al final de esta página. A continuación, explicamos algunas partes importantes del código.
Comience el programa incluyendo todos los archivos de la biblioteca.
#include "esp_camera.h" #include
En la siguiente línea, descomente el módulo de la cámara que está utilizando con ESP32. En el código, se definen cinco modelos de cámara diferentes. En este caso, estamos usando el modelo 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
Después de eso, inserte sus credenciales de red en las siguientes variables:
const char * ssid = "Nombre de Wi-Fi"; const char * contraseña = "contraseña de Wi-Fi";
Luego defina el pin donde está conectado el módulo de relé. Usaremos la función millis () para bloquear la puerta después de desbloquearla en un intervalo de tiempo definido, aquí son 5 segundos.
#define relé 4 largo prevMillis = 0; int intervalo = 5000;
En la función setup () , inicialice Serial Monitor a una velocidad en baudios de 115200 para fines de depuración. Luego, en las siguientes líneas, defina el modo pin para el módulo de relé y también configure el relé en una posición baja inicialmente.
configuración vacía () {Serial.begin (115200); pinMode (relé, SALIDA); digitalWrite (relé, BAJO);
Dentro de la función loop () , compruebe si la cara coincide con la cara inscrita. En caso afirmativo, desbloquee la puerta durante 5 segundos y, después de 5 segundos, vuelva a bloquearla.
bucle vacío () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relé, ALTO); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> intervalo) {activeRelay = false; matchFace = falso; digitalWrite (relé, BAJO); }
Probando el
Finalmente, para cargar el código, conecte la placa FDTI a su computadora portátil y seleccione el 'Módulo Wrover ESP32' como su placa. Además, cambie las otras configuraciones como se muestra en la siguiente imagen:
No olvide conectar el pin IO0 a GND antes de cargar el código y también presione el botón de reinicio ESP32 y luego haga clic en el botón de carga.
Nota: Si obtiene errores al cargar el código, verifique que IO0 esté conectado a GND y que haya seleccionado la configuración correcta en el menú Herramientas.
Después de cargar el código, quite el pin IO0 y GND. Luego abra el monitor en serie y cambie la velocidad en baudios a 115200. Después de eso, presione el botón de reinicio ESP32, se imprimirá la dirección IP ESP y el número de puerto. en el monitor de serie.
Ahora navegue hasta el navegador e ingrese la dirección IP ESP que se copia del monitor serial para acceder a la transmisión de la cámara. Te llevará a la página de transmisión. Para iniciar la transmisión de video, haga clic en el botón 'Iniciar transmisión' en la parte inferior de la página.
Para reconocer las caras con ESP32-CAM, primero, tenemos que registrar las caras. Para eso, active las funciones de detección y reconocimiento facial desde la configuración y luego haga clic en el botón Registrar rostro. Se necesitan varios intentos para salvar la cara. Después de guardar el rostro, detecta el rostro como sujeto 0 donde cero es el número de rostro.
Después de registrar las caras, si se reconoce una cara en la transmisión de video, ESP32 hará que el módulo de relé esté alto para desbloquear la puerta.
Así es como se puede utilizar ESP32-CAM para construir un sistema de seguridad basado en reconocimiento facial. El código completo se puede descargar desde este enlace y también se proporciona a continuación junto con un video de demostración.