Arduino - Sistema de Fechadura de Porta com Senha
Neste tutorial, vamos aprender a fazer um sistema de fechadura de porta com senha. O tutorial tem duas partes principais:
- Arduino - Sistema de fechadura de porta com senha usando teclado e fechadura eletromagnética.
- Arduino - Sistema de fechadura de porta com senha usando teclado, fechadura eletromagnética e LCD.
O LCD é opcional. Ele apenas deixa o sistema um pouco mais prático.
Quando a porta é destravada com a senha correta, ela permanece destravada por 20 segundos e depois é travada novamente de forma automática. O código Arduino suporta várias senhas.
※ Nota:
Também temos outros tutoriais de sistema de fechadura de porta:
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Alternatively, you can assemble the LCD I2C display using LCD 1602 Display and PCF8574 I2C Adapter Module.
Sobre o Teclado, a Fechadura Eletromagnética e o LCD
Se você ainda não conhece a fechadura eletromagnética, o teclado e o LCD (pinagem, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:
Como o sistema de fechadura de porta funciona
As senhas válidas são predefinidas no código Arduino.
Uma string, chamada de string de entrada, é usada para armazenar a senha digitada pelos usuários. No teclado, duas teclas (* e #) são usadas para funções especiais: limpar a senha e finalizar a senha. O sistema funciona da seguinte forma:
- Com exceção das duas teclas especiais, se outra tecla for pressionada, ela é adicionada à string de entrada
- Se * for pressionada, a string de entrada é limpa. Você pode usá-la para começar ou recomeçar a digitar a senha
- Se # for pressionada:
- A string de entrada é comparada com as senhas predefinidas. Se ela corresponder a uma das senhas predefinidas, a porta é destravada.
- Independentemente de a senha estar correta ou não, a string de entrada é limpa para a próxima digitação
Diagrama de Ligação
- Arduino - Sistema de fechadura de porta com senha usando teclado e fechadura eletromagnética

This image is created using Fritzing. Click to enlarge image
- Arduino - Sistema de fechadura de porta com senha usando teclado, fechadura eletromagnética e LCD

This image is created using Fritzing. Click to enlarge image
Código Arduino - Sistema de fechadura de porta com senha usando teclado e fechadura eletromagnética
Passos Rápidos
- Conecte o Arduino ao PC via cabo USB
- Abra a Arduino IDE, selecione a placa e a porta corretas
- Vá até o ícone Libraries na barra esquerda da Arduino IDE.
- Pesquise “keypad” e encontre a biblioteca keypad de Mark Stanley, Alexander Brevig
- Clique no botão Install para instalar a biblioteca keypad.

- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Coloque a placa de armadura perto do eletroímã.
- Abra o Serial Monitor
- Pressione as teclas 123456 e pressione #
- Pressione as teclas 1234ABC e pressione #
- Observe a atração entre a placa de armadura e o eletroímã durante 20 segundos.
- Veja o resultado no Serial Monitor
Código Arduino - Sistema de fechadura de porta com senha usando teclado, fechadura eletromagnética e LCD
※ Nota:
O endereço I2C do LCD pode variar de acordo com o fabricante. No código, usamos 0x27, que é o endereço especificado pelo fabricante DIYables
Passos Rápidos
- Vá até o ícone Libraries na barra esquerda da Arduino IDE.
- Pesquise “DIYables LCD I2C” e encontre a biblioteca DIYables_LCD_I2C da DIYables
- Clique no botão Install para instalar a biblioteca DIYables_LCD_I2C.

- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Coloque a placa de armadura perto do eletroímã.
- Digite uma senha errada e depois digite uma senha correta
- Observe a atração entre a placa de armadura e o eletroímã durante 20 segundos.
- Veja o texto no LCD
※ Nota:
- Nos códigos 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 sempre que uma tecla do teclado for pressionada.
- Nos códigos acima, a porta é travada novamente após 20 segundos. Você pode substituir isso por um sensor de porta. A porta é travada quando o sensor de porta detecta que ela foi fechada pelo usuário.
- No código acima, as senhas estão fixas no código. Na prática, deveria ser possível adicionar/excluir/alterar senhas dinamicamente por meio de um modo especial. Nesse caso, as senhas devem ser salvas na memória EEPROM. A quantidade de senhas que pode ser salva depende do tamanho da EEPROM. O código ficará complicado. Se você quiser construir um sistema assim, oferecemos um serviço de programação. Fique à vontade para entrar em contato conosco.