include
include
include
include
include "pitches.h"
define SS_PIN 10
define RST_PIN 9
define SERVO_PIN 3
define R_LED 7
define L_LED 6
define Buzzer 8
LiquidCrystal lcd(A0, A1, A2, A3, A4,A5); Servo DoorLock; MFRC522 rfid(SS_PIN, RST_PIN );
int My_RFID_Tag[5] = {194 ,82 ,19 ,27};
boolean My_Card = false;
int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 };
int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 };
void setup() { pinMode(R_LED,OUTPUT); pinMode(L_LED,OUTPUT); pinMode(4,OUTPUT); pinMode(2,OUTPUT); pinMode(Buzzer,OUTPUT);
DoorLock.attach(SERVO_PIN);
Serial.begin(9600);
lcd.begin(16,2);
SPI.begin(); rfid.PCD_Init(); } int count=0,ST=0; void loop() {
My_Card = true; DoorLock.write(0); lcd.clear(); lcd.print("HELLO");
if( rfid.PICC_IsNewCardPresent() )
{
if( rfid.PICC_ReadCardSerial() )
{
lcd.clear();
lcd.print("UNIQUE ID is:- ");
delay(500);
lcd.setCursor(0,1);
for( int i = 0; i < 5; i++ )
{
Serial.print( rfid.uid.uidByte[i], HEX);
Serial.print(" ");
lcd.print( rfid.uid.uidByte[i],HEX);
lcd.print(" ");
}
delay(500);
for(int i = 0; i < 5; i++)
{
if( My_RFID_Tag[i] != rfid.uid.uidByte[i] )
{
My_Card = false;
break;
}
}
Serial.println();
delay(1000);
if(My_Card)
{
Serial.println("\nWelcome To Your Room");
lcd.clear();
lcd.print("Welcome to Your");
lcd.setCursor(0,1);
lcd.print("Room");
delay(2000);
digitalWrite(R_LED,HIGH);
digitalWrite(2,HIGH);
DoorLock.write(180);
delay(200);
ST=ST+1;
int i = 0;
while(i < 2)
{
for (int thisNote = 0; thisNote < 12; thisNote++)
{
int noteDuration = 1000 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(8);
}
i = i + 1;
delay(500);
}
delay(1000);
DoorLock.write(180);
delay(200);
lcd.clear();
lcd.print("Door is Open");
lcd.setCursor(0,1);
lcd.print("Now!");
delay(2000);
lcd.clear();
for(int i = 10; i > 0; i--)
{
lcd.print("Door will close");
lcd.setCursor(0,1);
lcd.print("in ");
lcd.print(i);
lcd.print(" Sec.HurryUp!");
delay(1000);
lcd.clear();
}
DoorLock.write(0);
delay(200);
lcd.clear();
lcd.print("Door is Close");
lcd.setCursor(0,1);
lcd.print("Now!");
delay(2000);
}
else
{
Serial.println("\nGet Out of Here !");
lcd.clear();
lcd.print("Card isNOT FOUND!");
lcd.setCursor(0,1);
lcd.print("Get Out of Here!");
for(int i = 0; i < 7; i++)
{
digitalWrite(Buzzer, HIGH);
delay(500);
digitalWrite(Buzzer, LOW);
delay(500);
}
delay(1000);
}
if(digitalRead(4)==1){
count=count+1;
if(ST==4)
{DoorLock.write(0);
delay(200);
lcd.print("no space");
lcd.clear();}
if(count>4){
count=count-1;
if(count=0)
{digitalWrite(R_LED,LOW);
digitalWrite(2,LOW);}
delay(200);}
}
} rfid.PICC_HaltA(); }}
Log in or sign up for Devpost to join the conversation.