Leitor Biometrico capacitivo com ESP (para fechadura solenoide)

O projeto já está funcional mas ainda está em desenvolvimento, novas funcionalidades serão adicionadas e esse post será atualizado conforme progresso for realizado. Tambem irei detalhar um pouco mais durante a semana a seção mais detalhes deste post.

Referencia circuito


link firmware:

O firmware funciona apenas em esp32 para saber mais sobe como adaptar para esp8266 consulte a seção de mais detalhes no fim do post. O firmware também so é compatível com fechaduras que podem ser abertas com pulso elétrico, para fechaduras integradas ao HA separadamente vejam este projeto.

o firmware resetFingers32 apaga todos dedos armazenados no sensor.
O firmware entrará em modo de cadastro de dedo em boot caso o sensor biométrico não tenha nenhum dedo cadastrado.
Para instalação do firmware sera necessário arduino IDE e fazer download do suporte a esp32 e a biblioteca Adafruit Fingerprint. Não compartilhei o firmware pré-compilado pois o Arduino também precisa instalar um bootloader portanto fica mais fácil fazer o processo pela Arduino IDE.

As seguintes linhas do firmware podem ser customizadas

#define relay LED_BUILTIN
#define enrollHoldPeriod 3500
const bool relayTrig = HIGH;

A primeira linha é o o pino de controle do rele, por padrão está como LED_BUILTIN assim a led do esp serve como auxilio para debugging caso o rele não acione. Para isso funcionar a sua placa de prototipagem precisa ter esse pino definido na IDE arduino ( eu utilizei a TTGO T7 mini que tinha uma led e essa constante definida no arduino como pino 19). Caso sua placa especifica não tenha essa constante definida ou queira utilizar um pino diferente mude LED_BUILTIN para o numero da gpio desejada.

A segunda linha é o tempo que um dedo cadastrado precisa ser mantido no sensor para entrar em modo de cadastro de novos dedos (em milissegundos), ajuste conforme desejado.
A terceira linha é o nível de tensão que ativa o seu rele (alguns módulos são low level trigger, ativam quando o sinal está em 0v).

Para comunicação com sensor é usado porta Serial2,por padrão seus pinos no arduino são 16 e 17 mas podem ser alterados, mais informações na seção de mais detalhes.


Mais detalhes Firmware

Para compatibilidade com esp8266 em teoria basta trocar HardwareSerial com Software Serial.
Para trocar os pinos utilizados para Serial2 precisa alterar o codigo do addon de suporte a esp32. No windows o arquivo a ser alterado é %LOCALAPPDATA%\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32\HardwareSerial.cpp
O numero V1.0.6 é o numero da versão do addon do esp instalado e pode ser diferente no seu caso.
As linhas a serem alteradas são:

#ifndef RX2
#define RX2 16
#endif

#ifndef TX2
#define TX2 17
#endif

Altere 16 e 17 pelos pinos desejados.
Como explicado no video decidi não usar esphome. Essa decisão vai me permitir ter mais controle do metodo que integro com o home assistant. Além disso acredito que no esphome não seja possível replicar o metodo de cadastrar novo dedo segurando um dedo pre cadastrado (ou pelo menos eu não sei como fazer).

Mais detalhes Hardware

Como explicado no video eu ja tinha fios com 12v no conduite, trocar por 5v não era uma opção pois a fechadura solenoide necessita de 12v. Adicionar uma segunda fonte 5v daria muito trabalho pois o nobreak esta distante e existem outros cabos passando no conduite, por isso optei por usar o conversor stepdown.
O sensor foi escolhido por ser capacitivo e por ter compatibilidade com a biblioteca adafruit fingerprint o que facilitou o desenvolvimento.
O modulo rele pode ser 5v ou 12v pois temos essas duas tensoes de alimentação. Não é recomendado alimentar rele pelo esp por isso não utilize módulos 3.3v. Para não danificar seu esp é importante que seu modulo rele seja high level trigger ou tenhas nível de trigger selecionado. Caso seja low level trigger é necessario que tenha a alimentação do rele e a tensão positiva do optoacoplador separadas.

3 Likes