RFID based road Barrier

 







 Connection Diagram










                  CODE

//Viral Science

//RFID

#include <SPI.h>

#include <MFRC522.h>

#include <Servo.h>

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x27,16,2);

#define SS_PIN 10

#define RST_PIN 9

#define LED_G 5 //define green LED pin

#define LED_R 4 //define red LED

#define BUZZER 2 //buzzer pin

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

Servo myServo; //define servo name

 

void setup() 

{

  

  Serial.begin(9600);   // Initiate a serial communication

  SPI.begin();// Initiate  SPI bus

  lcd.init();

  lcd.backlight();

  mfrc522.PCD_Init();   // Initiate MFRC522

  myServo.attach(3); //servo pin

  myServo.write(0); //servo start position

  pinMode(LED_G, OUTPUT);

  pinMode(LED_R, OUTPUT);

  pinMode(BUZZER, OUTPUT);

  noTone(BUZZER);

  lcd.setCursor(0,0);

  lcd.print("SCAN YOUR CARD");

  lcd.setCursor(0,1);

  lcd.print("TO THE READER....->");

  Serial.println();

  


}

void loop() 

{

  // Look for new cards

  if ( ! mfrc522.PICC_IsNewCardPresent()) 

  {

    return;

  }

  // Select one of the cards

  if ( ! mfrc522.PICC_ReadCardSerial()) 

  {

    return;

  }

  

  //Show UID on serial monitor

  Serial.print("UID tag :");

  String content= "";

  byte letter;

  for (byte i = 0; i < mfrc522.uid.size; i++) 

  {

     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

     Serial.print(mfrc522.uid.uidByte[i], HEX);

     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));

     content.concat(String(mfrc522.uid.uidByte[i], HEX));

  }

  content.toUpperCase();

  if (content.substring(1) == "34 D6 4A B4") //change here the UID of the card/cards that you want to give access

  {

    

    lcd.clear();

    lcd.setCursor(0,0);

    lcd.print("Authorized Access....");

    lcd.setCursor(3,1);

    lcd.print("WELL COME");

    delay(500);

    digitalWrite(LED_G, HIGH);

    tone(BUZZER, 500);

    delay(300);

    noTone(BUZZER);

    myServo.write(100);

    delay(5000);

    lcd.clear();

    lcd.setCursor(0,0);

    lcd.print("SCAN YOUR CARD");

    lcd.setCursor(0,1);

    lcd.print("TO THE READER....");

    myServo.write(0);

    digitalWrite(LED_G, LOW);

  }

 

 else   {

   

    lcd.clear();

    lcd.setCursor(0,0);

    lcd.print("Access denied...");

    lcd.setCursor(2,1);

    lcd.print("WRONG CARD");

    digitalWrite(LED_R, HIGH);

    tone(BUZZER, 300);

    delay(1000);

    digitalWrite(LED_R, LOW);

    noTone(BUZZER);

    delay(2000);

    lcd.clear();

    lcd.setCursor(0,0);

    lcd.print("SCAN YOUR CARD");

    lcd.setCursor(0,1);

    lcd.print("TO THE READER....");

    }

}

 

 




Post a Comment

Previous Post Next Post

Contact Form