RFID com Arduino
Dia desses alunos me pediram ajuda com um projeto de TCC: uma ferramentaria com acesso e empréstimo de ferramentas controlada por RFID.
Eles compraram o RFID Starter Kit da SparkFun, e eu me pus a testá-lo. Muito, muito simples.
O kit tem uma saída USB para ligação no PC. Funciona nos moldes da conexão USB do Arduino, ou seja, na verdade a comunicação é feita com o protocolo serial. Para testá-la nesse modo basta vc baixar algum programa gratuito desses de terminal TTY. As versões mais antigas do Windows (antes do Vista) vinham com o HyperTerminal, mas agora ele é vendido separadamente pela Hilgraeve.
Tem alternativa free? Claro, várias. Uma delas, a que usei, é o TeraTerm. É só baixar e instalar. Em seguida, conecte o kit RFID na porta USB do seu micro. Abra o TeraTerm,configurando o acesso serial e a porta correta:
No meu caso, COM4.
Depois do Ok, basta aproximar as tags do kit e o ID é exibido no terminal:
Eles compraram o RFID Starter Kit da SparkFun, e eu me pus a testá-lo. Muito, muito simples.
O kit tem uma saída USB para ligação no PC. Funciona nos moldes da conexão USB do Arduino, ou seja, na verdade a comunicação é feita com o protocolo serial. Para testá-la nesse modo basta vc baixar algum programa gratuito desses de terminal TTY. As versões mais antigas do Windows (antes do Vista) vinham com o HyperTerminal, mas agora ele é vendido separadamente pela Hilgraeve.
Tem alternativa free? Claro, várias. Uma delas, a que usei, é o TeraTerm. É só baixar e instalar. Em seguida, conecte o kit RFID na porta USB do seu micro. Abra o TeraTerm,configurando o acesso serial e a porta correta:
No meu caso, COM4.
Depois do Ok, basta aproximar as tags do kit e o ID é exibido no terminal:
Agora, vamos ao Arduino.
Para usar o kit é necessário soldar pinos ou fios à plaquinha. No mínimo os terminais Vcc, Gnd e TX são utilizados. Olhando-se a plaquinha "por baixo" (do lado oposto ao sensor, o cubo escuro escrito ID-12 Innovations) pode-se ver a legenda da pinagem.
Soldados os pinos, conecte-os aos respectivos pinos no Arduino. Eu usei como pino de dados o pino 9 do Arduino, conforme figura:
Abaixo, vídeo da bagaça funcionando. Mais abaixo ainda, o código fonte. O interessante do fonte é o trabalho com duas portas seriais, uma para comunicação com o kit e outra para comunicação com o PC. Nesse caso, temos que usar a lib SoftSerial.h e criar uma outra porta, mySerialPort no meu caso. Eu usei o mesmo Tera Term para ler a saída do Arduino, mas claro que poderia ter usado o Serial Monitor do Arduino.
Moleza, não?
#include <SoftwareSerial.h>
const int SerInToArdu=9;
const int SerOutFrmArdu=3;
SoftwareSerial mySerialPort(SerInToArdu,SerOutFrmArdu);
String tagID = "";
void setup()
{
Serial.begin(9600);
Serial.println("Aproxime uma tag RFID do leitor...");
mySerialPort.begin(9600);
}
void loop()
{
char incomingByte=char(0);
if (mySerialPort.available() > 0)
for (;;)
{
incomingByte = mySerialPort.read();
if (((incomingByte > 47) && (incomingByte < 91)) || (incomingByte == 3))
{
if (incomingByte==3) // fim da transmissão
{
Serial.println(tagID);
tagID="";
break;
}
else
tagID+=char(incomingByte);
}
}
}
Este código funciona com um modulo de RFID-RC522 ?
ResponderExcluirOlha, se a interface dele for serial, muito provavelmente sim.
ExcluirOlá amigo, essa biblioteca SofwtareSerial você baixou onde? O meu esta dizendo que não tem essa biblioteca no diretório e não consigo fazer o download.
ResponderExcluirAntigamente a gente tinha que baixá-la, agora já vem com o Arduino, então deveria funcionar. Veja se tem esse SoftwareSerial.h no diretório do Arduino.
Excluir