Projet 7 – RFID 2 + Son

 

Open RFID

Dans le cadre de ce TP, il s’agira d’utiliser Arduino afin de créer un objet interactif.

J’ai choisi de créer un lecteur de carte RFID dans un premier temps avec une led s’allumant au passage de la carte.

Suite à la réussite de la première étape, j’ai alors ajouté une mélodie au passage de la carte contenant une puce RFID.

Afin de mener à bien ce projet j’ai utilisé le logiciel Arduino qui m’a servi

pour repérer les différents composants et leurs donner un comportement

au passage des cartes RFID sur le lecteur de carte.

 

CODE SOURCE

#include <SoftwareSerial.h>

#define RFIDEnablePin 2 //pin qui permet la lecture. Configuré en OUTPUT et LOW pour lire une puce RFID
#define RFIDSerialRate 2400 //Parallax RFID lecteur Serial Port Speed

//On utilise la librairie SoftwareSerial afin de localiser le serial pins off configuré par défaut
//Ceci permet à l’arduino d’être à jour pour le cable USB sans créer de conflit
#define RxPin 5 //Pin afin de lire les données du lecteur
#define TxPin 4 //Pin afin d’écrire les données dans le lecteur RMQ: le lecteur ne prends pas en écriture, ne pas connecter cette ligne
SoftwareSerial RFIDReader (RxPin, TxPin);

String RFIDTAG = » »; //Garder le code RFID lu par un TAG
String DisplayTAG = «  »; //Garder le dernier TAG RFID
String TrueTAG = « 2C00AC2564″;

int led = 13;
int speaker = 9; //Speaker

void setup()
{
//Lecteur RFID SOUT pin connecté au serial RX pin à 2400bps
RFIDReader.begin(RFIDSerialRate);

// Configure le lecteur SOUT pin en le connectant au RFID/ENABLE pin
pinMode(RFIDEnablePin,OUTPUT);
pinMode(led, OUTPUT);

// Active le lecteur RFID
// On configure le  HIGH qui va désactiver le lecteur
// qui pourra être utile si on veut récupérer de la batterie
// par exemple
digitalWrite(RFIDEnablePin, LOW);

Serial.begin(9600);     // Configure la librairie serial à 9600bps

Serial.println(« Please Scan Card »); // Lance hello à la fin de la ligne de commande
pinMode(speaker, OUTPUT);

}

void loop()
{

if(RFIDReader.available() > 0) // Si les données sont disponibles depuis le lecteur
{
ReadSerial(RFIDTAG); // Lecture du numéro de TAG depuis le lecteur. Il devrait à 10 numéro de série numérique
}

// Cela désactive uniquement un TAG unique, sans qu’un autre TAG ne soit scanné
if(DisplayTAG!=RFIDTAG)
{
DisplayTAG=RFIDTAG;
Serial.println(RFIDTAG);
digitalWrite(led, HIGH); // Active la LED
delay(500);
// Lancement de la mélodie
melodieLancement();
delay(2000);

digitalWrite(led, LOW);
}

}

void ReadSerial(String &ReadTagString)
{
int bytesread = 0;
int  val = 0;
char code[10];
String TagCode= » »;

if(RFIDReader.available() > 0) {          // Si les données sont disponibles depuis le lecteur
if((val = RFIDReader.read()) == 10) {   // Vérifie l’entête du code
bytesread = 0;
while(bytesread<10) {                 // Lit la série des 10 chiffre numériques
if( RFIDReader.available() > 0) {
val = RFIDReader.read();
if((val == 10)||(val == 13)) {   // Si l’entête ou le stop bytes arrête la lecture avant la lecture de l’ensemble des 10 chiffres
break;                         // Arrêt de la lecture
}
code[bytesread] = val;           // Ajout des digit
bytesread++;                     // prêt à lire les digit
}
}
if(bytesread == 10) {                // si la lecture des 10 digit est complète

for(int x=0;x<10;x++)              // Transvase les CHars en String
{
TagCode += code[x];
}
ReadTagString = TagCode;          // mise à jour de l’écouteur
while(RFIDReader.available() > 0) // transforme tous les caractères encore dans le buffer
{
RFIDReader.read();
}

}
bytesread = 0;
TagCode= » »;
}
}
}

void melodieLancement()
{
//StarWars2
tone(speaker, 440);
delay(500);
tone(speaker, 440);
delay(500);
tone(speaker, 440);
delay(500);
tone(speaker, 349);
delay(350);
tone(speaker, 523);
delay(150);
tone(speaker, 440);
delay(500);
tone(speaker, 349);
delay(350);
tone(speaker, 523);
delay(150);
tone(speaker, 440);

delay(650);
noTone(speaker);
}

Laisser un commentaire

Votre e-mail ne sera jamais publié ni communiqué.

Vous pouvez utiliser ces balises et attributs HTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>