Buondì,
Sono un neofita del mondo Arduino e i problemi si presentano fin dall'inizio!
Possiedo una scheda arduino UNO r3 e tutti gli impicci relativi dei più classici starter-kit in vendita (jumper, reistenze, etc.).
Siccome vorrei realizzare un simpatico progetto da portare per l'Esame di Automatica, allora ho anche acquistato l'RFID-UART, con relatice Schede e Tag.
Voglio provare le potenzialità di questo aggeggio, quindi voglio testare una cosa semplice-semplice!
I collegamenti sono i seguenti:
Pin 1 dell'RFID a TX di Arduino
Pin 2 dell'RFID a niente
Pin 3 dell'RFID a niente
Pin 4 dell'RFID a GND di Arduino
Pin 5 dell'RFID a +5 V di Arduino
Questo è il codice
#include <SoftwareSerial.h>
#define ADD_TAG_CODE "210014DFE309"
#define DEL_TAG_CODE "210014E2BD6A"
SoftwareSerial rfid = SoftwareSerial(5, 6);
String msg;
String ID ; //string to store allowed cards
void setup()
{
Serial.begin(9600);
Serial.println("Serial Ready");
rfid.begin(9600);
Serial.println("RFID Ready");
}
char c;
void loop(){
while(rfid.available()>0){
c=rfid.read();
msg += c;
Serial.println(msg);
Serial.println(msg.length());
}
msg=msg.substring(1,13);
if(msg.indexOf(ADD_TAG_CODE)>=0) add();
else if(msg.indexOf(DEL_TAG_CODE)>=0) del();
else if(msg.length()>10) verifica();
msg="";
}
void add(){
Serial.print("Quale TAG deve ottenere l'accesso?: ");
msg="";
while(msg.length()<13){
while(rfid.available()>0){
c=rfid.read();
msg += c;
}
}
if(ID.indexOf(msg)>=0) {
Serial.println("\nAccesso consentito per questa TAG.");
msg="";
}
else{
Serial.print("Tessera: ");
Serial.println(msg);
ID += msg;
ID += ",";
//Serial.print("ID: ");
// Serial.println(ID);
msg="";
Serial.println("Accesso Garantito per questa Tessera.");
}
}
void del(){
msg="";
Serial.print("Quale Tag deve perdere l'accesso?: ");
while(msg.length()<13){
while(rfid.available()>0){
c=rfid.read();
msg += c;
}
}
msg=msg.substring(1,13);
if(ID.indexOf(msg)>=0){
Serial.println(msg);
Serial.println("TAG trovata. Accesso eliminato.");
//ID.replace(card,"");
int pos=ID.indexOf(msg);
msg="";
msg += ID.substring(0,pos);
msg += ID.substring(pos+15,ID.length());
ID="";
ID += msg;
//Serial.print("ID: ");
//Serial.println(ID);
} else Serial.println("\nTAG non trovata... Operazione non completata!");
msg="";
}
void verifica(){
msg=msg.substring(1,13);
if(ID.indexOf(msg)>=0) Serial.println("Accesso Consentito!!!");
else Serial.println("Access Negato!!!");
Risultato? Sulla schermata del Seriale non ricevo niente (A parte le scritte Serial Ready e RFID ready...)
Per fare delle prove, ho anche collegato il Pin 2 dell'RFID a RX di Arduino, ma mi rendeva impossibile caricare il codice sulla scheda Arduino!
Ho staccato quindi il collegamento del Pin 2->Rx, ho caricato il codice, quindi ho effettuato nuovamente il collegamento: niente da fare!
Se i collegamenti che ho riportato sono poco chiari posso allegare una foto (giusto il tempo di trovare la macchinetta fotografica^^").
Le fonti che ho utilizzato sono le seguenti:
http://www.instructables.com/id/Arduino-and-RFID-from-seeedstudio/step1/What-you-gonna-need/
Questo è il video di ciò che vorrei ottenere:
http://www.youtube.com/watch?v=upQv4rT0Rb4