Como construir um sistema de reconhecimento facial usando ESP32-CAM

A tecnologia de reconhecimento facial identifica indivíduos analisando e comparando suas características faciais. Utiliza padrões biométricos e algoritmos para mapear e distinguir as características únicas de uma pessoa. A tecnologia se tornou um componente essencial de muitas aplicações de segurança.

O reconhecimento facial é comumente usado para controle de acesso, vigilância, autenticação biométrica, verificação de identidade, identificação criminal, atendimento, resposta a emergências e prevenção de fraudes.

E se você pudesse construir um sistema de reconhecimento facial por menos de US$ 20? Isso é possível com uma câmera ESP32. O módulo ESP32-CAM normalmente custa cerca de US$ 10 (embora os preços possam variar) e é capaz de tirar fotos, transmitir vídeos e fazer reconhecimento facial. Neste projeto, construímos um sistema de reconhecimento facial usando o ESP32-CAM com Arduino.

Componentes necessários

  1. ESP32-CAM x1
  2. Arduino UNO ou MEGA x1
  3. Cabo USB para conectar Arduino ao computador
  4. Fios de ligação em ponte

ESP32-CAM
ESP32-CAM é uma placa de desenvolvimento que combina o microcontrolador ESP32 com um módulo de câmera, sendo capaz de capturar imagens e transmitir vídeo via Wi-Fi. É popular entre desenvolvedores e entusiastas de aplicativos e projetos de Internet das Coisas (IoT) que exigem uma câmera.

ESP32-CAM possui uma câmera OV2640 de dois megapixels e um slot para cartão TF integrado. A câmera suporta formatos de imagem JPEG e BMP e vários modos como disparo único, sequência, etc. O módulo é baseado no microprocessador Tensilica LX6 de núcleo duplo, uma CPU de 32 bits de baixo consumo de energia. Possui uma memória flash integrada de 4 MB para armazenamento de programas e um slot para cartão MicroSD pode ser usado para armazenamento adicional. Possui WI-FI e Bluetooth integrados, e o módulo da câmera pode transmitir vídeo por Wi-Fi.

ESP32-CAM possui o seguinte diagrama de pinos:

O módulo tem dois pinos para alimentação – 3,3 e 5 V – e três pinos de aterramento. Dois pinos são para a comunicação universal assíncrona do receptor/transmissor (UART). Ele não tem uma porta USB, então a porta UART deve ser usada para carregar o código por meio de um programador FTDI ou Arduino. Ao carregar o código, o GPIO0 do módulo deve ser conectado ao aterramento.

Conexões de circuito
Para este projeto, usaremos o Arduino para carregar o esboço para o ESP32-CAM. Tanto o Arduino UNO quanto o Arduino MEGA funcionam bem.

Os passos:

  • Conecte GPIO1 (U0_TXD) e GPIO3 (U0_RXD) com os pinos TX e RX do Arduino
  • Conecte o 5V do ESP32-CAM e o pino de aterramento com a saída de 5V do Arduino e os pinos GND.
  • Conecte o pino RESET do Arduino ao pino terra.
  • Após enviar o esboço, conecte o GPIO0 do ESP32-CAM ao seu pino de aterramento.
  • Após carregar o esboço, remova a conexão entre os pinos GPIO0 e terra do ESP32-CAM.

Diagramas de circuitos
Este diagrama de circuito mostra as conexões entre o Arduino e o ESP32-CAM ao carregar o esboço.

O diagrama de circuito a seguir mostra as conexões entre o Arduino e o ESP32-CAM para a câmera depois carregando o esboço. Observe que a conexão entre o GPIO0 do ESP32-CAM e os pinos de aterramento foi removida.

O esboço
Antes de enviar o esboço, você deve instalar o complemento ESP32 e a biblioteca ESP32 no Arduino IDE. Para o complemento do ESP32, navegue até Arquivo-> Preferências e adicione as seguintes linhas em 'URLs adicionais do gerenciador de placa'. Em seguida, clique em 'OK'.

Em seguida, abra o gerenciador de placas navegando para Tools-> Board -> Board Manager. Procure por ESP32 e instale 'ESP32 by Espressif Systems.'

Depois de instalar o complemento ESP32, navegue até Arquivo-> Exemplos -> ESP32 -> Câmera e abra o exemplo CameraWebServer. No exemplo CameraWebServer, você deve desabilitar o recurso Brownout do ESP32-CAM. Para fazer isso, adicione as seguintes bibliotecas desde o início do exemplo.

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

Na função setup , adicione mais uma linha de código da seguinte maneira:

WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);

No código de exemplo, remova o comentário da seguinte linha de código:

#define CAMERA_MODEL_AI_THINKER // Possui PSRAM

Substitua as atribuições de SSID e senha pelo SSID e chave de rede da sua conexão WI-FI. O esboço completo do exemplo modificado é fornecido abaixo.

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

O código

Carregando o esboço
Primeiro, complete as conexões do circuito conforme as instruções acima para carregar o código. Lembre-se de conectar o GPIO0 do ESP32-CAM com seu pino de aterramento para carregar corretamente o esboço.

Conecte o Arduino ao seu computador usando um cabo USB. Selecione 'ESP32 Wrover Module' como a placa e defina os seguintes parâmetros em 'Tools.'

Compile e carregue o esboço clicando no botão de upload no Arduino IDE.

Obter o endereço IP
Após fazer o upload do código, remova a conexão entre os pinos GPIO0 e GND do ESP32-CAM. Abra o Serial Monitor do Arduino IDE e defina sua taxa de transmissão para 115.200 bps. Pressione o botão reset no ESP32-CAM e espere a câmera se conectar ao WI-FI.

Depois que a câmera for inicializada com sucesso e conectada à Internet, o endereço IP que se conecta ao servidor de streaming de vídeo será impresso no Monitor Serial.

Acessando o servidor de streaming de vídeo
Abra o endereço IP obtido do ESP32-CAM em qualquer navegador da Web. O servidor de streaming de vídeo deve abrir. Role para baixo e clique em ‘Iniciar transmissão’.

Aqui está uma transmissão de vídeo do ESP32-CAM via WI-FI.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.