blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Como Funciona um Módulo RFID?
  • Aplicações de um Módulo RFID
  • Descrição do Projeto: RFID com Arduino
  • Aspectos de Hardware
  • Aspectos de Software
  • Botando pra Rodar o Projeto do RFID com Arduino!
  • Conclusão
  • Sobre o Autor
Componentes Eletronicos

Kit RFID com Arduino: Sistema de Controle de Acesso

Eletrogate 9 de setembro de 2017Atualizado em: 25 ago 202210 min

Introdução

Aprenda a construir um sistema de controle de acesso, utilizando um Kit RFID com Arduino!

Os cartões RFID são usados em uma série de aplicações na vida cotidiana, desde cartões de crédito até cartões de identificação automática para controle de acesso.

Esses cartões possuem uma tarja magnética que armazena dados digitais e podem ser lidos e escritos por meio de ondas de rádio.

RFID é a sigla para: Radio Frequency Identification. É uma tecnologia que pertence a uma área chamada de Automatic Identification and Data Capture (AIDC).

Os métodos AIDC identificam objetos e pessoas automaticamente, coletam dados sobre eles e entram com esses dados diretamente em softwares com pouca ou nenhuma intervenção humana.

Neste artigo, vou ensinar você a construir um sistema de controle de acesso, utilizando um Kit RFID com Arduino. Confira!

O  módulo leitor RFID baseado no chip MFRC522 é utilizado para comunicação sem fio a uma frequência de 13,56 MHz. A empresa que desenvolveu o módulo é a NXP, uma das gigantes do setor de semicondutores.

Trata-se de um chip de consumo extremamente baixo e dimensões reduzidas. A sua principal aplicação é a leitura de cartões que utilizam o padrão Mifare.

Com o kit é possível desenvolver e validar projetos de sistemas de controle de acesso, sistemas de segurança e outras variações.

As tags RFID podem ser usadas para ler várias informações sobre o portador do cartão, permitindo sua identificação automática para validação ou não do acesso.

Especificações do MFRC522

  • Corrente de trabalho: 13-26mA / DC 3.3V;
  • Pico de corrente: <30mA;
  • Frequência de operação: 13,56MHz;
  • Tipos de cartões suportados: Mifare1 S50, S70 Mifare1, Mifare UltraLight, Mifare Pro, Mifare Desfire;
  • Parâmetro de Interface SPI;
  • Taxa de transferência: 10 Mbit/s;

Como Funciona um Módulo RFID?

Métodos e tecnologias que usam RFID baseiam-se em ondas de rádio para ler e gravar dados. Os sistemas RFID são feitos dos seguintes componentes principais:

  • RFID tag + Antena: Um pequeno circuito integrado embutido no cartão e um antena são usados para armazenar e transmitir dados para o leitor RFID. A Identificação da tag é chamada de UID, trata-se de um número hexadecimal característico de cada cartão ou chaveira RFID;
  • Leitor RFID: O leitor converte as ondas de rádio transmitidas pela antena da tag para um formato que possa ser usado internamente no computador;

Os kits RFID, como o usado nessa montagem, vem com todos esses componentes. A RFID tag e antena vem integrados no cartão ou numa tag tipo chaveiro.

O módulo leitor também faz parte do kit e é por meio dele que é feita a gravação/leitura de dados. No nosso caso, o leitor é baseado no CI MFRC522.

Ao se aproximar o cartão do módulo leitor, a antena transmite os dados na frequência de operação (13,56MHz) para o leitor, que recebe os dados e converte para um formato que possa ser processado pelo CI e manipulado por um MCU externo (Arduino, Raspberry ou outro sistema qualquer).


Aplicações de um Módulo RFID

As aplicações vão muito além do controle de acesso. Algumas das mais comuns são:

  • Identificação de produtos em cadeias logísticas;
  • Rastreamento/identificação de produtos no comércio internacional;
  • Medidas de tempo em corridas e maratonas;
  • Eliminação de filas de cadastro em eventos;
  • Controle de acesso;

Para saber mais sobre essas e outras aplicações, recomendamos o blog Atlasrfidstore. Para mais informações sobre a tecnologia RFID, recomendamos este texto da UFRJ e este artigo do Instituto Newton Braga.


Descrição do Projeto: RFID com Arduino

Confira o passo a passo da descrição do nosso projeto de sistema de controle de acesso utilizando um Kit RFID com Arduino:

  • Montar um circuito para ler um cartão RFID.
  • Fazer um software com Arduino para identificar a tag do cartão e apresentar uma mensagem num display LCD de “Acesso Liberado” para a tag salva, ou “Acesso negado”, para qualquer outra tag.
  • Um buzzer também será inserido no circuito para avisar e emitirá beeps para cada situação.

Aspectos de Hardware

Materiais necessários para o projeto Sistema de Controle de Acesso

  • 1x Uno R3 + Cabo Usb para Arduino
  • 1x Kit Módulo RFID Mfrc522 13.56 Mhz
  • 1x Display Lcd 16×2 com Backlight Azul
  • 1x Potenciômetro Trimpot 10K Horizontal
  • 1x Buzzer Ativo 5V
  • 1x Protoboard 830 Pontos
  • 1x Jumpers – Macho/Macho – 40 Unidades de 30cm
  • 2x Conversor de Nível Lógico 3.3V-5V Bidirecional – 4 Canais

cta_cart

De posse de todos os componentes, você pode montar o circuito conforme o diagrama abaixo. A pinagem do RC522 com Arduino é a seguinte:

  • SDA -> 9
  • SCK -> 13
  • MOSI -> 11
  • MISO -> 12
  • RST -> 8

Lembre-se de ligar o Vcc do RFID-RC522 no 3.3V! O circuito do RFID trabalha com a tensão de 3.3V, e não os 5V tradicionais do Arduino.

Daí a necessidade de usar o level shifter bidirecional entre um e outro. Alguns canais são unidirecionais, mas como você já vai usar um circuito de level shifter, recomendamos já comprar um totalmente bidirecional, como o indicado na lista de componentes.

Montagem Cartão RFID e Display LCD

Montagem Cartão RFID + Display LCD

As conexões do LCD estão bem explicitadas no código mais abaixo. Cada pino do LCD está associado a uma macro por meio da qual nós definimos o pino de ligação com o Arduino.


Aspectos de Software

O software para carregar no Arduino é o seguinte:

#include <SPI.h>
#include <LiquidCrystal.h>
#include <MFRC522.h>
 
#define LCD_RS 7
#define LCD_E 6
#define LCD_D4 2
#define LCD_D5 3
#define LCD_D6 4
#define LCD_D7 5
#define SDA_PIN  9
#define RST_PIN 8
#define CartaoLiberado " 22 C9 0A 10"
#define AcionaBuzzer 10
#define BeepsLiberado 2
#define BeepsNegado 4

MFRC522 mfrc522(SDA_PIN, RST_PIN);	// Create MFRC522 instance.
 
LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
 
char st[20];
void mensageminicial();
String UID= "";
byte letra;
 
void setup() 
{
  pinMode(AcionaBuzzer,OUTPUT);
  Serial.begin(9600);	
  SPI.begin();		
  mfrc522.PCD_Init();	
  lcd.begin(16, 2);  
  StandardMessage();
}
 
void loop() 
{
  
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  
  getUID();  //separa a string com o UID para ser testada

  if (UID == CartaoLiberado) 
  {
    lcd.clear();
    lcd.setCursor(0,0);
    //Mostra mensagem de acesso liberado  e aciona buzzer
    lcd.print("Acesso Liberado!");
    BuzzerBeeps(BeepsLiberado);
    delay(2000);
    StandardMessage();
  }
  else
  {
    lcd.clear();
    lcd.setCursor(0,0);
    //Mostra mensagem de acesso negado e aciona buzzer
    lcd.print("Acesso Negado!");
    BuzzerBeeps(BeepsNegado);
    delay(2000);
    StandardMessage();
  }
  
  delay(1000);
} 

void StandardMessage()
{
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(" Pronto para");  
  lcd.setCursor(0,1);
  lcd.print(" Leitura!");  
}

void getUID()
{
  Serial.print("UID da tag : ");
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
    
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     if( mfrc522.uid.uidByte[i] < 0x10)
       UID.concat(" 0");
     else
       UID.concat(" ");
      
    // conteudo.concat( String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     UID.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  UID.toUpperCase();
  Serial.println(" ");
}

void BuzzerBeeps(int NumeroBeeps)
{
  int i;
  for(i=0; i<NumeroBeeps; i++)
  {
    digitalWrite(AcionaBuzzer, HIGH);
    delay(500);
    digitalWrite(AcionaBuzzer, LOW);
    delay(500);
  }
}

Funções Setup() e Lopp()

Na função void setup() nós fazemos todas as inicializações necessários:

  • LCD;
  • Porta serial;
  • mfrc522;
  • Pinos de entrada e saída;

Além disso, nós já chamamos a função StandardMessage() para exibir uma mensagem padrão no LCD.

Na função void Loop(), temos dois if’s que estão presentes em todos os exemplos de programas da biblioteca MFRC522.h.

Nesses dois if’s são chamadas as funções específicas da biblioteca para procurar por algum cartão nas proximidades do leitor e selecionar/ler esse cartão, caso o mesmo esteja presente.

Após essa primeira etapa, chamamos a função getUID(), na qual nós separamos os bytes de identificação do cartão lido em uma string de nome UID. Além disso, nós apresentamos esse UID na porta serial.

Caso você não saiba ainda qual o UID do seu cartão, a primeira vez que você rodar o programa, sempre que você aproximar o cartão do leitor vai aparecer a mensagem de acesso negado, pois o UID que está no programa (22 C9 0A 10) é do cartão que usamos na elaboração do post.

Basta você abrir o terminal serial e aproximar o cartão do leitor, assim o UID do seu cartão será exibido no terminal serial e você pode substituir a flag CartaoLiberado no programa pelo seu UID.

Após carregar o programa com a flag atualizada, a mensagem exibida para o seu cartão será de “Acesso Liberado”.

De posse do UID do cartão lido, nós fazemos um if-else para saber se esse UID é o mesmo que está salvo no programa(na flagCartaoLiberado).

Se for o mesmo, o programa mostra a mensagem “Acesso Liberado” e dispara 2 beeps com o buzzer. Se for qualquer outro cartão, é mostrada a mensagem “Acesso  Negado” e disparamos 4 beeps com o Buzzer,

Funções auxiliares

Temos três funções auxiliares, são elas;

  • BuzzerBeeps(int NumeroBeeps);
  • StandardMessage();
  • getUID();

A função BuzzerBeeps é para acionar o buzzer um determinado número de vezes. O parâmetro NumeroBeeps é o número de vezes que o buzzer será acionado com um intervalo de 500ms(você pode ajustar o intervalo se quiser).

A função StandarMessage() mostra uma mensagem padrão no LCD, dizendo: ” Pronto para Leitura”;

Por fim, a função getUID(), como dissemos mais acima, utiliza a função mfrc522.uid.uidByte[i] da biblioteca MFRC522.h para acessar as informações lidas do cartão anteriormente(esses dados foram lidos com a função mfrc522.PICC_ReadCardSerial(), no início do void loop().

Você também pode conferir o código completo e atualizado visitando o repositório desse post no GitHub da Eletrogate.


Botando pra Rodar o Projeto do RFID com Arduino!

O UID do cartão será exibido no terminal serial como a seguir:

UID cartão RFID

UID do cartão que será exibido no terminal serial

A montagem pode ficar um pouco mais cheia do que o normal, devido aos fios para conectar o RF522 aos level shifters e deles ao Arduino.

Mas esperamos que você veja uma mensagem como a mostrada abaixo:

Montagem RFID com arduino

Montagem RFID com Arduino


Conclusão

Antes de fecharmos mais esse post, fica a recomendação de leitura dos exemplos disponibilizados na biblioteca MFRC522.h.

Ao fazer o download do arquivo e extraí-lo para seu computador, uma pasta chamada “examples” poderá ser acessada. Nela estão vários exemplos de programas com aplicações de RFID com arduino.

A partir dos códigos de exemplo, é possível criar aplicações próprias e aprender muito mais sobre essa tecnologia.

Se tiver alguma dúvida mais, ou tiver alguma sugestão de melhoria ou correção, deixe nos comentários e compartilhe com os demais leitores.

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


Vitor Vidal

Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.


Eletrogate

9 de setembro de 2017 Atualizado em: 25 ago 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Projetos

Controlando o Braço Robótico em MDF via Bluetooth

Eletrogate29 de agosto de 2023 Atualizado em: 01 set 2023

Que tal montar um braço robótico e controlá-lo pelo celular? Entre para dicas de montagem e aprender a controlar servos e conectar sua placa.

Projetos

Controlando o Braço Robótico em MDF via Bluetooth

Eletrogate29 de agosto de 2023 Atualizado em: 01 set 2023

Que tal montar um braço robótico e controlá-lo pelo celular? Entre para dicas de montagem e aprender a controlar servos e conectar sua placa.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

[email protected]


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.