Arduino Nano - Fechadura de Porta RFID
Este tutorial ensina você a criar um sistema de fechadura de porta usando Arduino Nano, módulo RFID/NFC RC522, um relé, uma fechadura solenoide ou fechadura eletromagnética e, opcionalmente, um LCD. Para facilitar, o tutorial ensina a criar a fechadura de porta RFID dos passos simples aos mais complexos. Em detalhes, vamos fazer:
- Parte 1: Um sistema simples de fechadura de porta RFID com Arduino Nano, teclado, fechadura solenoide ou fechadura eletromagnética, com suporte a uma única chave RFID
- Parte 2: (Opcional) Adicionar suporte a várias chaves RFID
- Parte 3: (Opcional) Adicionar um display LCD à fechadura de porta RFID.
- Parte 4: (Opcional) Adicionar um sensor de porta à fechadura de porta RFID.
- Parte 5: (Opcional) Gerenciar e armazenar as chaves RFID válidas na EEPROM interna do Arduino Nano
- Parte 6: (Opcional) Armazenar o histórico de acessos em um Cartão SD
Se você quiser criar um sistema de fechadura de porta com senha, consulte Arduino Nano - Fechadura de Porta com Teclado
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo RFID/NFC RC522, a Fechadura Solenoide e a Fechadura Eletromagnética
Se você não conhece o Módulo RFID/NFC RC522, a fechadura solenoide e a fechadura eletromagnética (incluindo pinagem, como funcionam e como programar), os tutoriais a seguir podem trazer mais informações:
Componentes do Sistema de Fechadura de Porta
Um sistema simples de fechadura de porta é formado por dois componentes:
- Fechadura da Porta: um Arduino Nano, um leitor RFID/NFC, um relé e uma fechadura solenoide ou uma fechadura eletromagnética
- Chave da Porta: tags RFID/NFC

Como a Fechadura de Porta RFID/NFC Funciona
- O usuário aproxima uma tag RFID/NFC do leitor RFID/NFC, que lê o UID da tag.
- O Arduino Nano então obtém esse UID do leitor e o compara com os UIDs definidos no código do Arduino Nano.
- Esses UIDs funcionam como as chaves autorizadas.
- Se o UID corresponder a um dos UIDs predefinidos, o Arduino Nano desativará a fechadura solenoide para destravar a porta.
- O Arduino Nano trancará a porta após um tempo limite, ativando o relé.
Diagrama de Ligação
- Fechadura de Porta RFID RC522 com Fechadura Solenoide

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

This image is created using Fritzing. Click to enlarge image
Para simplificar a ligação, os pinos do módulo RC522 são conectados diretamente aos pinos do Arduino. No entanto, isso pode fazer o Arduino funcionar mal em alguns casos, pois os pinos de saída do Arduino produzem 5V, enquanto os pinos do módulo RC522 operam em 3,3V. Por isso, recomenda-se regular a tensão entre os pinos do Arduino e do módulo RC522. O diagrama abaixo mostra como resistores podem ser usados para reduzir 5V para 3,3V.

This image is created using Fritzing. Click to enlarge image
※ Nota:
Os fabricantes podem organizar a ordem dos pinos de maneira diferente, por isso é importante seguir os rótulos impressos no módulo. O diagrama de pinagem mostrado acima exibe a disposição dos pinos dos módulos produzidos pelo fabricante DIYables.
Código Arduino Nano - Chave Única
Passos Rápidos
Para descobrir o UID de uma tag RFID/NFC:
- Faça o upload do código acima para o Arduino Nano usando o Arduino IDE
- Abra o Serial Monitor e aproxime a tag do módulo RFID-RC522. O UID será exibido no Serial Monitor.
Quando você tiver o UID:
- Altere a linha 18 do código para refletir o UID, por exemplo, troque byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; por byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Faça o upload do código revisado para o Arduino Nano
- Coloque uma tag RFID/NFC no módulo RFID-RC522
- Verifique a saída no Serial Monitor
- Verifique se a fechadura solenoide não está desativada.
- Aproxime uma tag RFID/NFC diferente do módulo RFID-RC522.
- Confira a saída no Serial Monitor.
※ Nota:
- Para facilitar os testes, o tempo de destravamento foi definido como 2 segundos; porém, ele deve ser aumentado para uso prático/demonstração.
- É necessário instalar a biblioteca MFRC522. Para mais informações, consulte o Tutorial Arduino Nano - RFID/NFC RC522.
Código Arduino Nano - Várias Chaves
Vamos imaginar uma sala em que somente o gerente e a secretária podem abrir a porta.
Nesse caso, são necessárias duas tags RFID/NFC: uma para o gerente e outra para a secretária. Os UIDs das duas tags devem ser especificados no código.
Repita os mesmos passos de antes e depois aproxime cada tag, uma por vez, do módulo RFID-RC522. A saída no Serial Monitor deve ficar assim:
Você pode expandir o código acima para incluir três, quatro ou mais tags.
Adicionando um Display LCD à Fechadura de Porta RFID
Opcionalmente, podemos adicionar um display LCD para mostrar aos usuários o status do acesso (por exemplo, GRANTED/DENIED). Você pode saber mais sobre o LCD no Tutorial Arduino Nano - LCD
Diagrama de ligação - Sistema de fechadura de porta usando RFID, fechadura solenoide ou fechadura eletromagnética e display LCD

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Observe que, no diagrama de ligação acima, foi adicionada uma alimentação de 5V porque o pino 5V do Arduino não consegue fornecer energia suficiente para o relé e o LCD ao mesmo tempo.
Código Arduino Nano - Sistema de fechadura de porta com senha usando módulo RFID RC522, fechadura solenoide ou fechadura eletromagnética e display LCD
※ Nota:
O endereço do LCD pode variar de acordo com o fabricante. Usamos 0x27 em nosso código, conforme especificado pela DIYables.
Adicionando um sensor de porta à fechadura de porta RFID
No código anterior, a porta era trancada após um certo tempo desde que foi destravada pelo Arduino Nano. No entanto, em situações reais, um sensor de porta costuma ser integrado ao sistema. Se a porta estiver fechada, o Arduino Nano trancaria a porta imediatamente, sem esperar o fim do tempo limite.
Para não sobrecarregar você, não adicionamos o sensor de porta ao diagrama de ligação e ao código. Deixamos essa parte para a sua criatividade. Você pode consultar os tutoriais Arduino Nano - Sensor de Porta e Arduino Nano - Sensor de Porta controla Relé.
Gerenciando e armazenando as chaves RFID válidas na EEPROM
No exemplo anterior, as chaves RFID válidas (UID) estavam fixas no código do Arduino Nano. Isso significa que, para adicionar ou excluir chaves RFID, você precisaria modificar o código e fazer o upload dele para o Arduino Nano novamente, o que pode ser inconveniente.
Para tornar as coisas mais práticas, precisamos de uma forma de gerenciar as chaves RFID sem ter que modificar e fazer o upload do código para o Arduino Nano toda vez. Uma solução é armazenar as chaves RFID na EEPROM em vez de deixá-las fixas no código. Consequentemente, precisamos de um método que permita adicionar ou excluir chaves RFID da EEPROM sem precisar alterar o código.
Existem dois métodos para gerenciar chaves RFID na EEPROM:
- Chaves RFID como chaves mestras
- Use uma chave RFID como chave mestra ADD para adicionar uma nova chave. Depois que o Arduino detecta a chave mestra ADD, ele alterna entre o modo ADD e o modo OPERATION.
- No modo ADD, se o Arduino detectar uma nova chave, ele a adiciona à EEPROM
- Da mesma forma para a chave mestra DELETE e o modo DELETE.
- Escrever comandos ADD/DELETE via Serial/Bluetooth/IR
- Os comandos são enviados via Serial/Bluetooth/IR usando o Serial Monitor, um app Bluetooth, um controle IR...
- Comandos incluídos: diretiva (ADD/DELETE) e UID da chave RFID.
- Para aumentar a segurança, o comando também deve incluir uma senha. O Arduino verifica a senha para determinar se o comando é válido ou não.
Os dois métodos exigem adicionar muito código Arduino. Isso não é uma tarefa fácil para iniciantes. Portanto, este tutorial fornece apenas o conhecimento para ajudar os iniciantes a conhecer melhor o sistema de fechadura de porta, sem sobrecarregá-los com código complicado. Se você quiser implementar isso para uso prático, entre em contato conosco através do nosso serviço de programação pago
Armazenando o histórico de acessos em um Cartão SD
Você pode querer armazenar o histórico de acessos com as seguintes informações: UID da chave RFID, status do acesso (GRANTED/DENIED) e data e hora. Você pode usar um cartão SD para guardar o histórico, porque a EEPROM não é grande o suficiente para armazená-lo. Você pode consultar este tutorial Arduino Nano - Registrar Dados com Data e Hora em um Cartão SD.