Conteúdo abordado neste artigo:
1: Introdução ao sensor RC522
O MFRC522 é um IC sem contato baseado em RFID que pode ler e escrever dados em uma frequência de 13.56 MHz. Ele foi projetado para facilitar a integração em uma ampla gama de aplicações, incluindo sistemas de controle de acesso, terminais de pagamento e outros sistemas que requerem comunicação sem fio segura.
O sensor apresenta um design de baixo consumo de energia e é compatível com o padrão ISO/IEC 14443 A/Mifare, o que permite se comunicar com uma ampla gama de cartões e tags sem contato.
Além disso, o MFRC522 possui uma antena embutida, tornando-a uma solução conveniente e compacta para adicionar recursos de comunicação sem contato a um projeto.
2: pinagem do sensor RC522
O sensor tem um total de 8 pinos que o interfaceão com um microcontrolador ou outro dispositivo de controle. A pinagem do sensor MFRC522 é a seguinte:
O SDA, SCK, Mosi, e MISSÔ Os pinos são usados para interface o sensor MFRC522 com um microcontrolador por meio de um protocolo de comunicação de interface periférica em série de 4 fios (SPI).
O IRQ O PIN pode ser usado para gerar uma interrupção quando determinados eventos ocorrem, como um cartão ou tag bem -sucedido, no entanto, ele não é comumente usado em muitos projetos.
O Gnd O pino se conecta ao solo do circuito, e o primeiro pino é usado para redefinir o sensor.
finalmente, o 3.3V O pino é usado para fornecer energia ao sensor.
É importante observar que esses nomes de pinos podem variar um pouco, dependendo do módulo específico, por isso é sempre melhor consultar a folha de dados do fabricante para obter as informações corretas.
3: Interface RC522 RFID Sensor com Arduino Nano
Interface o sensor MFRC522 com um microcontrolador Arduino é um processo simples que pode ser realizado usando a biblioteca MFRC522, que está disponível gratuitamente para download. Esta biblioteca fornece um conjunto de funções fácil de usar para acessar a funcionalidade do sensor, incluindo funções para ler e escrever dados para cartões e tags sem contato.
Depois que a biblioteca é instalada, um exemplo de esboço pode ser encontrado no menu Exemplos, que demonstra como inicializar o sensor e se comunicar com um cartão ou tag. No esboço, é importante definir as conexões corretas de pinos entre o sensor Arduino e o MFRC522, como os pinos SPI, o pino de redefinição e outros, de acordo com o modelo da placa Arduino sendo usada.
Com a fiação correta e a biblioteca instalada corretamente, o Arduino poderá se comunicar com o sensor MFRC522 e executar as ações desejadas, como ler e escrever para cartões e tags.
1: esquemático
A imagem esquemática RC522 com Arduino Nano é mostrada abaixo:
2: Instalando as bibliotecas necessárias
A biblioteca MFRC522 é necessária para ler o cartão RFID e as tags Uid. Abra o IDE, vá para o gerente da biblioteca e pesquise a biblioteca MFRC522. Instale a biblioteca no Arduino IDE:
Depois de instalar a biblioteca MFRC522, leremos o UID para tags e cartões RFID.
3: Obtendo o UID para cartão/tag RFID
Abra o Dumpinfo Exemplo para o sensor MFRC522. Vá para: Arquivo> Exemplos> MFRC522> Dumpinfo
O código a seguir será aberto em uma nova janela IDE. Carregue o código para Arduino Nano. Lembre -se de definir o pino de redefinição e escravo de acordo com o seu conselho Arduino. Qualquer um dos pinos digitais do Arduino pode ser definido como RST e Ss.
Depois de fazer upload de código para Arduino Nano. Toque e segure o cartão/tag RFID com sensor MFRC522.
O sensor lerá os dados salvos dentro da tag RFID e os exibirá no monitor serial. Aqui podemos ver o Uid para tag RFID informando 02 DC B4 C3.
Total de 16 (0-15) setores nos quais RFID Cartão/tag 1k A memória está organizada. Quatro (0-3) blocos estão incluídos em cada um desses 16 setores. Cada bloco tem capacidade para armazenar 16 (0-15) bytes de dados.
Esses dados representam isso:
16 setores x 4 blocos x 16 bytes de dados = 1024 bytes = 1k memória
O monitor serial do Arduino IDE mostra a distribuição dos EUA de memória 1K da tag RFID. Essa distribuição também contém os setores, blocos e informações de dados em linhas e colunas dos dados de saída:
Você também pode ler o ID exclusivo (Uid) para o cartão no final da saída:
4: Lendo uma tag RFID usando Arduino Nano
Agora lemos o ID exclusivo (UID) para tag RFID. Escreveremos um código Arduino que salva as informações deste cartão e conceda acesso ao usuário se a tag RFID com o mesmo UID for tocada com o sensor MFRC522.
1: código
Abra o IDE, selecione Nano Board e envie o código fornecido:
/*
******************
Linuxhint.com
******************
Linuxhint.com
******************
*/
#incluir
#incluir
#Define SS_PIN 10 /*SLAVO SELECT PIN* /
#define rst_pin 9 /*Redefinir pino para rc522* /
#Define led_g 8 /*pino 8 para LED* /
Mfrc522 mfrc522 (ss_pin, rst_pin); /*Crie MFRC522 Inicializado*/
configuração void ()
Serial.começar (9600); /*Comunicação serial começa*/
Spi.começar(); /*Comunicação SPI inicializada*/
MFRC522.Pcd_init (); /*Sensor RFID inicializado*/
pinmode (led_g, saída); /*PIN LED SET como saída*/
Serial.println ("Coloque seu cartão no leitor ...");
Serial.println ();
Void Loop ()
/*Procure o cartão RFID*/
se ( ! MFRC522.Picc_isnewcardPresent ())
retornar;
/*Selecione cartão*/
se ( ! MFRC522.Picc_readCardSserial ())
retornar;
/*Mostre UID para cartão/tag no monitor serial*/
Serial.print ("tag uid:");
String Content = "";
carta de byte;
para (byte i = 0; i < mfrc522.uid.size; i++)
Serial.Imprimir (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " ");
Serial.Imprimir (MFRC522.uid.uidbyte [i], hexadecimal);
contente.Concat (String (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " "));
contente.Concat (String (MFRC522.uid.uidbyte [i], hex));
Serial.println ();
Serial.print ("mensagem:");
contente.toupppercase ();
if (conteúdo.substring (1) == "02 dc b4 c3")/*uid para o cartão/tag que queremos dar acesso a substituir pelo seu cartão uid*/
Serial.println ("Acesso autorizado"); /*Mensagem de imprimir se o UID corresponde ao banco de dados*/
Serial.println ();
atraso (500);
DigitalWrite (LED_G, alto); /*LED LIGADO*/
atraso (2500);
DigitalWrite (LED_G, baixo);
outro
Serial.println ("Acesso negado"); /*Se uid não corresponde à mensagem de impressão*/
O código começou incluindo a biblioteca SPI e MFRC522. Em seguida, definimos o pino de reinicialização e escravo para o sensor. Um LED no pino D8 é inicializado como saída.
O cartão RFID que queremos ler é inicializado definindo o UID. Este é o mesmo UID que temos usando o Dumpinfo Exemplo Código:
Um SE a condição verificará o UID quanto ao cartão que é tocado com o sensor. Se o UID corresponder ao que dentro do código LED ligará e a mensagem de acesso autorizada será impressa, caso contrário, o LED permanecerá desligado e o acesso negado a mensagem aparecerá se qualquer outro cartão for tocado.
2: saída
Na saída, podemos ver que a etiqueta RFID não é tocada com o sensor MFRC522, para que nenhum LED esteja ligado:
Toque ou traga o cartão/tag RFID próximo ao sensor a seguir, aparecerá no monitor serial exibindo o cartão UID:
O LED está ligado se o acesso for concedido e o UID corresponde ao que definimos dentro do código:
Concluímos a interface da tag RFID com o sensor RC522 usando o Arduino Nano Board e IDE.
Conclusão
Arduino Nano é uma placa de conservação de energia que tem vários pinos de GPIO para obter informações de diferentes sensores. Arduino Nano vem com suporte interno para o protocolo UART, SPI e I2C, que permite o uso de sensores usando esses protocolos de comunicação Arduino. Este artigo abrange a interface do Arduino Nano com o sensor RC522 e o código necessário para ler qualquer cartão/tag RFID.