A identificação por radiofrequência ou RFID “Radio Frequency Identfication”, é um sistema sem fios que armazena e recupera dados remotamente e de forma automática. Estes dados armazenam-se em cartões, etiquetas e chaveiros RFID.

As etiquetas RFID são uns pequenos dispositivos fáceis de aderir a qualquer objeto. Estas etiquetas ou “tags” em inglês, têm no seu interior uma antena de radiofrequência e um chip digital minúsculo com memória, que lhe permite responder a pedidos de um módulo emissor-recetor RFID.

A vantagem fundamental desta tecnologia com respeito a outras é que necessita de contacto visual direto para transmitir os dados, como ocorre por exemplo com a transmissão por infravermelhos.

NOTA: Existem dois tipos de etiquetas RFID, as passivas e as ativas. As passivas podem responder a pedidos sem necessidade de alimentação externa, enquanto que as ativas precisam de uma fonte de alimentação como por exemplo uma pilha ou uma bateria.
O Módulo leitor RFID-RC522 controla-se através do protocolo SPI, é compatível com Arduino e com quase todos microcontroladores ou cartões de desenvolvimento e além disso utiliza um sistema avançado de modulação para todo tipo de dispositivos passivos de 13.56 Mhz.

Neste tutorial vamos aprender a ler o código de identificação de uma etiqueta RFID para compará-lo com um valor predeterminado, sé o valor for igual ao que temos como referência mostramos uma mensagem de bem vindo e se não, mostramos uma mensagem de alerta.

Montagem e ligações

Para ligar o módulo leitor RFID-RC522 com Arduino UNO vamos fazer 7 ligações,os pinos de ligações do módulo estão serigrafiados na placa por isso apenas tem que seguir esta tabela:

[table id=1 /]

Sketch de ensaio

Para usar este sketch de ensaio, precisamos de instalar uma livraria que nos vai facilitar muito o trabalho. Trata-se da livraria RC522-RFID de Paul Kourany, tem-se que descarregar e copiar a pasta livrarias da nossa instalação do IDE de Arduino (Geralmente C:\Arquivo de programa\Arduino\livrarias\

DESCARREGAR LIVRARIA RC522_RFID

 

Uma vez descarregada e instalada a livraria, podemos fazer upload deste sketch no Arduino, está comentado para que seja fácil de entender:

 

#include <spi.h>    //Carregamos a livraria SPI incluida no IDE de Arduino
#include <RC522_RFID.h>   //Carregamos a livraria RC522_RFID de Paul Kourany
 
#define SS_PIN 10   // Declaramos o pino SDA do Arduino
#define RST_PIN 9   // Declaramos o pino RST do Arduino
RFID rfid(SS_PIN, RST_PIN);   //Iniciamos o objeto RFID
 
String cardID;      //Declaramos uma variável de tipo string
                    //para armazenar o valor dos dados obtidos da
                    // etiqueta RFID
 
void setup() {
Serial.begin(9600); //Iniciamos a comunicação serie para ler as respostas do módulo
SPI.begin();        //Iniciamos a comunicação SPI
rfid.init();        //Iniciamos o objeto RFID
}
 
void loop() {
check_for_card();   //Comprovamos em laço se há um cartão perto do leitor chamando a função check_for_card()
}
 
void check_for_card()
{
 if (rfid.isCard()) {   //Se há um cartão perto do leitor...
   Serial.println("Se há um cartão perto do leitor"); //Mostramos uma mensagem pelo monitor serie
   if (rfid.readCardSerial()) {     //Lemos a ID do cartão
      cardID = String(rfid.serNum[0]) + String(rfid.serNum[1]) + String(rfid.serNum[2]) + String(rfid.serNum[3]) + String(rfid.serNum[4]);  //Le damos una formato de cadena de carácteres
      Serial.println(cardID);  //Mostramos no monitor série
      if (cardID == "4272516342312" || cardID == "4426315511437"){   //Se a ID é alguma detas 2...
        Serial.println("O cartão é válido");  //O cartão é válido!
      }else{   //Em caso contrario...
        Serial.println("O cartão é inválido"); //O cartão não é válido!
      }
   rfid.halt();  //Finalizamos o objeto RFID
   delay(1000);  //Pausa de 1 segundo para dar tempo a finalizar todas as ordens
   }
}
}

Todos os produtos utilizados neste artigo podem ser encontrados na DaEletrica.

Gostaram deste artigo? Deixem um comentário e compartilhe! 

 


Bruno Martins

Software Engineer Founder and Partner WHN HOST and Exclusive System Teacher