17 maio 2017

Módulo Leitor RFID RDM6300 e Arduino

Neste post vamos mostrar como conectar o Leitor RFID RDM6300 125KHz no Arduino e efetuar a  leitura da identificação de tags RFID 125KHz.

Módulo Leitor RFID RDM6300 125KHz

Esse tipo de módulo pode ser usado para controle de acesso, alarmes, marcadores de ponto, brinquedos e outras aplicações. É o mesmo princípio que usamos nos módulos RFID MFRC522 e PN532 NFC, mostrados anteriormente aqui no blog.

O Leitor RFID 125KHz RDM6300


O módulo RDM6300 é um módulo de leitura de cartões RFID na frequência de 125KHz e utiliza para comunicação a interface serial (UART), que torna a operação desse módulo bastante simples e facilita a conexão com outros equipamentos e microcontroladores que utilizem esse tipo de interface.

O RDM6300 utiliza alimentação de 5V, e na imagem abaixo podemos ver que ele possui dois pinos Vcc e dois pinos GND:

Pinagem módulo RFID RDM6300

Fiz alguns testes e verifiquei que podemos alimentar o módulo usando qualquer conjunto desses pinos, portanto tanto faz se você usar o Vcc e GND na parte superior ou na parte inferior.

O pino LED deu um pouco de trabalho para descobrir a função, devido à falta de documentação desse módulo, mas nesse pino você pode ligar o anodo do led, e o catodo ligar ao negativo com a ajuda de um resistor. A função desse led é piscar quando os dados da tag RFID são acessados, mas aparentemente essa piscada é tão rápida (1ms) que não pode ser observada a olho nu. Uma sugestão é usar esse pino led para acionar uma interrupção do Arduino e fazer com que ele emita algum tipo de aviso de leitura.

Antena externa RDM6300


Na pinagem do lado inferior esquerdo podemos ver o conector para antena externa. Esse tipo de antena facilita os projetos com esse leitor RFID, já que o módulo e demais componentes (como o Arduino) podem ficar separados e protegidos em uma caixa deixando apenas a antena aparente.

Conexão do RDM6300 no Arduino


Nós vamos testar esse módulo com Arduino conectando os pinos RX e TX nas portas digitais 2 e 3, e emulando uma serial nesses pinos usando a biblioteca SoftwareSerial, deixando a serial por hardware (pinos 0 e 1 do Arduino) livre para comunicação com o computador e enviando dados para o serial monitor.

Circuito Arduino Uno e RDM6300


Para alimentação, optei por usar os pinos Vcc e GND superiores, mas como comentei anteriormente você pode usar qualquer um desses pinos para alimentar o módulo.

Programa leitura tag RFID


Para o programa vamos usar a biblioteca RDM6300 que está disponível neste link. Descompacte a pasta e coloque-a dentro da pasta LIBRARIES da IDE do Arduino. A biblioteca SoftwareSerial, usada para emular uma porta serial nos pinos 2 e 3, já está embutida na IDE do Arduino.

 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
//Programa: Leitor RFID RDM6300
//Alteracoes e adaptacoes: Arduino e Cia

//Baseado no programa original de Stephane Driussi

#include <SoftwareSerial.h>
#include <RDM6300.h>

//Inicializa a serial nos pinos 2 (RX) e 3 (TX)
SoftwareSerial RFID(2, 3);

int Led = 13;
uint8_t Payload[6]; // used for read comparisons

RDM6300 RDM6300(Payload);

void setup()
{
  pinMode(Led, OUTPUT);
  //Inicializa a serial para o leitor RDM6300
  RFID.begin(9600);
  //Inicializa a serial para comunicacao com o PC
  Serial.begin(9600);
  //Informacoes iniciais
  Serial.println("Leitor RFID RDM6300\n");
}

void loop()
{
  //Aguarda a aproximacao da tag RFID
  while (RFID.available() > 0)
  {
    digitalWrite(Led, HIGH);
    uint8_t c = RFID.read();
    if (RDM6300.decode(c))
    {
      Serial.print("ID TAG: ");
      //Mostra os dados no serial monitor
      for (int i = 0; i < 5; i++) {
        Serial.print(Payload[i], HEX);
        Serial.print(" ");
      }
      Serial.println();
    }
  }
  digitalWrite(Led, LOW);
  delay(100);
}

O programa é bem enxuto e efetua a leitura da porta serial até que algum cartão seja colocado próximo à antena. Quando isso acontece, o ID da tag é enviada para o serial monitor:



10 comentários:

  1. Bom dia amigos com essa antena o alcance aumentaria?
    Preciso de uma distância de 3m.

    ResponderExcluir
    Respostas
    1. Oi Giorgio,

      Infelizmente o alcance do módulo é de alguns poucos cm (mm?) mesmo.

      Abraço!

      Adilson

      Excluir
  2. Ola amigo
    Sou estudante do curso de Energias Renováveis queria ajuda com alguns codigos se fosse possível

    ResponderExcluir
    Respostas
    1. Oi Elton,

      Ajudo sim, entre em contato utilizando o formulário de contato no lado direito da página. Conversamos por email.

      Abraço!

      Adilson

      Excluir
  3. Como posso gravar as ID nos chaveiros ?

    ResponderExcluir
    Respostas
    1. Oi Mauro,

      Esse módulo é de apenas leitura. E para gravar você também vai precisar de tags regraváveis, ok?

      Abraço!

      Adilson

      Excluir
  4. Bom dia, gostaria de saber qual programa você usa para simular esses circuitos, pois parece ser o tinkercad (que antes era o autocad), mas já cansei de procurar leitores rfid por lá.

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Para os circuitos eu uso o Fritzing: fritzing.org

      Abraço!

      Adilson

      Excluir
  5. não consigo instalar a Biblioteca, alguma sugestão?

    ResponderExcluir
  6. Qual distância máxima da antena?

    Alguém indica algum módulo RFID para 5 metros por exemplo. Já usei Leitor RFID a distância com Wiegand26. Queria saber se existe alguma intermediária.

    ResponderExcluir