Cómo construir un sistema de reconocimiento facial usando ESP32-CAM

La tecnología de reconocimiento facial identifica a las personas analizando y comparando sus rasgos faciales. Utiliza patrones y algoritmos biométricos para mapear y distinguir las características únicas de una persona. La tecnología se ha convertido en un componente esencial de muchas aplicaciones de seguridad.

El reconocimiento facial se utiliza comúnmente para control de acceso, vigilancia, autenticación biométrica, verificación de identidad, identificación criminal, atención, respuesta a emergencias y prevención de fraude.

¿Qué pasaría si pudieras construir un sistema de reconocimiento facial por menos de 20 dólares? Esto es posible con una cámara ESP32. El módulo ESP32-CAM normalmente cuesta alrededor de $10 (aunque los precios pueden variar) y es capaz de tomar fotografías, transmitir videos y realizar reconocimiento facial. En este proyecto, construimos un sistema de reconocimiento facial usando ESP32-CAM con Arduino.

Componentes necesarios

  1. ESP32-CAM x1
  2. Arduino UNO o MEGA x1
  3. Cable USB para conectar Arduino al ordenador.
  4. Cables de puente

ESP32-CAM
ESP32-CAM es una placa de desarrollo que combina el microcontrolador ESP32 con un módulo de cámara, capaz de capturar imágenes y transmitir video a través de Wi-Fi. Es popular entre los desarrolladores y entusiastas de las aplicaciones y proyectos de Internet de las cosas (IoT) que requieren una cámara. .

ESP32-CAM tiene una cámara OV2640 de dos megapíxeles y una ranura para tarjeta TF incorporada. La cámara admite formatos de imagen JPEG y BMP y varios modos como disparo único, ráfaga, etc. El módulo se basa en el microprocesador Tensilica LX6 de doble núcleo, una CPU de 32 bits de bajo consumo. Tiene una memoria flash incorporada de 4 MB para almacenamiento de programas y se puede utilizar una ranura para tarjeta MicroSD para almacenamiento adicional. Tiene WI-FI y Bluetooth integrados, y el módulo de la cámara puede transmitir vídeo a través de Wi-Fi.

ESP32-CAM tiene el siguiente diagrama de pines:

El módulo tiene dos pines de alimentación (3,3 y 5 V) y tres pines de tierra. Dos pines son para la comunicación del receptor/transmisor asíncrono universal (UART). No dispone de puerto USB, por lo que se debe utilizar el puerto UART para cargar código a través de un programador FTDI o Arduino. Al cargar el código, el GPIO0 del módulo debe estar conectado a tierra.

Conexiones de circuito
Para este proyecto, usaremos Arduino para cargar el boceto al ESP32-CAM. Tanto Arduino UNO como Arduino MEGA funcionan bien.

Los pasos:

  • Conecte GPIO1 (U0_TXD) y GPIO3 (U0_RXD) con los pines TX y RX de Arduino
  • Conecte los pines de tierra y 5 V del ESP32-CAM con los pines de salida de 5 V y GND del Arduino.
  • Conecte el pin RESET de Arduino al pin de tierra.
  • Después de enviar el boceto, conecte el GPIO0 del ESP32-CAM a su pin de tierra.
  • Después de cargar el boceto, retire la conexión entre el GPIO0 y los pines de tierra del ESP32-CAM.

Diagramas de circuito
Este diagrama de circuito muestra las conexiones entre Arduino y ESP32-CAM al cargar el boceto.

El siguiente diagrama de circuito muestra las conexiones entre Arduino y ESP32-CAM a la cámara después de cargar el boceto. Tenga en cuenta que se ha eliminado la conexión entre el GPIO0 del ESP32-CAM y los pines de tierra.

el boceto
Antes de enviar el boceto, debe instalar el complemento ESP32 y la biblioteca ESP32 en el IDE de Arduino. Para el complemento ESP32, navegue hasta Archivo->Preferencias y agregue las siguientes líneas en 'URL de administrador de tablero adicionales'. Luego haga clic en 'Aceptar'.

Luego abra el administrador de tableros navegando a Herramientas->Tablero ->Administrador de tableros. Busque ESP32 e instale 'ESP32 de Espressif Systems'.

Después de instalar el complemento ESP32, navegue hasta Archivo-> Ejemplos -> ESP32 -> Cámara y abra el ejemplo CameraWebServer. En el ejemplo de CameraWebServer, debe desactivar la función Brownout del ESP32-CAM. Para hacer esto, agregue las siguientes bibliotecas desde el principio del ejemplo.

#incluye “soc/soc.h”
#incluye “soc/rtc_cntl_reg.h”

En la función de configuración, agregue una línea más de código de la siguiente manera:

WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);

En el código de ejemplo, descomente la siguiente línea de código:

#define CAMERA_MODEL_AI_THINKER // Tiene PSRAM

Reemplace las asignaciones de SSID y contraseña con el SSID y la clave de red de su conexión WI-FI. El esquema completo del ejemplo modificado se proporciona a continuación.

#incluir “esp_camera.h”
#incluir
#incluir “soc/soc.h”
#incluye “soc/rtc_cntl_reg.h”

Código

Cargando el boceto
Primero, complete las conexiones del circuito como se indicó anteriormente para cargar el código. Recuerda conectar el GPIO0 del ESP32-CAM con su pin de tierra para cargar correctamente el boceto.

Conecte el Arduino a su computadora usando un cable USB. Seleccione 'Módulo ESP32 Wrover' como placa y configure los siguientes parámetros en 'Herramientas'.

Compile y cargue el boceto haciendo clic en el botón cargar en el IDE de Arduino.

Obtener la dirección IP
Después de cargar el código, elimine la conexión entre los pines GPIO0 y GND del ESP32-CAM. Abra el monitor serie del IDE de Arduino y establezca su velocidad en baudios en 115.200 bps. Presione el botón de reinicio en ESP32-CAM y espere a que la cámara se conecte a WI-FI.

Después de que la cámara se haya iniciado exitosamente y se haya conectado a Internet, la dirección IP que se conecta al servidor de transmisión de video se imprimirá en el monitor serial.

Accediendo al servidor de transmisión de video
Abra la dirección IP obtenida del ESP32-CAM en cualquier navegador web. El servidor de transmisión de video debería abrirse. Desplácese hacia abajo y haga clic en "Iniciar transmisión".

Aquí hay una transmisión de video desde ESP32-CAM a través de WI-FI.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.