#define SS_PIN 10
#define RST_PIN 9
#define RELAY 3 //relay pin
#define BUZZER 2 //buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN); // Branchement du lecteur de carte RC522 sur pin
int led_libre = 5; // Leds indiques si code accept? ou refus?
int led_refuse = 4;
char st[20];
void setup()
{
pinMode(led_libre, OUTPUT);
pinMode(led_refuse, OUTPUT);
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
pinMode(BUZZER, OUTPUT);
noTone(BUZZER);
Serial.begin(9600);
SPI.begin(); // Initie le bus SPI
mfrc522.PCD_Init(); // Initie le lecteur RC522
Serial.println("Approcher la carte du lecteur..."); // Initialise la console
Serial.println();
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent()) // enregistre le rapprochement de la carte
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial()) // lit le code de la carte
{
return;
}
Serial.print("Tag de la carte :");
String conteudo= ""; // affiche le code de la carte sur la console
byte letra;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
conteudo.toUpperCase();
if (conteudo.substring(1) == "BE 00 B3 89") // copier ici le code de la carte
{
digitalWrite(led_libre, HIGH);
digitalWrite(RELAY, HIGH);
Serial.println("Carte 1 - Acces libre !");
Serial.println();
delay(3000); // 3 secondes
digitalWrite(led_libre, LOW); // on ?teind la led verte
digitalWrite(RELAY, LOW);
}
if (conteudo.substring(1) == "76 96 2D AC") // copier ici le code de la carte
{
digitalWrite(led_libre, HIGH);
digitalWrite(RELAY, HIGH);
Serial.println("Carte 3 - Acces libre !");
Serial.println();
delay(3000); // 3 secondes
digitalWrite(led_libre, LOW); // on ?teind la led verte
digitalWrite(RELAY, LOW);
}
if (conteudo.substring(1) == "B3 26 B8 02") // Teste le code d'une mauvaise carte
{
Serial.println("Carte 2 - Acces refuse !"); // on fait clignotter la led rouge
Serial.println();
for (int i= 1; i<5 ; i++)
{
tone(BUZZER, 300);
digitalWrite(led_refuse, HIGH);
delay(200);
digitalWrite(led_refuse, LOW);
delay(200);
noTone(BUZZER);
} }
if (conteudo.substring(1) == "04 D2 B1 99") // Teste le code d'une mauvaise carte
{
Serial.println("Carte 4 - Acces refuse !"); // on fait clignotter la led rouge
Serial.println();
for (int i= 1; i<5 ; i++)
{
tone(BUZZER, 300);
digitalWrite(led_refuse, HIGH);
delay(200);
digitalWrite(led_refuse, LOW);
delay(200);
noTone(BUZZER);
} } }