fbpx

Controle de Acesso com Módulo RFID e Arduino

Neste texto apresentarei um protótipo com o módulo RFID MFRC522 para controle de acesso. O programa apresentado poderá ser adaptado para as mais diversas situações, desde automações residenciais à projetos de controle de acesso mais complexos.

O Módulo RFID MFRC522

A sigla RFID significa Radio Frequency Identification ou Identificação por Radiofrequência. Esta tecnologia utiliza sinais de rádio frequência e uma etiqueta (tag) para leitura e gravação de dados.

O módulo RFID MFRC522 é apresentado na Figura 1 com todos seus componentes (tags e barras de pinos).

Figura 1 – Módulo RFID e seus periféricos.

Necessitamos conhecer os pinos de conexão do módulo ao Arduino, e neste caso muita atenção pois o módulo RFID é alimentado com 3,3 V. A Figura 2 apresenta o módulo com seus pinos de conexão.

Figura 2 – Pinos de conexão do módulo RFID.

Em conjunto com o Arduino o módulo RFID utiliza a interface SPI para comunicação com o microcontrolador por meio dos pinos digitais de 9 a 13. Além disso, é necessário baixar a biblioteca MFRC522, que utilizaremos para facilitar a programação que pode ser baixada aqui.

Componentes Necessários Para Montagem

Antes de apresentar o esquema de conexão do módulo ao Arduino, vamos listar os materiais necessários para realizar esta montagem.

  1. Placa Arduino UNO;
  2. Módulo RFID MFRC522;
  3. 2 LEDs (vermelho e verde);
  4. 2 Resistores de 330 Ohms;
  5. Protoboard;
  6. Fios e jumpers para conexões.

Os componentes acima podem ser adquiridos na loja Silvatrônics, com ótimo custo-benefício.

Com todos os componentes necessários em mãos, podemos prosseguir e elaborar um esquema de conexão do módulo à placa Arduino.

Esquema de Conexão do Módulo ao Arduino

Podemos utilizar o software Fritzing e elaborar um esquema de conexão do módulo RFID ao Arduino. Nesse protótipo utilizaremos LED’s para indicar se o acesso foi permitido ou negado. Assim, com este exemplo podemos imaginar e projetar um sistema que utilize dos módulos RFID para controle de acesso ou qualquer outra situação que somente pessoas com a tag possa ter acesso.

O esquema de montagem elaborado pode ser visto na Figura 3, note que os pinos do módulo são conectados conforme apresentado na Figura 2.

Figura 3 – Esquema de conexão do Arduino e módulo RFID.

Agora que temos um esquema de montagem, podemos elaborar um programa para nosso protótipo.

Programa Para Controle de Acesso com Módulo RFID

Como mencionado anteriormente é necessário fazer o download da biblioteca MFRC522 para nos auxiliar na comunicação do Arduino com o módulo RFID.

O objetivo deste programa é ler a tag e verificar se ela possui o ID correspondente ao armazenado no código. Caso a tag seja reconhecida o LED verde se acende por determinado tempo e logo após se apaga. Porém, se a tag não for reconhecida o LED vermelho pisca por um breve tempo e logo após se apaga. E assim, o programa funciona neste loop.

O programa pode ser conferido abaixo.

// TÍTULO : Programa Para Controle de Acesso com Módulo RFID
// Autor : Ângelo Meneguini

#include <SPI.h> // Incluimos a biblioteca SPI
#include <MFRC522.h> // Incluimos a biblioteca MFRC522 para o módulo RFID

#define SS_PIN 10 // Definindo o pino para conexão do módulo RFID
#define RST_PIN 9 // Definindo o pino para conexão do módulo RFID

MFRC522 mfrc522(SS_PIN, RST_PIN); // Informa no programa quais os pinos de comunicação ao módulo

#define led_verde 3 // Define o pino 3 para conectarmos o LED verde (acesso liberado)
#define led_vermelho 2 // Define o pino 2 para conectarmos o LED vermelho (acesso negado)

char st[20]; // Cria um espaço na memória para armazenar a string

void setup()
{
pinMode(led_verde, OUTPUT); // Configura o pino que o LED verde está conectado como saída
pinMode(led_vermelho, OUTPUT); // Configura o pino que o LED vermelho está conectado com saída
Serial.begin(9600); // Inicia a comunicação serial
SPI.begin(); // Inicia a comunicação SPI
mfrc522.PCD_Init(); // Inicializa a biblioteca MFRC522
Serial.println(“Aproxime o cartao ao leitor…”); // Apresenta a frase na janela serial
Serial.println();
} // end setup()

void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent()) // Aguarda o cartão ser aproximado
{
return;
} // end if()
if ( ! mfrc522.PICC_ReadCardSerial()) // Seleciona um dos cartões
{
return;
} // end if()

Serial.println(“UID da tag :”); // Apresenta o ID do cartão na comunicação serial
String conteudo= “”;
byte letra;

for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? ” 0″ : ” “);
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? ” 0″ : ” “));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
} // end for()
Serial.println();

conteudo.toUpperCase();

if (conteudo.substring(1) == “65 5F 48 BE”) // Verifica se o cartão 1 foi lido
{
digitalWrite(led_verde, HIGH); // Acende o LED verde
Serial.println(“Cartao 1 – Acesso liberado!”); // Apresenta na serial que o acesso foi liberado
Serial.println();
delay(3000); // Espera o 3 segundos mantendo o LED aceso
digitalWrite(led_verde, LOW); // Apaga o LED verde
} // end for()

if (conteudo.substring(1) == “E5 75 23 1C”) // Verifica se o cartão 2 foi lido

{
Serial.println(“Cartao 2 – Acesso negado!!”); // Apresenta que o acesso foi negado
Serial.println();
// Pisca o led vermelho
for (int i= 1; i<5 ; i++) // Pisca o LED vermelho
{
digitalWrite(led_vermelho, HIGH);
delay(200);
digitalWrite(led_vermelho, LOW);
delay(200);
} // end for()
} // end for()
delay(1000); // Espera 1 segundo
} // end loop()

Para utilizar o programa acima com seu módulo RFID, basta realizar a montagem conforme o esquemático apresentado e aproximar a tag ao leitor RFID, o código que será apresentado no Monitor Serial deve ser inserido no programa substituindo o código: 65 5F 48 BE. Na linha onde se encontra a seguinte condição:

if (conteudo.substring(1) == “65 5F 48 BE”)

Feito a substituição do ID, compile e verifique se o Arduino identifica a tag cadastrada, onde o LED verde deverá acender. Faça o mesmo procedimento para o cartão no segundo comando.

Após compilar o programa e realizar as substituições de ID, basta agora testarmos o funcionamento do protótipo. Você ainda pode baixar o programa pelo nosso GitHub, onde você encontrará juntamente outros programas para Arduino.

Teste do Protótipo de Controle de Acesso

Após realizar a montagem conforme indicado no esquemático da Figura 3 e compilar o programa para o Arduino, devemos então testar se tudo que foi apresentado funciona como proposto.

A seguir podemos conferir duas imagens da montagem realizada nas Figuras 4 e 5.

Figura 4 – Montagem do protótipo em bancada.

 

Figura 5 – Montagem do protótipo em bancada.

Perceba que é tudo muito simples, apenas alguns fios para ligações e temos um protótipo para controle de acesso. Durante a leitura dos cartões, o Arduino envia pelo Monitor Serial o ID do cartão e a informação se o acesso foi liberado ou negado, conforme mostrado na Figura 6.

Figura 6 – Resultado apresentado no Monitor Serial.

Para complementar, gravei um pequeno vídeo apresentando o funcionamento da montagem.

Podemos conferir no vídeo que o leitor RFID funciona muito bem e será futuramente alvo de novos projetos.

Considerações Finais

Neste texto foi apresentado um programa para ler o cartão RFID e acender ou piscar um LED indicando acesso permitido ou negado.

As aplicações que poderemos utilizar este leitor RFID são inúmeras, como por exemplo: controlar uma porta, ligar lâmpadas, gerar sinais, acionar um motor, etc. Isso significa que este programa pode ser adaptado e utilizado de diferentes formas.

Espero que tenha gostado deste protótipo utilizando o módulo RFID, em breve teremos mais projetos utilizando este protótipo, aumentando o nível de dificuldade.

Obrigado pela leitura, e até o próximo artigo!

Você também pode gostar

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *