RFID com Arduino

 

O Leitor RFID utilizado neste tutorial é o Starter Kit da SparkFun disponível na Loja LdG 

Conecte o Leitor ID12 na placa fornecida e faça a seguinte ligação:

 

Adquira estes componentes na Loja do Lab de Garagem

Agora, abra a IDE do Arduino e coloque a seguinte programação para o Arduino:

 

#include <SoftwareSerial.h>

 

SoftwareSerial rfidReader(2, 3); //Pin 2 - RX /Pin 3 - TX

char c= 0; // value read for serial port

char temp[20]=0;

int z=0;

int y=0;

char* cards[] = { // put your ID Card

  //Example:

  "3E00274AD9"

};

 

void setup() {

    Serial.begin(9600); //setup the Serial speed

    rfidReader.begin(9600);  //setup the Rfid reader speed

}

 

void loop () {

 

  z=0;

  if(Serial.available() > 0) {

  

  c = Serial.read(); // read from the serial port

  temp[z]=c; //put the character on temporary variable

  Serial.print(c, BYTE); // Use Serial.write(c) for IDE 1.0 and print it to the monitor 

  z=z+1;

  }

  for(int x=0;x<13;x++)

  {

   if(temp[0]==cards[0])

  {

   y=y+1;

  }

  

  }

 if(y==12)

  {

   Serial.println("ok");

  Serial.print("Valid");

  }

 else if (y!=12)

  {

  Serial.println(“Not Valid”);

  }

}

Clique em Upload e depois abra o Serial Monitor e passe o cartão com a ID que foi escrita acima. Se estiver certo, aparecerá “ok” e depois “Valid”, senão aparecerá “Not Valid”.

 

Referências:

http://arduino.cc/playground/Code/ID12

http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/

http://www.sparkfun.com/products/9875

Exibições: 17409

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Gabriel Vaghetti de Oliveira em 6 junho 2015 às 16:03

e com o rfid mfrc522, alguem sabe como ficaria o codigo?

Comentário de Caique Portella em 7 outubro 2013 às 13:20

Esse script tem alguns erros, resolvi alguns mas esses persistem:


sketch_oct07a:5: error: array must be initialized with a brace-enclosed initializer
sketch_oct07a.ino: In function 'void loop()':
sketch_oct07a:30: error: ISO C++ forbids comparison between pointer and integer

A linha 5 é essa:  char temp[20]=0;

E o erro da linha 30 tem haver com o erro anterior, pois nela contem uma condição que utiliza a variável citada.

Alguem pode resolver??

Comentário de Hericles Cordeiro em 13 maio 2013 às 1:06

Pra quem tem dúvidas, Software Serial é uma biblioteca, caso de erro, instale-a ... (costuma já vir com o IDE)

Comentário de Claudio Gularte Junior em 3 maio 2013 às 23:17

Felipe,

Não sei dizer, mas acho que cada tag tem seu código. Tem que dar uma pesquisada no google.

Você  já descobriu como funciona?

Comentário de Claudio Gularte Junior em 3 maio 2013 às 23:16

Sidney,

Acabei não usando biblioteca nenhuma. Li o datasheet do meu leitor de RFiD e criei o código para fazer a leitura.

Algumas vezes o caminho mais rápido não é o melhor.

Obrigado por perguntar. 

Comentário de Sidney Alves Bastos em 3 maio 2013 às 22:44

Claudio,

vc resolveu o problema? Pelo que vejo vc não instalou uma biblioteca na pasta certa.

Comentário de Felipe Oliveira da Silva em 3 maio 2013 às 18:56

Olá,

Todo cartão RFID 125mhz tem um ID único?

Pergunto isso porque quero comprar o kit "http://www.labdegaragem.org/loja/index.php/32-kits/rfid-starter-kit.html" mas minha dúvida é se depois quando comprar os cartões separados se terei algum problema de duplicação.

Obrigado,

Felipe

Comentário de Claudio Gularte Junior em 21 abril 2013 às 23:15

Estou com este erro, Alguma ideia do que pode ser  Hericles Cordeiro?

Comentário de Hericles Cordeiro em 31 agosto 2012 às 23:44

Para quem precisar vou passar a simples correção (parte funcional), para implementar é com vocês (claro que se precisar de ajuda pode perguntar, mas esse código é para testar o funcionamento)

#include <SoftwareSerial.h>

SoftwareSerial rfidReader(2, 3); //Pin 2 - RX /Pin 3 - TX
char c= 0; // value read for serial port

void setup() {
Serial.begin(9600); //setup the Serial speed
rfidReader.begin(9600); //setup the Rfid reader speed
}

void loop () {

if (rfidReader.available() > 0) {

c = rfidReader.read(); // read from the serial port
Serial.print(c); // Use Serial.write(c) for IDE 1.0 and print it to the monitor
}

}

Comentário de Hericles Cordeiro em 31 agosto 2012 às 23:06

O código tem vários erros, precisamos de um Recall ... Por favor, alguém :)

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço