- Componentes necessários
- Bloqueio Solenóide
- Diagrama de circuito
- Instale a placa ESP32 no IDE Arduino
- Explicação do código
- Testando o
A segurança é a maior preocupação para qualquer pessoa hoje em dia, seja a segurança de dados ou a segurança de sua própria casa. Com o avanço da tecnologia e o uso crescente da IoT, as fechaduras digitais tornaram-se muito comuns atualmente. A fechadura digital não requer nenhuma chave física, mas usa RFID, impressão digital, ID facial, pino, senhas, etc. para controlar a fechadura da porta. No passado, desenvolvemos muitos aplicativos de fechadura digital usando essas várias tecnologias. Neste tutorial, construímos um sistema de travamento de porta digital controlado por Face ID usando ESP32-CAM.
O módulo AI-Thinker ESP32-CAM é uma placa de desenvolvimento de baixo custo com uma câmera OV2640 de tamanho muito pequeno e um slot para cartão micro SD. Ele tem um chip ESP32 S com conectividade Wi-Fi e Bluetooth integrada, com 2 CPUs LX6 de 32 bits de alto desempenho e arquitetura de pipeline de 7 estágios. Explicamos anteriormente o ESP32-CAM em detalhes e o usamos para construir uma campainha de vídeo de porta Wi-Fi. Desta vez, usaremos o ESP32-CAM para construir um sistema de travamento de porta baseado em reconhecimento facial usando um módulo de relé e trava de solenóide.
Componentes necessários
- ESP32 CAM
- FTDI Board
- Módulo de Relé
- Bloqueio Solenóide
- Jumper Wires
Bloqueio Solenóide
Uma trava de solenóide funciona no mecanismo de travamento eletrônico-mecânico. Esse tipo de trava possui um encaixe com corte inclinado e um bom suporte de montagem. Quando a energia é aplicada, a DC cria um campo magnético que move o cartucho para dentro e mantém a porta na posição destravada. O cartucho reterá sua posição até que a energia seja removida. Quando a energia é desconectada, o projétil se move para fora e tranca a porta. Ele não usa nenhuma energia em um estado bloqueado. Para acionar a trava solenóide, você precisaria de uma fonte de alimentação que pode fornecer 12 V @ 500 mA.
Anteriormente, usamos uma fechadura de solenóide para construir uma fechadura RFID baseada em Arduino.
Diagrama de circuito
O diagrama de circuito para o sistema de travamento de porta de reconhecimento facial ESP32-CAM é fornecido abaixo:
O circuito acima combinado com uma placa FTDI, Módulo de Relé e Bloqueio Solenóide. A placa FTDI é usada para atualizar o código no ESP32-CAM, pois não tem um conector USB enquanto o módulo de relé é usado para ligar ou desligar a trava solenóide. Os pinos VCC e GND da placa FTDI e o módulo de relé são conectados aos pinos Vcc e GND do ESP32-CAM. TX e RX da placa FTDI são conectados a RX e TX de ESP32 e o pino IN do módulo de relé é conectado a IO4 de ESP32-CAM.
ESP32-CAM |
FTDI Board |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Módulo de Relé |
5V |
VCC |
GND |
GND |
IO4 |
DENTRO |
Observação: antes de carregar o código, conecte o IO0 ao solo. IO0 determina se o ESP32 está no modo intermitente ou não. Quando o GPIO 0 está conectado ao GND, o ESP32 está no modo intermitente.
Depois de conectar o hardware de acordo com o diagrama de circuito, ele deve se parecer com o seguinte:
Instale a placa ESP32 no IDE Arduino
Aqui, o Arduino IDE é usado para programar ESP32-CAM. Para isso, primeiro instale o add-on ESP32 no Arduino IDE.
Para instalar a placa ESP32 em seu IDE Arduino, vá para Arquivo> Preferências.
Agora copie o link abaixo e cole-o no campo “URLs adicionais do gerente da placa” conforme mostrado na figura abaixo. Em seguida, clique no botão “OK”:
https://dl.espressif.com/dl/package_esp32_index.json
Agora vá para Ferramentas> Placa> Gerenciador de placas
No Board Manager, procure ESP32 e instale o “ESP32 by Espressif Systems“.
Explicação do código
Explicamos o Reconhecimento facial com ESP32 no artigo anterior; aqui iremos modificar o mesmo código para controlar uma fechadura de porta solenóide. O código completo está dividido em quatro partes. Um é o código principal para a câmera e o módulo de relé onde o ESP32 trava ou destranca a porta de acordo com o reconhecimento facial, e os outros três códigos são para página da web, índice de câmera e pinos de câmera. O código completo é fornecido no final desta página. Aqui estamos explicando algumas partes importantes do código.
Comece o programa incluindo todos os arquivos da biblioteca.
#include "esp_camera.h" #include
Na próxima linha, descomente o módulo da câmera que você está usando com o ESP32. No código, cinco modelos diferentes de câmeras são definidos. Nesse caso, estamos usando o 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
Depois disso, insira suas credenciais de rede nas seguintes variáveis:
const char * ssid = "Nome do Wi-Fi"; const char * password = "senha Wi-Fi";
Em seguida, defina o pino onde o módulo de relé está conectado. Estaremos usando a função millis () para travar a porta após destravá-la em um intervalo de tempo definido, aqui é de 5 segundos.
# define relé 4 long prevMillis = 0; intervalo interno = 5000;
Na função setup () , inicialize o Monitor Serial a uma taxa de transmissão de 115200 para fins de depuração. Então, nas próximas linhas, defina o modo de pino para o módulo de relé e também defina o relé em uma posição baixa inicialmente.
configuração vazia () {Serial.begin (115200); pinMode (relé, OUTPUT); digitalWrite (relé, LOW);
Dentro da função loop () , verifique se o rosto corresponde ao rosto registrado. Em caso afirmativo, destranque a porta por 5 segundos e, após 5 segundos, tranque a porta novamente.
void loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relé, ALTO); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> intervalo) {activeRelay = false; matchFace = false; digitalWrite (relé, LOW); }
Testando o
Finalmente, para fazer o upload do código, conecte a placa FDTI ao seu laptop e selecione 'ESP32 Wrover Module' como sua placa. Além disso, altere as outras configurações conforme mostrado na imagem abaixo:
Não se esqueça de conectar o pino IO0 ao GND antes de enviar o código e também pressione o botão de reset do ESP32 e depois clique no botão de upload.
Observação: se você receber erros ao enviar o código, verifique se IO0 está conectado ao GND e se você selecionou as configurações corretas no menu Ferramentas.
Depois de fazer o upload do código, remova o pino IO0 e GND. Em seguida, abra o monitor serial e altere a taxa de transmissão para 115200. Depois disso, pressione o botão de redefinição do ESP32, ele imprimirá o endereço IP do ESP e o número da porta. no monitor serial.
Agora navegue até o navegador e insira o endereço IP do ESP que é copiado do monitor serial para acessar o streaming da câmera. Isso o levará para a página de streaming. Para iniciar a transmissão de vídeo, clique no botão 'Iniciar transmissão' na parte inferior da página.
Para reconhecer os rostos com ESP32-CAM, primeiro, temos que registrar os rostos. Para isso, ative os recursos de reconhecimento e detecção de rosto nas configurações e clique no botão Registrar rosto. São necessárias várias tentativas para salvar o rosto. Depois de salvar o rosto, ele detecta o rosto como sujeito 0, onde zero é o número do rosto.
Depois de registrar os rostos, se um rosto for reconhecido no feed de vídeo, o ESP32 tornará o módulo de relé alto para destravar a porta.
Portanto, é assim que o ESP32-CAM pode ser usado para construir um sistema de segurança baseado em reconhecimento facial. O código completo pode ser baixado deste link e também é fornecido abaixo, junto com um vídeo de demonstração.