Interface RCTOP 102 Sensor RFID com ESPPOP 10 usando Arduino IDE

Interface RCTOP 102 Sensor RFID com ESPPOP 10 usando Arduino IDE
Esp32 é uma placa baseada em microcontrolador compacta que conservador de energia que contém vários pinos GPIO para sensores de interface. Neste tutorial, o ESP32 será interfocado com um sensor RFID usando o código Arduino. RC522 é um sensor inteligente baseado em SPI que pode ler cartões RFID, tags e bandas inteligentes.

Conteúdo abordado neste artigo:

  • 1: Introdução ao sensor RC522
  • 2: pinagem do sensor RC522
  • 3: Interface RC522 RFID Sensor com ESP32
  • 3.1: esquemático
  • 3.2: Instalando as bibliotecas necessárias
  • 3.3: Obtendo o UID para cartão/tag RFID
  • 4: Lendo uma tag RFID usando ESP32
  • 4.1: código
  • 4.2: saída
  • Conclusão

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 RST O 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 ESP32

Interface o sensor MFRC522 com o microcontrolador ESP32 é 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 do pino entre o sensor ESP32 e MFRC522, como os pinos SPI, o pino de redefinição e outros, de acordo com o modelo da placa esp32 sendo usada.

Com a fiação correta e a biblioteca instalada corretamente, o ESP32 poderá se comunicar com o sensor MFRC522 e executar as ações desejadas, como ler e escrever para cartões e tags.

Para mais detalhes sobre Protocolo SPI ESP32 e trabalhando leia o artigo esp32 pinos SPI.

3.1: esquemático

A imagem esquemática rc522 com ESP32 é mostrada abaixo:

3.2: Instalando as bibliotecas necessárias

MFRC522 É necessária a biblioteca 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 em Arduino IDE.

Depois de instalar a biblioteca MFRC522, leremos o UID para tags e cartões RFID.

3.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 ESP32. Lembre -se de definir o pino de redefinição e escravo de acordo com a sua placa. Qualquer um dos pinos digitais do ESP32 pode ser definido como RST e Ss:

Depois de fazer upload de código para ESP32. Toque e segure o cartão/tag RFID com o 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 ESP32

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.

4.1: código

Open IDE Selecione a placa ESP32 e o upload de código dado.

/*
******************
Linuxhint.com
******************
Linuxhint.com
******************
*/
#incluir
#incluir
#Define SS_PIN 21 /*SLAVO SELECT PIN* /
#define rst_pin 22 /*Redefinir pino para rc522* /
#Define led_g 12 /*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 D12 é 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.

4.2: saída

Na saída, podemos ver a tag RFID não é tocada com o sensor MFRC522, então o LED está desligado.:

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 a placa ESP32 e o IDE.

Conclusão

O ESP32 é uma placa de IoT que apresenta todas as interfaces de comunicação necessárias para a troca de dados entre diferentes dispositivos. O ESP32 tem vários pinos de GPIO para ler dados de sensores. O uso do protocolo SPI ESP32 pode ler dados do sensor RFID e vários projetos podem ser projetados. Este artigo abrange a interface do ESP32 com o sensor e o código RC522 necessário para ler qualquer cartão/tag RFID.