Neste artigo, faremos um tour pela tecnologia de circuitos RFID. Estaremos explorando como as etiquetas e leitores RFID funcionam, como fazer a interface do módulo RFID (RC522) com o Arduino e como extrair algumas informações úteis das etiquetas RFID.
Usando tags RFID
Tenho certeza de que cada um de vocês usou RFID para obter acesso de segurança pelo menos uma vez no escritório, escola, faculdade, biblioteca, etc.
A etiqueta / cartão que você carrega tem um chip eletrônico embutido, o chip armazena sua identidade eletronicamente. Ao contrário dos códigos de barras, onde o cartão deve estar na linha de visão do leitor, os RFIDs podem ser colocados perto do leitor para ler as informações.
A maioria dos nossos cartões inteligentes usa tecnologia RFID passiva, o que significa que nenhuma energia é necessária para ler as informações do cartão. O leitor aciona o chip RFID e extrai informações ao mesmo tempo.
Esses tipos de tags podem ler informações de milímetros a poucos metros, dependendo da tag e da aplicação.
As etiquetas RFID ativas são alimentadas externamente, esses tipos de etiquetas transmitem as informações a até 30 metros. O consumo de energia da bateria é otimizado para durar alguns anos.
Neste projeto, vamos examinar a tecnologia RFID passiva. Estamos usando o módulo leitor RC522 junto com o arduino para extrair e exibir informações. O módulo RC522 está comumente disponível em sites de comércio eletrônico e na loja de kits eletrônicos locais.
Ilustração do módulo leitor / gravador RC522:
Tags do tipo cartão e chaveiro:
Como podemos ver isso, uma parte da placa de circuito impresso é circundada por um caminho condutor em formato quadrado no leitor, isso vai gerar um campo eletromagnético para a etiqueta na frequência de 13,56 MHz.
O EMF gerado é selecionado pelo tag e se converte em voltagem suficiente para que o tag funcione, o tag enviará as informações necessárias em forma de pulso de volta ao leitor. O microcontrolador on-board decodifica as informações.
Como funciona
O esquema é muito fácil e autoexplicativo, bastando poucos fios de jumper para realizar este projeto. Vamos alimentar o arduino e o RFID via porta USB do computador. A tensão de operação do RC522 é de 3,3 V, não conecte a alimentação de 5 V ao módulo e danificará os componentes integrados.
Protótipo de circuito RFID Arduino:
Essas são todas as conexões de hardware, agora vamos pular para a codificação.
Antes de carregar o programa, baixe o arquivo de biblioteca do link a seguir e vá para a pasta de biblioteca do IDE do arduino.
github.com/miguelbalboa/rfid.git
Código do programa:
//-------------------------Program developed by R.Girish------------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID:')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//-------------------------Program developed by R.Girish------------------//
OK! O que o programa acima foi projetado para funcionar?
O programa acima exibirá o UID da tag no monitor serial do IDE, quando você fizer a varredura no leitor. UID é o número de identificação único da etiqueta, não pode ser alterado e é definido pelo fabricante.
RESULTADO:
O UID do seu cartão: FA: 4E: B2 // este é um exemplo.
Nota 1: Os dois valores são separados por dois pontos, o que é feito pelo programa. Os valores reais não podem ser separados por dois pontos, mas sim por um espaço.
Nota 2: Apenas as etiquetas RFID fabricadas pela NXP são legíveis / graváveis com a configuração proposta; elas são comumente usadas comercialmente.
O UID é usado para reconhecer a tag, a tag que vem junto com o kit pode armazenar até 1 KB de informações. Existem outros cartões que podem armazenar até 4 KB de informações ou até mais.
O processo de armazenamento e extração das informações da tag é assunto de outro artigo.
Se você tiver dúvidas sobre este projeto, sinta-se à vontade para perguntar na seção de comentários.
Anterior: Circuito do sensor de pressão barométrica - Detalhes de funcionamento e interface Próximo: Triac Phase Control usando PWM Time Proporcional