ESP32 - Fechadura de Porta com Teclado
Este tutorial vai guiar você na criação de um sistema de trava de porta com senha usando um teclado e uma fechadura solenoide. O sistema destranca a porta quando a senha correta é digitada e mantém a porta destrancada por 20 segundos antes de trancá-la novamente de forma automática. O código ESP32 também é capaz de suportar várias senhas.
※ Nota:
Além deste tutorial, também temos outros tutoriais sobre sistemas de trava de porta disponíveis:
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Teclado e a Fechadura Solenoide
Temos tutoriais separados que tratam especificamente de teclados e fechaduras solenoides. Cada tutorial fornece informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, as ligações ao ESP32, o código ESP32 e muito mais. Para mais informações sobre esses tutoriais, consulte os links a seguir:
Diagrama de Ligação
- ESP32 - Trava de porta com teclado e fechadura solenoide

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Código ESP32 - Sistema de trava de porta com senha usando teclado e fechadura solenoide
Passos Rápidos
- Conecte o ESP32 ao seu PC usando um cabo USB.
- Abra a Arduino IDE e selecione a placa e a porta apropriadas.
- Clique no ícone Libraries na barra esquerda da Arduino IDE.
- Pesquise a biblioteca “keypad” e depois encontre a biblioteca keypad criada por Mark Stanley e Alexander Brevig.
- Clique no botão Install para instalar a biblioteca keypad.

- Copie o código fornecido e cole-o na Arduino IDE.
- Compile e faça upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE.
- Abra o Serial Monitor na Arduino IDE.
- Pressione as teclas 12345 e depois pressione #
- Pressione as teclas 1234567 e depois pressione #
- Observe o estado da lingueta da fechadura durante 20 segundos.
- Observe a saída no Serial Monitor.
Explicação do Código
Neste sistema, as senhas válidas são pré-programadas no código ESP32. Uma string de entrada é usada para armazenar a senha digitada pelos usuários. O teclado possui duas teclas especiais, * e #, que são usadas para limpar e finalizar a senha digitada. O sistema funciona da seguinte forma:
- Quando uma tecla diferente das teclas especiais é pressionada, ela é adicionada à string de entrada.
- Quando a tecla * é pressionada, a string de entrada é limpa e o processo de digitação da senha pode ser reiniciado.
- Quando a tecla # é pressionada:
- A string de entrada é comparada com as senhas predefinidas. Se ela corresponder a uma das senhas predefinidas, o relé é ativado para destrancar a porta.
- Independentemente de a senha estar correta ou não, a string de entrada é limpa para a próxima entrada.
- No código acima, para simplificar, usamos a função delay. É melhor usar millis() em vez de delay(). Veja Como usar millis() em vez de delay()
- Você pode adicionar um buzzer piezo para emitir um bipe cada vez que uma tecla do teclado for pressionada.
- Nos códigos acima, a porta é trancada novamente após 20 segundos. Você pode substituir isso por um sensor de porta. A porta é trancada quando o sensor de porta detecta que a porta foi fechada pelo usuário.
※ Nota: