O módulo RFID RC522 é um dos dispositivos mais versáteis e populares para projetos eletrônicos e sistemas de controle de acesso. Juntamente com uma placa Arduino, permite ler e escrever informações em cartões RFID e porta-chaves através de comunicação sem fio. Este tipo de tecnologia é muito útil em projetos de automação, segurança e monitoramento, como abertura automática de portas ou utilização de sistemas de identificação personalizados.
Neste artigo exploraremos detalhadamente o funcionamento do módulo RC522, como conectá-lo a um microcontrolador como o Arduino e alguns exemplos práticos que permitirão aproveitá-lo ao máximo. Se você está começando com projetos RFID, este artigo será de grande ajuda para entender os princípios e como realizar uma implementação simples e eficaz.
O que é RFID?
RFID (Identificação por Radiofrequência) é uma tecnologia que permite a lendo rótulos ou tags sem fio, sem necessidade de contato físico. Essas etiquetas estão disponíveis em vários formatos, como cartões, chaveiros e até adesivos. Dependendo do tipo de RFID, eles são usados em uma ampla variedade de aplicações: desde controle de acesso a edifícios até gerenciamento de estoque.
O leitor RFID funciona como um remetente-destinatário de sinais de radiofrequência. Quando uma etiqueta RFID está próxima do leitor, ela responde enviando as informações armazenadas em sua memória. Ao trabalhar com um módulo como o RC522, você pode utilizar essas informações para realizar diversas ações em seu projeto, como habilitar o acesso a uma porta ou registrar a entrada de pessoas.
O Módulo RC522
Módulo RC522 É um dos leitores RFID mais populares devido à sua simplicidade e versatilidade. Funciona no Frequência de 13.56 MHz e permite ler e escrever informações em tags compatíveis com este padrão.
O RC522 se comunica com o microcontrolador através do protocolo SPI, o que significa que é compatível não só com Arduino, mas também com outros sistemas como PIC e Raspberry Pi. Além disso, possui um faixa de leitura cerca de 5 a 7 cm, o que é mais que suficiente para a maioria dos projetos de controle de acesso.
Conectando o Módulo RFID RC522 com Arduino
Uma das grandes vantagens do RC522 é a facilidade de conectá-lo a um Arduino. A primeira coisa que precisamos fazer é garantir que todos os pinos do módulo estejam corretamente conectados aos pinos correspondentes do Arduino. Aqui está uma tabela com as conexões:
Módulo RC522 | Arduino Uno/Irmão mais velho | Arduino Mega |
---|---|---|
SDA (SS) | 10 | 53 |
SCK | 13 | 52 |
MOSI | 11 | 51 |
MISO | 12 | 50 |
IRQ | Não conectado | Não conectado |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
Lembre-se que o módulo RC522 funciona com tensão de 3.3V, por isso recomendamos o uso de um conversor de nível de tensão se você planeja fazer uso prolongado do sistema, embora em testes rápidos ele possa funcionar corretamente conectado diretamente ao Arduino.
Programando o RC522 com Arduino
Para que o RC522 funcione corretamente com o Arduino, precisamos baixar e instalar o correspondente Livraria RFID. Um dos mais utilizados é o desenvolvido por Miguel Balboa, que você encontra no gerenciador da biblioteca Arduino IDE.
Depois que a biblioteca estiver instalada, aqui está um exemplo de código simples para ler o UID (Identificador Único) de um cartão RFID:
#incluir #incluir #define RST_PIN 522 #define SS_PIN 9 MFRC10 mfrc522(SS_PIN, RST_PIN); void configuração() {Serial.begin(522); SPI.begin(); mfrc9600.PCD_Init(); Serial.println("Ler UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("UID do cartão:"); for (byte i = 522; i <mfrc0.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 522x0 ? " 10" : " "); Serial.print(mfrc0.uid.uidByte[i], HEX); }Serial.println(); mfrc522.PICC_HaltA(); }} }
Este código lê o UID de qualquer cartão que você leva ao leitor e o imprime no monitor serial.
Usando o RC522 em um sistema de controle de acesso
Uma das aplicações mais úteis do módulo RFID RC522 está em controle de acesso. Você pode usar cartões RFID ou porta-chaves para conceder permissão de entrada a uma pessoa ou para ativar/desativar sistemas como alarmes ou fechaduras elétricas.
Abaixo mostramos um exemplo de código modificando o programa anterior para permitir acesso apenas a cartões pré-autorizados:
byte Usuário1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; byte Usuário2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, User1, 4) || compareArray(mfrc522.uid.uidByte, User2, 4)) { Serial.println("Acesso permitido"); } else { Serial.println("Acesso negado"); } mfrc522.PICC_HaltA(); }}
Neste código, caso seja detectado um cartão com um UID correspondente a um dos armazenados, o acesso é autorizado através da impressão de uma mensagem. Caso contrário, o acesso será negado. Você pode substituir essas mensagens imprimindo um código que aciona uma saída digital para abertura de porta, entre outras funcionalidades.