Arduino - Sistema de Fechadura de Porta com RFID/NFC
Neste tutorial, vamos aprender a fazer um Sistema de Fechadura de Porta com RFID/NFC usando Arduino, Kit RFID/NFC RC522 e fechadura eletromagnética ou fechadura solenoide.
※ Nota:
Também temos outros tutoriais de Arduino - Sistema de fechadura de porta usando teclado.
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) |
Sobre o Módulo RFID/NFC RC522 e a Fechadura Eletromagnética
Se você ainda não conhece o Módulo RFID/NFC RC522, a Fechadura Eletromagnética e a Fechadura Solenoide (pinagem, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:
Componentes do Sistema
O sistema de fechadura de porta tem duas partes principais:
- Fechadura da Porta: Arduino + leitor RFID/NFC + fechadura eletromagnética
- Chave da Porta: tags RFID/NFC

Existem alguns tipos de leitores RFID/NFC que funcionam com o Arduino. Este tutorial usa o RFID-RC522 como leitor RFID/NFC porque ele é barato.
Como a Fechadura de Porta RFID/NFC Funciona
- Algumas tags, cujos UIDs são definidos no código Arduino, funcionam como chaves autorizadas
- O usuário aproxima uma tag RFID/NFC do leitor RFID/NFC
- O leitor lê o UID da tag.
- O Arduino obtém o UID do leitor
- O Arduino compara o UID lido com os UIDs predefinidos
- Se o UID corresponder a um dos UIDs predefinidos, o Arduino desativa a fechadura eletromagnética para destravar a porta.
Diagrama de Ligação
- Fechadura de Porta com RFID RC522 e Fechadura Solenoide

This image is created using Fritzing. Click to enlarge image
- Fechadura de Porta com RFID RC522 e Fechadura Eletromagnética

This image is created using Fritzing. Click to enlarge image
Para simplificar, os pinos do módulo RC522 são conectados diretamente aos pinos do Arduino. No entanto, isso pode fazer o Arduino parar de funcionar corretamente em certos casos, pois os pinos de saída do Arduino produzem 5V, enquanto os pinos do módulo RC522 funcionam normalmente em 3.3V. Por isso, é recomendável regular a tensão entre os pinos do Arduino e os pinos do módulo RC522. Para instruções mais detalhadas, consulte o tutorial Arduino - RFID RC522. O diagrama abaixo mostra como regular 5V para 3.3V usando resistores:

This image is created using Fritzing. Click to enlarge image
※ Nota:
A ordem dos pinos pode variar de acordo com o fabricante. SEMPRE use as etiquetas impressas no módulo. A imagem acima mostra a pinagem dos módulos do fabricante DIYables.
Código Arduino - Uma Única Chave
Passos Rápidos
Como o UID normalmente não vem impresso na tag RFID/NFC, o primeiro passo é descobrir o UID da tag. Isso pode ser feito assim:
- 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
- Abra o Serial Monitor
- Aproxime uma tag RFID/NFC do módulo RFID-RC522
- Obtenha o UID no Serial Monitor
Depois de obter o UID:
- Atualize o UID na linha 18 do código acima. Por exemplo, altere byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; PARA byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Carregue o código no Arduino novamente
- Aproxime uma tag RFID/NFC do módulo RFID-RC522
- Veja a saída no Serial Monitor
- Verifique a fechadura eletromagnética; ela deve estar destravada
- Aproxime outra tag RFID/NFC do módulo RFID-RC522
- Veja a saída no Serial Monitor
※ Nota:
- Para facilitar o teste, o tempo de destravamento é de 2 segundos; ele deve ser aumentado no uso prático/demonstração
- É necessário instalar a biblioteca MFRC522. Veja o tutorial Arduino - RFID/NFC RC522
Código Arduino - Várias Chaves
Vamos imaginar que uma sala permite que apenas o gerente e a secretária destravem a porta.
Nesse caso, precisamos usar duas tags RFID/NFC: uma para o gerente e outra para a secretária. Temos que especificar os UIDs das duas tags no código
Siga passos semelhantes aos de cima e depois aproxime as tags, uma por uma, do módulo RFID-RC522. O resultado no Serial Monitor fica assim:
Você pode expandir o código acima para três, quatro ou mais tags.
※ Nota:
No código acima, as chaves estão fixas no código. Na prática, deveria ser possível adicionar/excluir chaves dinamicamente por meio de um modo especial. Nesse caso, as chaves devem ser salvas na memória EEPROM. A quantidade de chaves 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.