ESP8266 - Fechadura de Porta RFID
Este tutorial ensina como construir um sistema de fechadura de porta usando ESP8266, módulo RFID/NFC RC522, um relé, trava solenoide ou trava eletromagnética e, opcionalmente, LCD. Para facilitar, o tutorial ensina a construir a fechadura de porta RFID em etapas, das mais simples às mais complexas. Em detalhe, faremos:
- Parte 1: Um sistema simples de fechadura de porta RFID com ESP8266, teclado, trava solenoide ou trava 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 ESP8266
- Parte 6: (Opcional) Armazenar o histórico de acessos em um Cartão SD

Se você quiser construir um sistema de fechadura de porta com senha, consulte ESP8266 - 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 e a Trava Eletromagnética
Se você não está familiarizado com o Módulo RFID/NFC RC522, a trava eletromagnética e a trava solenoide (incluindo pinagem, como funciona e como programar), você pode saber mais seguindo estes tutoriais:
Componentes do Sistema de Fechadura de Porta
O sistema de fechadura de porta é composto por dois componentes principais:
- Fechadura: um ESP8266, um relé, um leitor RFID/NFC, uma trava solenoide ou uma trava 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 ESP8266 então obtém o UID do leitor e o compara com os UIDs que foram definidos no código.
- Se o UID corresponder a um dos UIDs predefinidos, o ESP8266 desativará a trava solenoide, destravando assim a porta.
- Essas tags funcionam como as chaves autorizadas.
- O relé será ativado pelo ESP8266 para travar a porta após um período de tempo específico.
Diagrama de Ligação
- Fechadura de Porta RFID RC522 com Trava Solenoide

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
- Fechadura de Porta RFID RC522 com Trava Eletromagnética

This image is created using Fritzing. Click to enlarge image
※ Nota:
Os fabricantes podem organizar a ordem dos pinos de forma diferente, por isso é importante confiar nos rótulos impressos no módulo. O diagrama de pinagem mostrado acima exibe a disposição dos pinos para módulos produzidos pelo fabricante DIYables.
Código ESP8266 - Chave Única
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
Para determinar o UID de uma tag RFID/NFC:
- Faça upload do código para o ESP8266 e abra o Serial Monitor.
- Aproxime a tag do módulo RFID-RC522 e o UID será exibido no Serial Monitor.
Depois de obter o UID:
- Altere a linha 18 do código acima para refletir o UID. Por exemplo, substitua byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; por byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Faça upload do código modificado para o ESP8266
- Coloque uma tag RFID/NFC no módulo RFID-RC522
- Verifique a saída no Serial Monitor
- Verifique se a trava eletromagnética não está travada.
- Aproxime uma tag RFID/NFC diferente do módulo RFID-RC522.
- Confira a saída no Serial Monitor.
※ Nota:
- Para facilitar o teste, o tempo de destravamento foi definido como 2 segundos; no entanto, ele deve ser aumentado para uso prático/demonstração.
- É necessário instalar a biblioteca MFRC522. Para mais informações, consulte o tutorial ESP8266 - RFID/NFC RC522.
Código ESP8266 - Várias Chaves
Vamos imaginar uma sala na qual somente o gerente e a secretária podem entrar.
Neste caso, são necessárias duas tags RFID/NFC: uma para o gerente e a 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 do módulo RFID-RC522. A saída no Serial Monitor deve aparecer da seguinte forma:
Você pode expandir o código escrito acima para incluir três, quatro ou mais tags.
Adicionando o 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 LCD no tutorial ESP8266 - LCD
Diagrama de ligação - Sistema de fechadura de porta usando RFID, trava solenoide ou trava eletromagnética e display LCD

This image is created using Fritzing. Click to enlarge image
Observe que, no diagrama de ligação acima, uma alimentação de 5V é adicionada porque o pino 5V do ESP8266 não consegue fornecer energia suficiente para o relé e o LCD ao mesmo tempo.
Código ESP8266 - Sistema de fechadura de porta com senha usando módulo RFID RC522, trava solenoide ou trava eletromagnética e display LCD
※ Nota:
O endereço do LCD pode variar dependendo do fabricante. Usamos 0x27 no nosso código, conforme especificado pela DIYables.
Adicionando um sensor de porta à fechadura de porta RFID
No código mencionado anteriormente, o ESP8266 trava a porta após um tempo limite desde o destravamento. No entanto, em aplicações práticas, normalmente um sensor de porta é adicionado ao sistema. Se o ESP8266 detectar que a porta está fechada, ele trava a porta imediatamente em vez de esperar o tempo limite.
Para não sobrecarregar você, não incluímos o sensor de porta no diagrama de ligação e no código. Em vez disso, deixamos esta parte para a sua criatividade. Você pode conferir os tutoriais ESP8266 - Sensor de Porta e ESP8266 - Sensor de Porta controla Relé para mais orientações.
Gerenciando e armazenando as chaves RFID válidas na EEPROM
O código acima tem chaves RFID válidas (UID) fixadas no código do ESP8266. Isso significa que, se você quiser adicionar ou remover chaves, precisa alterar o código e fazer upload dele para o ESP8266 de novo, o que é inconveniente.
Em aplicações reais, é necessário gerenciar as chaves RFID sem ter que modificar e fazer upload do código toda vez. Para isso, as chaves RFID podem ser armazenadas na EEPROM em vez de fixadas no código. Consequentemente, é necessário um método para gerenciar facilmente as chaves RFID na EEPROM.
Há dois métodos disponíveis para gerenciar chaves RFID na EEPROM:
- Chaves RFID como chaves mestras
- Ao utilizar uma chave RFID como chave mestra ADD, novas chaves podem ser adicionadas ao sistema. Quando o ESP8266 detecta a chave mestra ADD, ele alterna entre o modo ADD e o modo OPERATION.
- Durante o modo ADD, o ESP8266 adiciona à EEPROM qualquer nova chave que detectar.
- Uma abordagem semelhante é usada para a chave mestra DELETE e o modo DELETE.
- Usar comandos ADD/DELETE via Serial/Bluetooth/IR
- Os comandos são transmitidos via Serial/Bluetooth/IR, utilizando ferramentas como o Serial Monitor, um aplicativo Bluetooth ou um controle IR.
- Os comandos consistem em uma diretiva (ADD/DELETE) e no UID da chave RFID.
- Para melhorar a segurança, uma senha também deve ser incluída no comando. O ESP8266 verifica a senha para determinar se o comando é válido ou não.
Para utilizar qualquer um dos dois métodos acima, uma quantidade considerável de código do ESP8266 precisa ser adicionada. Para quem é novo em programação, isso pode ser uma tarefa desafiadora. Por isso, este tutorial tem como objetivo oferecer uma compreensão básica do sistema de fechadura de porta sem sobrecarregar os iniciantes com código complexo. Se você quiser implementar este sistema para fins práticos, entre em contato conosco por meio do nosso serviço de programação pago
Armazenando o histórico de acessos em um Cartão SD
Para acompanhar o histórico de acessos, pode ser necessário salvar o UID da chave RFID, o status do acesso (GRANTED/DENIED), além de data e hora. Como a EEPROM não tem capacidade suficiente para armazenar o histórico inteiro, um cartão SD pode ser usado no lugar. Você pode encontrar orientações no tutorial ESP8266 - Registrar Dados com Carimbo de Data e Hora no Cartão SD.