// modified by kj electronics //youtube: "kj electronics" #include #include SoftwareSerial newSerial = SoftwareSerial(7, 8);//NEW SERIAL PORT FOR RFID String CARD; char temp; LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int led_access=9; int led_denied=10; int a=13; #define MASTER_ADD "0003437143" #define MASTER_DELETE "0003431606" String DATA ; void setup() { lcd.begin(16, 2); newSerial.begin(9600); pinMode(led_access,OUTPUT); pinMode(led_denied,OUTPUT); pinMode(a,OUTPUT); } void loop(){ lcd.write("DEVICE READY "); lcd.setCursor(1,1); lcd.write("SCAN CARD "); lcd.setCursor(1,2); delay(100); lcd.clear(); while(newSerial.available()>0) { temp=newSerial.read(); CARD += temp; } CARD=CARD.substring(1,13); if(CARD.indexOf(MASTER_ADD)>=0) adding(); else if(CARD.indexOf(MASTER_DELETE)>=0) deleting(); else if(CARD.length()>10) RESULTS(); CARD=""; } void adding(){ lcd.write("ADDING THE CARD"); CARD=""; while(CARD.length()<13){ while(newSerial.available()>0){ temp=newSerial.read(); CARD += temp; } } if(DATA.indexOf(CARD)>=0) { lcd.clear(); lcd.write("ALREADY ADDED"); CARD=""; rgblink(); } else{ DATA += CARD; DATA += ","; CARD=""; lcd.clear(); lcd.write("CARD ADDED"); indication(); } } void deleting(){ CARD=""; lcd.write("DELETE THE CARD"); while(CARD.length()<13){ while(newSerial.available()>0){ temp=newSerial.read(); CARD += temp; } } CARD=CARD.substring(1,13); if(DATA.indexOf(CARD)>=0){ lcd.clear(); lcd.write("CARD DELETED"); indication(); int pos=DATA.indexOf(CARD); CARD=""; CARD += DATA.substring(0,pos); CARD += DATA.substring(pos+15,DATA.length()); DATA=""; DATA += CARD; } else { lcd.clear(); lcd.write("CARD NOT FOUND"); rgblink(); } CARD=""; } void RESULTS(){ CARD=CARD.substring(1,13); if(DATA.indexOf(CARD)>=0) { lcd.write("-ACCESS GRANTED-"); lcd.setCursor(1,1); lcd.write("---WELCOME-----"); lcd.setCursor(2,1); digitalWrite(led_access,HIGH); delay(3000); digitalWrite(led_access,LOW); } else { lcd.write("--ACCESS DENIED-"); lcd.setCursor(1,1); lcd.write("CARD NOT FOUND-"); lcd.setCursor(5,2); digitalWrite(led_denied,HIGH); delay(3000); digitalWrite(led_denied,LOW);} } void indication() { digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); digitalWrite(led_access,HIGH); delay(100); digitalWrite(led_access,LOW); digitalWrite(a,HIGH); delay(100); digitalWrite(a,LOW); digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); digitalWrite(led_access,HIGH); delay(100); digitalWrite(led_access,LOW); digitalWrite(a,HIGH); delay(100); digitalWrite(a,LOW); digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); digitalWrite(led_access,HIGH); delay(100); digitalWrite(led_access,LOW); digitalWrite(a,HIGH); delay(100); digitalWrite(a,LOW); digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); digitalWrite(led_access,HIGH); delay(100); digitalWrite(led_access,LOW); digitalWrite(a,HIGH); delay(100); digitalWrite(a,LOW); digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); lcd.clear(); } void rgblink() { digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); delay(100); digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); delay(100); digitalWrite(led_denied,HIGH); delay(100); digitalWrite(led_denied,LOW); delay(100); digitalWrite(led_access,HIGH); digitalWrite(a,HIGH); delay(200); digitalWrite(a,LOW); digitalWrite(led_access,LOW); delay(200); digitalWrite(led_access,HIGH); digitalWrite(a,HIGH); delay(200); digitalWrite(a,LOW); digitalWrite(led_access,LOW); delay(200); }