08 dezembro 2014

Controle de acesso com módulo RFID RC522

RFID (Radio Frequency IDentification ou Identificação por  radiofrequência) é uma tecnologia que utiliza sinais de rádio e uma etiqueta (tag) RFID para leitura e gravação de dados. 

A forma mais comum de utilização do RFID é na identificação de produtos, onde uma tag pode conter informações como código do produto, procedência, data de validade, fabricante, etc. Mas a sua utilização não se restringe a isso. Podemos usar etiquetas RFID em animais para fins de rastreamento, em veículos no conhecido sistema Sem Parar, em passaportes, rastreamento de cargas, controle de acesso e em várias outras aplicações.

Módulo RFID RC522 Arduino

O módulo RFID RC522 para Arduino é capaz de ler tags que operam na frequência de 13,56 Mhz, e suporta cartões do tipo Mifare1 S50, Mifare1 S70  Mifare Ultralight, Mifare Pro e Mifare DESFire.

Ligação do módulo RFID ao Arduino

O módulo RFID RC522 utiliza a interface SPI para comunicação com o Arduino por meio dos pinos digitais de 10 à 13, além do pino 9 ligado ao RST do  módulo. Veja na imagem abaixo a disposição dos pinos e a ligação ao Arduino, com os pinos suportados pela biblioteca MFRC522, que utilizaremos no nosso programa de controle de acesso :

pinagem modulo rfid rc522 arduino


Atenção à alimentação do módulo, que é feita por meio do pino 3.3V do  Arduino.

Controle de acesso com RFID

Vamos testar o módulo RFID montando um controle de acesso utilizando o Arduino Uno e que verifica o  número da tag e libera (ou não), a passagem por uma cancela controlada  por um servo motor (microservo 9G) :

Projeto cancela com RFID
Esse controle de acesso utiliza o circuito abaixo, lembrando mais uma vez que a alimentação do módulo RFID é feita por meio do pino 3.3V, e o servo motor é alimentado por 5V, por isso atenção na montagem para não inverter as ligações :

Circuito Arduino Uno módulo RFID RC522

Reconhecendo as tags e controlando o servo motor

No programa utilizamos a biblioteca Servo, já presente na IDE do Arduino, e  também a biblioteca MFRC522, que você encontra nesse link.

Adicionamos dois leds para mostrar se o acesso foi liberado (led verde, ligado à porta 5), ou  negado (led vermelho piscante, ligado à porta 6).

Para adaptar o programa à sua tag, verifique no serial monitor o número  (UID) da tag lida pelo sensor, e então coloque esse número nessa linha, no lugar do "D8 4B 12 22" :

if (conteudo.substring(1) == "D8 4B 12 22")

Como temos dois cartões, adicionamos duas entradas idênticas e mudamos  apenas o número do UID em cada uma delas, com um dos cartões com acesso liberado e que aciona o servo motor, movimentando o mesmo em 90 graus, e outro com acesso negado, que pisca o led vermelho.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Programa : RFID - Controle de acesso / cancela
// Autor : Arduino e Cia

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h> 
 
Servo microservo9g;

#define SS_PIN 10
#define RST_PIN 9
// Definicoes pino modulo RC522
MFRC522 mfrc522(SS_PIN, RST_PIN); 

// Leds indicadores acesso liberado ou negado
int led_liberado = 5;
int led_negado = 6;

char st[20];

void setup() 
{
  pinMode(led_liberado, OUTPUT);
  pinMode(led_negado, OUTPUT);
  // Define que o servo esta ligado a porta digital 3
  microservo9g.attach(3);
  // Move o servo para a posicao inicial (cancela fechada)
  microservo9g.write(90);
  // Inicia a serial
  Serial.begin(9600);
  // Inicia  SPI bus
  SPI.begin();
  // Inicia MFRC522
  mfrc522.PCD_Init(); 
  // Mensagens iniciais no serial monitor
  Serial.println("Aproxime o seu cartao do leitor...");
  Serial.println();
}

void loop() 
{
  // Aguarda a aproximacao do cartao
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Seleciona um dos cartoes
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  // Mostra UID na serial
  Serial.print("UID da tag :");
  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));
  }
  Serial.println();
  Serial.print("Mensagem : ");
  conteudo.toUpperCase();
  
  // Testa se o cartao1 foi lido
  if (conteudo.substring(1) == "D8 4B 12 22")
  {
    // Levanta a cancela e acende o led verde
    microservo9g.write(-90);
    digitalWrite(led_liberado, HIGH);
    Serial.println("Cartao1 - Acesso liberado !");
    Serial.println();
    delay(3000);
    microservo9g.write(90);
    digitalWrite(led_liberado, LOW);
    }
    
  // Testa se o cartao2 foi lido
  if (conteudo.substring(1) == "87 4B DC 8A")
  {
    Serial.println("Cartao2 - Acesso negado !!");
    Serial.println();
    // Pisca o led vermelho
    for (int i= 1; i<5 ; i++)
    {
      digitalWrite(led_negado, HIGH);
      delay(200);
      digitalWrite(led_negado, LOW);
      delay(200);
    }
  }
  delay(1000);
}

Abaixo, o serial monitor mostrando os dados referentes às tags que foram liberadas ou negadas :
 
Serial monitor RFID

Esse projeto pode ser melhorado adicionando-se um sensor infravermelho para detectar a passagem de veículos/pessoas/objetos pela cancela, ou um display para contagem de acessos. Abaixo, circuito em funcionamento :



141 comentários:

  1. Oi, artigo graças, feliz por ser praticado a partir da codificação, e mesmo que eu tinha um plano para aplicar o circuito em minha segurança em casa. mas a minha pergunta:
    1. Com a codificação acima só pode ler curso UID uma tag, como adicionar codificação para ser usado com 2-4 Tag UID.

    Por favor, iluminação
    agradeço antecipadamente

    ResponderExcluir
    Respostas
    1. Bom dia Ichiro !

      Você pode adicionar quantas TAGS quiser, acrescentando esse código :

      // Testa se o cartaoX foi lido
      if (conteudo.substring(1) == "")
      {
      \\Your Code Here
      }

      Substituindo o new_tag_id pelo ID que você quiser.

      Saudações !

      Excluir
  2. Boa tarde, gostaria de configurar da seguinte forma: cadastrar os tags que terão acesso, e os cadastrados aparecer acesso negado. Tem como me ajudar? ijanaif@hotmail.com

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Esse programa já faz isso, você cadastra as tags que terão acesso liberado ou negado e testa essa situação por meio do comando IF

      Abraço !

      Excluir
  3. Boa tarde, o número (UID) da tag lida pelo sensor, pode ser alterado, ou já e padrão de fabricação ?

    ResponderExcluir
    Respostas
    1. Boa tarde Wilton,

      Fiz uma rápida pesquisa e existem tags que permitem a mudança do UID, mas ainda não tive oportunidade de testar.

      Abraço !

      Excluir
  4. boa tarde,

    comprei um arduino uno e um modulo rfid-rc522

    implementei seu codigo, porem nao consigo ler as tags

    fiz as ligaçoes seguindo seus passos

    ResponderExcluir
  5. boa tarde,

    comprei um arduino uno e um modulo rfid-rc522

    fiz as ligaçoes senguindo seu post, porem nao consegui ler nenhuma tag, no modulo fica ligado o led d1 vermelho, me de um help por favorr

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Você tem como conseguir algum outro tipo de tag para testar se o problema é nas tags ou no módulo ?

      Abraço.

      Excluir
  6. Boa tarde,
    estou tentando usar o módulo RFID com um Arduino Mega, mas ele não esta identificando as tags.

    Já mudei os ports físicos e mudei o código também para usar os ports 50 ~53

    O led D1 fica sempre acesso, isso significa algo ?

    Desde já agradeço pela ajuda

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Quando ao led, sem problemas, alguns módulo só piscam o led quando lêem a tag, e outros ficam com ela acesa direto, creio que seja alguma modificação do fabricante.

      Você consegue testar esse módulo com um Arduino Uno para verificar se o problema é no módulo ou no Arduino ?

      Abraço.

      Excluir
  7. montei o circuito,mas não funcionou primeiro deu erro na biblioteca, ficava com caracteres preto como se não tivesse declarada, então resolvi renomear a pasta tirei o nome master parou o erro e ficou em vermelho como as demais só que não acontece nada passo o chaveiro ou o cartão e na serial não mostra nada.
    onde esta o erro sera que as tag`s estao limpas

    ResponderExcluir
    Respostas
    1. Boa noite Alberto,

      Eu já tive problemas com um módulo que veio com as tags "zeradas". Se possível, tente uma outra tag ou cartão para verificar se o problema é no módulo ou nas tags.

      Abraço.

      Excluir
  8. olá, eu quero fazer esse mesmo projeto mais botando um LCD tipo para ele aparecer um texto"acesso negado" algo do tipo como que ficaria o código?

    ResponderExcluir
    Respostas
    1. Oi Vinicius,

      Eu escrevi um artigo para o blog FILIPEFLOP exatamente com o que você precisa. Dê uma olhada, por favor :

      http://blog.filipeflop.com/wireless/controle-acesso-leitor-rfid-arduino.html

      Abraço !

      Excluir
    2. Utilizei a programação do blog FILIPEFLOP, porem ocorre este erro, o que devo fazer?
      invalid conversion from 'byte {aka unsigned char}' to 'MFRC522::StatusCode' [-fpermissive]

      Excluir
  9. Ola amigo , por favor pretendo usar esse projeto no meu tcc , mais nao estou conseguindo utilizar esse programa no meu arduino mega 2560 , entao por favor me mande o codigo para arduino mega e a ligação dos cabos no arduino mega por que nao consigo fazer isso , nao tenho muito experiencia com arduino desde ja obrgd

    ResponderExcluir
    Respostas
    1. Boa noite Alessandro,

      O que acontece com o programa ? Não funciona, trava, dá erro ? Vamos ver no que consigo te ajudar.

      Abraço !

      Excluir
  10. Oi eu tenho um problema quando eu iniciar o programa o servo começa a se mover sozinho, embora não muito rápido, mas move-se sem funcionamento do cartão. e quando eu ligar o cartão de movimentos normalmente e então lentamente voltar atrás

    ResponderExcluir
    Respostas
    1. Boa noite,

      O seu servo é o mesmo que eu uso neste post ? Consegue testar com algum outro ?

      Abraço !

      Excluir
  11. tem algum programa feito para detectar a uid dos cartoes?

    ResponderExcluir
    Respostas
    1. Boa noite,

      Na própria biblioteca do RFID você encontra exemplos para ler a UID dos cartões.

      Abraço !

      Excluir
  12. comprei um rfid e a tag não veio com UID, tem como eu descobrir ?

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Seu cartão veio zerado ?

      Excluir
    2. Comigo ocorreu da mesma forma. Comprei dois kits com 10 cartões cada, com vendedores diferentes e nenhum cartão veio com o UID. Tenho outros 4 cartões que são lidos normalmente.

      Excluir
  13. Boa Noite

    Muito obrigado pelo projeto me ajudou muito, porem teria como eu controlar esse mesmo servo motor adicionando um modulo bluethooth, para abrir o portão da minha sala sem ter de descer para abrir o portão para pessoas que não tem o tag ?

    ResponderExcluir
    Respostas
    1. Boa tarde,

      É possível sim, você só precisa arrumar uma maneira de interligar o Arduino ao controle do motor do portão. Para testes de controle de um servo motor via bluetooth, dê uma olhada neste post, por favor:

      http://www.arduinoecia.com.br/2014/01/controlando-um-servo-motor-utilizando.html

      Abraço !

      Excluir
    2. Então na verdade eu não queria controlar o motor do meu portão. eu queria adicionar esse codigo do : http://www.arduinoecia.com.br/2014/01/controlando-um-servo-motor-utilizando.html junto com o codigo do Controle de acesso com módulo RFID RC522. para fazer uma coisa só. para abrir a cancela tanto usando o cartão como pelo modulo bluethooth.

      Excluir
    3. Creio que vc tenha que usar o NFC já que a frequência é a mesma.

      Excluir
  14. Olá amigo como sei se minha tag está realmente vazia? Pois montei este projeto e os cartões que tenho leram normal eo chaveiro não aparece nada nem no monitor serial?

    ResponderExcluir
    Respostas
    1. Oi Anderson,

      Já tive o mesmo problema em 2 ou 3 kits que comprei. Os cartões liam, e o chaveiro não, ou então nada lia... mas o problema aparentemente se encontra nos cartões/chaveiros, troquei e o leitor funciona normalmente.

      Abraço !

      Excluir
    2. O seu programa esta dando erro aqui, veja:


      sketch_aug03b:13: error: 'MFRC522' does not name a type
      sketch_aug03b.ino: In function 'void setup()':
      sketch_aug03b:34: error: 'mfrc522' was not declared in this scope
      sketch_aug03b.ino: In function 'void loop()':
      sketch_aug03b:43: error: 'mfrc522' was not declared in this scope
      sketch_aug03b:48: error: 'mfrc522' was not declared in this scope
      sketch_aug03b:56: error: 'mfrc522' was not declared in this scope

      Excluir
    3. Bom dia Eduardo,

      A princípio, isso me parece erro na instalação da biblioteca.

      Abraço !

      Excluir
    4. Boa Noite, estou passando pelo mesmo problema, fiz a reinstalação das bibliotecas
      MFRC522.h e MFRC522.cpp os arquivos estão na mesma pasta e problema ainda continua o que pode ser?

      Excluir
  15. Esse módulo RFID RC522 reconhece o cartão MIFARE CLASSIC 1K?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Segundo o fornecedor, os tipos de cartão suportados são: Mifare1 S50, S70 Mifare1, Mifare UltraLight, Mifare Pro, Mifare Desfire.

      Abraço !

      Excluir
  16. una pregunta que librerias utilizo y si las puede pasar de ante mano gracias

    ResponderExcluir
    Respostas
    1. La biblioteca utilizado es el mismo que en el artículo:

      https://github.com/miguelbalboa/rfid

      ¿Qué error está apareciendo ?

      ¡Saludos!

      Excluir
  17. una pregunta que librerias utilizo porque me marca error porfa es para una practica en la escuela

    ResponderExcluir
  18. Como eu faria a ligação usando um arduino nano ? Já que o pino 13 não existe no arduino nano ! posso usar outro pino qualquer ?

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Eu não testei com o Nano, mas ele possui pino 13... dê uma olhada neste link:

      http://christianto.tjahyadi.com/wp-content/uploads/2014/11/nano.jpg

      Abraço!

      Excluir
  19. o código não esta correspondendo com o que e nas imagens pois as leds fica acesso direto o moto não pois só fiz compilar o código

    ResponderExcluir
    Respostas
    1. Boa noite,

      Por favor dê uma checada nas conexões. O circuito e o código foram testados exatamente como está no post.

      Abraço!

      Excluir
  20. Olá. Gostei muit desse projeto e gostaria de implementa-lo inserindo um bluetooth para comunicar com o cel ou notebook, possibilitando a entrada nao so pelas tags, mas tambem atraves do celular. Isso e possivel. Como ficaria a programaçao? Tem algum artigo semelhante? No aguardo. Vlew.

    ResponderExcluir
    Respostas
    1. Boa tarde Bruno,

      É possível sim, mas não tenho nenhum post pronto sobre isso ainda.

      Abraço!

      Excluir
  21. Saudações!
    Gostei muito do tutorial, porém, não estou conseguindo fazer funcionar a leitura dos cartões. Quando aproximo um cartão, não há reação alguma. Já tentei diversos cartões com o sistema RFID e mesmo assim não funciona.
    Obs: Meu arduino é o Duemilanove.

    Poderia me ajuda?
    Abraço!

    ResponderExcluir
    Respostas
    1. Boa tarde Sérgio,

      Não testei com o Duemilanove, mas pelas informações que eu tenho, esse leitor é compatível.

      Abraço!

      Excluir
  22. Este comentário foi removido pelo autor.

    ResponderExcluir
  23. Este comentário foi removido pelo autor.

    ResponderExcluir
  24. mudou o problema agora
    carregou ate o fim e nao deu erro
    porem o rfid nao reconhece nem o cartao nem o chaveiro

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Você tem alguma outra tag para testar ? Aparece algum dado no serial monitor ?

      Abraço.

      Excluir
    2. ENTÃO
      to usando duas tags diferentes
      o chaveiro pra liberar e o cartao pra negar
      carrega tudo a programacao
      abro o serial monitor
      passo eles e nao aparece nada no serial
      lembrando q estou utilizando o arduino mega
      ja alterei as portas do rfid certinho e nada ainda ...

      Excluir
    3. ou se puder me mandar a programação de como ficaria no mega...
      qualquer ajuda é bem vinda
      to precisando fazer funcionar...obg

      Excluir
    4. Boa tarde,

      A programação no mega é a mesma, mas a interface SPI usa outros pinos. Dê uma olhada neste link, por favor: https://www.arduino.cc/en/Reference/SPI

      Abraço!

      Excluir
    5. Este comentário foi removido pelo autor.

      Excluir
  25. Este comentário foi removido pelo autor.

    ResponderExcluir
  26. Bom dia amigos
    Gostaria de agradecer
    Consegui encontrar o problema...
    E pintou mais um desafio
    Meu professor pediu pra colocar um display lcd16x2 e aparecer o acesso liberado e acesso negado toda vez Q passar o cartão
    É possível?
    Obrigado

    ResponderExcluir
    Respostas
    1. Bom dia Giovanni,

      Eu escrevi um artigo para o blog FILIPEFLOP exatamente com o que você precisa. :)

      http://blog.filipeflop.com/wireless/controle-acesso-leitor-rfid-arduino.html

      Abraço!

      Excluir
  27. Bom dia amigo,
    Tem como substituir o servo por um rele?como?

    ResponderExcluir
    Respostas
    1. Boa noite,

      Tem sim. Utilize o esquema de conexão desse post: http://www.arduinoecia.com.br/2013/02/ligando-uma-lampada-com-rele.html

      Abraço!

      Excluir
  28. Aonde eu posso conseguir uma catraca semelhante a sua?
    Obrigado

    ResponderExcluir
    Respostas
    1. Boa noite Gustavo,

      Eu tenho esse item para venda. Por favor entre em contato utilizando o formulário de contato no lado direito do site. Conversamos por email.

      Abraço!

      Excluir
  29. Boa Noite Gustavo, sou iniciante do projeto Arduino, fiz o fonte conforme descrito e ao compilar gera erro 'MFRC522' has not been declared ja fiz a instalação das bibliotecas MFRC522.cpp e MFRC522.h os arquivos estão na mesma pasta, o que pode ser, está faltando alguma coisa?

    ResponderExcluir
  30. Bom dia como faço para adicionar um botão no projeto, para abrir a porta pelo lado de dentro ?

    ResponderExcluir
  31. Boa Noite, gostaria de saber se tem como eu colocar vários cartões para serem lidos e que o acesso fique liberado. Por exemplo, quero que 5 pessoas tenham acesso a uma sala, como faço para identificar qual UID de cada cartão da pessoa e liberar o acesso? Obrigado

    ResponderExcluir
  32. Boa noite, gostaria de saber como faço para colocar por exemplo 5 cartões para ter o acesso liberado e os resto com acesso negado? E como faço para ler as UID de cada cartão. Obrigado

    ResponderExcluir
    Respostas
    1. Boa noite Pedro,

      Você pode fazer um "IF" para cada cartão, testando o UID conforme eu fiz nas linhas:

      if (conteudo.substring(1) == "D8 4B 12 22")

      O próprio programa já mostra no Serial Monitor o UID do cartão que vc aproximar.

      Abraço!

      Excluir
  33. Boa Noite

    Como faço para adicionar um botão ao projeto para que eu possa abrir a porta do meu quarto por dentro ?

    ResponderExcluir
  34. Boa tarde querido, primeiro gostaria de parabenizar vc pelo ótimo trabalho!
    Mas tenho uma dúvida sobre o sensor RFID, eu quero acionar o código dele através de uma interrupção, mas como estou utilizando o arduino UNO tenho que ligar pelo menos um dos fios do módulo na saída 2 ou 3!
    tem alguma idéia de como posso fazer isso???

    Agradeço desde já!

    ResponderExcluir
    Respostas
    1. Bom dia Diego,

      Essa vou ficar te devendo por enquanto, vamos ver se os outros leitores do blog conseguem te ajudar.

      Abraço e obrigado!

      Excluir
  35. Ola, Boa tarde! Nao sou tao novo com arduino assim, ja desenvolvi alguns trabalhos simples, mais nunca trabalhei com nenhum sketch que necessitasse de uma biblioteca diferente, e nao to conseguindo baixar essa, depois que vou no link nao estou achando a area de dowloand, dava pra fazer um passo a passo pra mim, por comentario? vou acrecentar esse projeto em um outro que estou fazendo pra tcc. desde ja obgd!!
    lucasgaipo@gmail.com

    ResponderExcluir
  36. socorro, estou precisando urgente de um auxilio, quero ler as tags de dois cartoes rfid, tentei usar o codigo ai de cima tirando a parte de leds e da cancela porem nao consego, pf alguem me ajuda com a programação para ler as tags para conseguir montar o projeto.
    muito obrigado pela atenção de todos.

    ResponderExcluir
  37. Boa tarde, preciso adicionar e retirar cartões sem precisar mexer no código, com um cartão ''master''.. é possivel?

    Obrigado

    ResponderExcluir
    Respostas
    1. Bom dia,

      É possível sim, você terá que gravar as informações dos novos cartões em algum lugar, seja na memória EEPROM do Arduino ou em um cartão SD, por exemplo.

      Abraço!

      Excluir
  38. Da pra montar esse circuito no https://123d.circuits.io?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Pelo que eu vi do programa, ele não tem muitos módulos disponíveis, como o módulo RFID, por exemplo.

      Abraço!

      Excluir
  39. Qual a distância entre o módulo rfid e o arduino pode ter?

    ResponderExcluir
  40. Qual a distância máxima do módulo rfid até o arduino? Poderia estar utilizando um cabo de rede blindado teria no meu cenário uma distância máxima de 5m. Obrigado

    ResponderExcluir
    Respostas
    1. Bom dia Rafael,

      Infelizmente eu não tenho essa informação. Só testando mesmo.

      Abraço!

      Excluir
  41. Boa Noite,

    primeiramente parabéns, era o que estava precisando !

    Estou com a seguinte dúvida:
    As tags já vem com uma UID cadastrada?
    Como faço para ler as UID das tags?
    Testei o seu código, porém só fica no monitor serial a seguinte mensagem: "Aproxime o seu cartao do leitor..." mais nada aparece, ja troque o modulo e nada, tenho três tags bilhete único e duas tags chaveiros, mais nenhuma delas estão sendo lida, pois nada aparece no monitor serial.

    Poderia me dar uma luz??

    ResponderExcluir
  42. Parabéns pela pagina muito útil.

    Estou com a seguinte duvidas:

    1 - As tags ja vem de fabrica com um UID cadastrada ou tem que cadastrar?
    2 - Implementei seu código porém só fica a mensagem no monitor serial (Aproxime o seu cartao do leitor...) e nada acontece, ja troquei o modulo, ja testei diversas tagS do tipo bilhete unico e tags chaveiro mais nada adiantou.

    Poderia me dar uma luz ???

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Obrigado!

      1 - Sim, as tags, pelo menos as que eu mexi e que eu conheço, já vieram com a UID cadastrada
      2 - Eu já vi isso acontecer com tags "vazias", mas o bilhete unico, por exemplo, funcionou. Recomendo você testar com outro módulo e/ou tags.

      Abraço!

      Excluir
  43. A biblioteca MFRC522 não funciona!

    ResponderExcluir
    Respostas
    1. Bom dia,

      Acabei de baixar a biblioteca no link do post e compilou normalmente. Que erro está apresentando na sua IDE ?

      Abraço!

      Excluir
    2. aconteceu na minha também, apareceu : MFRC522, does not name a type.

      Excluir
  44. boa noite,

    você pode fazer um vídeo explicando o código.
    agradeço.

    ResponderExcluir
    Respostas
    1. Boa noite Edson,

      Boa sugestão. Vou ver se consigo tempo para fazer isso. :)

      Abraço!

      Excluir
  45. bomdia , queria saber faço pra rastrear um adesivo rfid?

    ResponderExcluir
  46. Amigo, boa noite! Estou querendo cadastrar mais cartoes ao meu projeto, mas não estou conseguido. A dica que está aqui, não está bem clara. Help! Repeti toda linha if, mas fiquei sem acesso, nenhum cartão colocado na linha funcionou na liberação. Obrigado.

    ResponderExcluir
    Respostas
    1. Oi Gilberto!

      Desculpe a demora. Conseguiu fazer funcionar ?

      Abraço!

      Excluir
    2. Sim...basta repetir a mesma rotina do cadastro para todos os cartões.

      Excluir
  47. Olá. Gostaria de saber como e armazenada a UID das tags no programa, quais os comandos que fazem isso e como ocorre a concatenação dos dados. Gostaria de comentários mais detalhados do programa, principalmente as linhas 40 a 53. Por favor, se puder ajudar, agradeço.

    Obg.

    ResponderExcluir
  48. amigo gostaria de saber se daria pra usar o arduino leonard nesses projeto att luccas

    ResponderExcluir
    Respostas
    1. Oi Luccas,

      Não testei, mas a princípio não vejo problemas. Deve funcionar sim.

      Abraço!

      Excluir
  49. Olá, utilizei o Nano, no monitor ele funciona perfeitamente, mas não move o micro servo.
    Troquei de micro servo, utilizei conectado no pc e com fonte externa, nenhuma opção funcionou.
    Será que estou com dois micro servos com defeito?
    Existe possibilidade de substituir o micro servo e colocar um relé?

    ResponderExcluir
  50. Bom dia. Posso adicionar um relé que dure um 2 segundos após o acionamento? E qual código acociar. Tb posso colocar o código do display?

    ResponderExcluir
    Respostas
    1. Oi Roni,

      Pode fazer tudo isso e mais um pouco.... o que seria o código do display ?

      Abraço!

      Excluir
  51. Boa tarde! Tem como fazer o Rfid funcionar no Arduino Due? Com esse tutorial consigo fazer funcionar no Uno, mas preciso que funcione no Due.. Se souber qual porta usar para funcionar, agradeço bastante! Obrigado

    ResponderExcluir
    Respostas
    1. Oi Hian,

      No Due, utilize os pinos do ICSP. Veja neste link os pinos corretos da interface SPI no Arduino Due:

      https://www.arduino.cc/en/reference/SPI

      Abraço!

      Excluir
  52. Sobre o rfid 522: duas dúvidas:
    1. Como posso fazer para aumentar a recepção do sensor para uma distância de aproximadamente 20 cm de distância?
    2.É possível estender a área de leitura do sensor horizontalmente (como se fosse uma barra) ?

    Obrigado e Parabéns pelo conteúdo.

    ResponderExcluir
    Respostas
    1. Oi Barcellos!

      Cara, a não ser que tenha um "hack" pra essa placa, até onde eu sei a distância é bem pequena mesmo, não tem como colocar, tipo uma antena pra melhorar o alcance... Nem verticalmente nem horizontalmente. :)

      Abraço!

      Excluir
  53. Bom dia Arduino e Cia.

    Estou tendo uma pequena dificuldade em relação a utilização do servo motor junto com o RFID. Identifiquei as UIDs de cada Tag, substitui nesse código, compilei para o Arduino e coloquei os pinos conforme descritos nessa públicação. Mas não tá tendo leitura nenhuma.

    Atenciosamente, Elton.

    ResponderExcluir
  54. Por favor, desconsiderem o meu último comentário falando que não tava conseguindo realizar o projeto. Acabei de conseguir com um pequeno porém, os leds não acendem.
    Será que o Arduino não tá dando conta com as voltagens? Vocês estão usando alguma fonte externa no projeto?
    Grato desde já, atenciosamente, Elton!

    ResponderExcluir
    Respostas
    1. Oi Elton,

      Não, estou usando apenas a alimentação do Arduino... aqui funciona normalmente. Por favor reveja o circuito e o valor dos resistores.

      Abraço!

      Excluir
  55. Olá, post muito tbom mesmo, me ajudando muito.
    Estou com um problema, a tag e o cartão não reconhecem mais, tinha feito esse mesmo circuito, mas desfiz e agora estou montando de novo, mas ele não reconhece nem o cartão e nem a tag.
    O que faço?

    ResponderExcluir
    Respostas
    1. Oi Mylena,

      Será que vc não danificou o leitor ? Não esqueça que ele funciona com 3.3V.

      Abraço!

      Excluir
  56. Boa noite.
    Primeiramente gostaria de agradecer pelo projeto. Me ajudou muito!
    A minha duvida é a seguinte:
    Conectei o arduino em uma ethernet shield. A leitura esta sendo feita normalmente, mas preciso passar esses dados para um banco e posteriormente gostaria de jogar em um serv web para conseguir ver quem deu entrada.
    Sabes algum jeito mais tranquilo?

    ResponderExcluir
    Respostas
    1. Boa noite,

      Eu já fiz algo parecido com o GSM shield.. tirando a parte de conexão, vc pode usar a mesma ideia para fazer com o Ethernet Shield.. Dê uma olhada neste post, por favor:

      http://www.arduinoecia.com.br/2015/11/acessar-internet-arduino-gsm-shield-sim-900.html

      Se não conseguir, entre em contato novamente.

      Abraço!

      Excluir
  57. Olá, por favor me tire uma duvida, como eu faço pra ligar o modulo rfid junto com o cartão SD já que eles usam os mesmos pinos de comunicação

    ResponderExcluir
    Respostas
    1. Oi Jairo,

      Que módulo cartão SD você tem ? Você pode ligar mais de um módulo na interface SPI, só precisa alterar o pino SS (select) para cada dispositivo.

      Abraço!

      Excluir
  58. Olá, Estou tendo um problema na hora de copilar, já reinstalei a biblioteca e renomiei a pasta porem o erro persiste;


    Arduino: 1.6.8 (Windows 7), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    libraries\MFRC522\MFRC522.cpp.o: In function `MFRC522::MFRC522()':

    collect2.exe: error: ld returned 1 exit status

    exit status 1
    Error compiling for board Arduino/Genuino Mega or Mega 2560.

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    ResponderExcluir
  59. Olá consigui arrumar o problema com a biblioteca, porem agora o sensor não lê o cartão. Será que é problema no modulo?
    Aparece a mensagem "Aproxime o seu cartao do leitor..." no monitor serial porem ao aproximar o cartão nada acontece, testei outros códigos e acontece o mesmo;

    ResponderExcluir
    Respostas
    1. os problemas encontrados foram: 1° estou utilizando um arduino mega em que as portas são diferentes do uno; 2° Não havia soldado os pinos no RFID, estava dando mau contato;

      Montei o circuito no UNO e funcionou OK;

      Excluir
    2. Oi Pedro,

      Legal, obrigado pelo retorno.

      Abraço!

      Adilson

      Excluir
    3. As alterações;


      ------------------------------------------------------------
      * Reset 5 RST
      * SPI SS 53 SDA
      * SPI MOSI 51 MOSI
      * SPI MISO 50 MISO
      * SPI SCK 52 SCK


      Servo microservo9g;

      #define SS_PIN 53
      #define RST_PIN 5
      // Definicoes pino modulo RC522
      MFRC522 mfrc522(SS_PIN, RST_PIN);

      // Leds indicadores acesso liberado ou negado
      int led_liberado = 13;
      int led_negado = 12;

      void setup()
      {
      pinMode(SS_PIN, OUTPUT);
      digitalWrite(SS_PIN, HIGH);
      pinMode(led_liberado, OUTPUT);
      pinMode(led_negado, OUTPUT);

      Excluir
  60. ola...gostei do projeto.estou usando u projeto destes no meu tcc.( copiei do filipflop)mas nao consigo implementar uma saida para acionar um led ou um rele,apos a tag ser lida e dar como cadastrada.da maeira que esta no site,funciona perfeitamente.como nao tenho conhecimento de programaçao,gostaria de contar com a ajuda dos colegas,se possivel.

    ResponderExcluir
    Respostas
    1. Oi João,

      Você pode usar o programa deste post aqui, e colocar um módulo relé no lugar de um dos leds, por exemplo, ou acrescentar uma porta no circuito para acionar o seu relé.

      Abraço!

      Excluir
  61. ola gostaria de saber como que funciona a transmissao do codigo, pois precisava dividilo

    ResponderExcluir
  62. Bom dia!
    Primeiramente, excelente trabalho.
    Existe uma maneira de transmitir as informações da tag em forma de audio?

    Aguardo a resposta.
    Grato

    ResponderExcluir
    Respostas
    1. Bom dia,

      Você diz colocar um sinal sonoro quando a catraca liberar o acesso, por exemplo ?

      Abraço!

      Excluir
    2. Bom dia!
      Após liberar o acesso, as informações que encontra na tag, seria emitido em forma de audio.

      Ex; As informações da TAG seria= Paulo Ricardo
      Quando liberar o acesso, seria emitido o "Paulo Roberto" em audio

      Abraço

      Excluir
    3. Boa tarde,

      Interessante.. que tal usar o RFID em conjunto com um módulo MP3 ? Acho que dá pra fazer direitinho que vc quer:

      http://www.arduinoecia.com.br/2015/06/modulo-mp3-wtv020-sd-arduino.html

      Abraço!

      Excluir
    4. Beleza, farei mais pesquisas.

      Abraço

      Excluir
  63. здравствуйте! у меня серво закрывается сразу, я поставил на 7 секунд delay(7000); что модет быть?

    ResponderExcluir
    Respostas
    1. Привет!

      Вставьте строку после строки 77:

      delay(7000);

      Привет!

      Excluir
  64. Bom dia amigo
    quero saber se eu posso incluir uma biblioteca com os cadastros com data de vencimento
    quero v se consigo implementar isso na minha academia
    e queria saber se tem como eu interligar isso td no pc principal da academia e renovar e fazer o cadastro td por ele
    e se tem como o acesso ser wifi para não precisar utilizar mts fios pq o pc fica longe da entrada
    Att
    Hudson Silva

    ResponderExcluir

  65. Ola amigo... muito bom seu projeto...

    Quero colocar aqui na empresa, um controle de acesso de carros... vc acha que funciona se eu colocar uma antena leitora de RFID?

    ResponderExcluir
    Respostas
    1. Boa noite,

      Só a antena não vai ser suficiente.. Acho que nesse caso você vai precisar de outro tipo de tag e leitor.

      Abraço!

      Excluir
  66. OTIMO PROJETO , PRA EU DEU ERRO NESSA LINHA.
    34-mfrc522.PCD_Init(); OQUE PODE SER , INSTALEI TODAS BIBLIOTECAS POSSIVEIS, ME AJUDE....HELP

    ResponderExcluir
    Respostas
    1. Boa noite,

      Tentou mudar de IDE ?

      Abraço!

      Excluir
    2. Boa noite agradeço muito pela dica mas infelizmente nao deu certo ,instalei todas versoes e nenhuma deu certo.... oque sera que esta havendo ...

      Excluir
  67. Oi Boa noite !
    voce sabe programar o rfid com pic

    ResponderExcluir
    Respostas
    1. Boa noite,

      Dê uma olhada neste post, por favor. Acho que tem o que você precisa: http://microcontrolandos.blogspot.com.br/2014/02/pic-rfid-mfrc522.html

      Abraço!

      Excluir
  68. Você saberia como adaptar esse programa pra duas cancelas ao invés de apenas uma, de forma que o cartão que abriu a primeira cancela abra a segunda?

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Sim, você pode simplesmente cadastrar as mesmas tags em dois Arduinos diferentes, ou interligar os dois para fazer algum tipo de "validação" dos cartões.

      Abraço!

      Excluir
  69. Bom dia estive observando seu código, e gostaria de saber se há possibilidade de introduzir um botão para abertura (fazer o servo executar os passos) sem a utilização do RFID, e em qual ponto do código isso deveria ser feito.

    ResponderExcluir
  70. Boa noite, quero abrir uma cancela com servo e arduino desta mesma forma. Porém com um sensor magnetico para ativá-los. Poderiam me ajudar? grata desde ja´..

    ResponderExcluir
  71. Boa noite !
    Parabéns pelo trabalho e pela pagina.
    Gostaria de saber se tem como programar RFID RC522 com PLC.
    Obrigado

    ResponderExcluir
  72. ola, utilizei sua programação para fazer meu projeto, de inicio tive problema com a biblioteca então procurei em outro lugar e peguei em outro lugar uma biblioteca e o nome dela estava diferente, mas com ela eu consegui compilar e ate consegue ler as tags, mas para por ai, ela nem acende a tag e nem escreve no serial monitor se é a tag certa ou a errada.

    ResponderExcluir
  73. A me non funziona il programma , specificamente il rigo 5 include me lo segna come errore. Perché me lo da errore ? Come lo risolvo ?

    ResponderExcluir