1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
| #include <SPI.h>
#include <RFID.h>
#include <Wire.h>
#include "rgb_lcd.h"
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);
rgb_lcd lcd;
const int relaisPin = 8;
const int colorR = 255;
const int colorG = 155;
const int colorB =30;
int serNum[5];
int card1[][5] = {{32,149,77,109,149}};
int card2[][5] = {{156,160,140,171,27}};
int access1 = false;
int access2 = false;
void setup(){
Serial.begin(9600);
SPI.begin();
rfid.init();
pinMode(relaisPin, OUTPUT);
lcd.begin(16, 2); //Implantation du nombre de colonnes et de lignes du LCD
lcd.setRGB(colorR, colorG, colorB); //Changement des couleurs selon les variables définies précedement
lcd.print("Veuillez montrer"); //Ecriture d'un message sur le LCD
lcd.setCursor(2, 1); //Le prochain message s'affichera à partir de la 2e colonne puis la 2e ligne
lcd.print("votre badge");
}
void loop(){
if(rfid.isCard()){
if(rfid.readCardSerial()){
Serial.print(rfid.serNum[0]);
Serial.print(" ");
Serial.print(rfid.serNum[1]);
Serial.print(" ");
Serial.print(rfid.serNum[2]);
Serial.print(" ");
Serial.print(rfid.serNum[3]);
Serial.print(" ");
Serial.print(rfid.serNum[4]);
Serial.println("");
for(int x = 0; x < sizeof(card1); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != card1[x][i]) {
access1 = false;
Serial.println("Acces carte 1 invalide");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Acces refuse");
delay(2000);
lcd.clear();
delay (2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
}
else {
access1 = true;
Serial.println("Acces carte 1 valide");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Bienvenue Paul");
delay(2000);
lcd.clear();
delay(1000);
digitalWrite(relaisPin, HIGH); //Passage du relai à l'état haut
delay (2000);
digitalWrite(relaisPin, LOW); //Passage du relai à l'état bas
delay(2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
}
if(access1) break;
}
break;
}
}
}
if(rfid.isCard()){
if(rfid.readCardSerial()){
Serial.print(rfid.serNum[0]);
Serial.print(" ");
Serial.print(rfid.serNum[1]);
Serial.print(" ");
Serial.print(rfid.serNum[2]);
Serial.print(" ");
Serial.print(rfid.serNum[3]);
Serial.print(" ");
Serial.print(rfid.serNum[4]);
Serial.println("");
for(int x = 0; x < sizeof(card2); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != card2[x][i]) {
access2 = false;
Serial.println("Acces carte 2 invalide");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Acces refuse");
delay(2000);
lcd.clear();
delay (2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
}
else {
access2 = true;
Serial.println("Acces carte 2 valide");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Bienvenue Paul");
delay(2000);
lcd.clear();
delay(1000);
digitalWrite(relaisPin, HIGH); //Passage du relai à l'état haut
delay (2000);
digitalWrite(relaisPin, LOW); //Passage du relai à l'état bas
delay(2000);
lcd.print("Veuillez montrer");
lcd.setCursor(2, 1);
lcd.print("votre badge");
}
if(access2) break;
}
break;
}
}
}
rfid.halt();
} |