Skip to main content

RFID Main Arduino Code

 #include <Servo.h>

#include <LiquidCrystal_I2C.h>

#include <SPI.h>

#include <MFRC522.h>


#define SS_PIN 10

#define RST_PIN 9

#define buzzer 2

#define servoPin 3


String UID = "93 1C CF A9";//Enter your card or keychain ID

byte lock = 0;


Servo servo;

LiquidCrystal_I2C lcd(0x27, 16, 2);

MFRC522 rfid(SS_PIN, RST_PIN);



void setup() {

  Serial.begin(9600);

  servo.write(45);

  lcd.init();

  lcd.backlight();

  servo.attach(servoPin);

  SPI.begin();

  rfid.PCD_Init();

  pinMode(buzzer, OUTPUT);

}


void loop() {

  lcd.setCursor(4, 0);

  lcd.print("Welcome!");

  lcd.setCursor(1, 1);

  lcd.print("Put your card");


  if ( ! rfid.PICC_IsNewCardPresent())

    return;

  if ( ! rfid.PICC_ReadCardSerial())

    return;


  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("Scanning");

  Serial.print("NUID tag is :");

  String ID = "";

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

    lcd.print(".");

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

    ID.concat(String(rfid.uid.uidByte[i], HEX));

    delay(300);

  }

  ID.toUpperCase();


  if (ID.substring(1) == UID && lock == 0 ) {

    digitalWrite(buzzer, HIGH);

    delay(300);

    digitalWrite(buzzer, LOW);

    servo.write(120);

    delay(100);

    lcd.clear();

    lcd.setCursor(0, 0);

    lcd.print("Locked");

    delay(1500);

    lcd.clear();

    lock = 1;

  } else if (ID.substring(1) == UID && lock == 1 ) {

    digitalWrite(buzzer, HIGH);

    delay(300);

    digitalWrite(buzzer, LOW);

    servo.write(45);

    delay(100);

    lcd.clear();

    lcd.setCursor(0, 0);

    lcd.print("Unlocked");

    delay(1500);

    lcd.clear();

    lock = 0;

  } else {

    lcd.clear();

    lcd.setCursor(0, 0);

    lcd.print("Wrong card!");

    digitalWrite(buzzer, HIGH);

    delay(200);

    digitalWrite(buzzer, LOW);

    delay(200);

    digitalWrite(buzzer, HIGH);

    delay(200);

    digitalWrite(buzzer, LOW);

    delay(200);

    digitalWrite(buzzer, HIGH);

    delay(200);

    digitalWrite(buzzer, LOW);

    delay(200);

    digitalWrite(buzzer, HIGH);

    delay(200);

    digitalWrite(buzzer, LOW);

    delay(200);

    delay(1500);

    lcd.clear();

  }

Comments

Popular posts from this blog

Solar Tracking System

Dual-Axis Solar Tracking System | Arduino SimpleCircuits Arduino Solar DIY Renewable Energy Project Dual-Axis Solar Tracking System Build a high-performance solar tracker that follows the sun in real-time. Four LDR sensors, an Arduino UNO, and two servo motors — boosting energy capture by up to 40% versus fixed mounts. 40% More Efficient 4 LDR Sensors 2 Servo Axes <300mA Power Draw Finished Build System Overview How the System Works The tracker reads the sky through four LDR sensors placed around the panel, computes intensity deltas, and drives two SG90 servos in a real-time closed loop — keeping the panel perpendicular to sunlight from sunrise to sunset. ...

Arduino Code Car Parking System

 // Created by Simple Circuits  #include <Wire.h>  #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2);    #include <Servo.h>  Servo myservo; int IR1 = 2; int IR2 = 3; int Slot = 4;           //Total number of parking Slots int flag1 = 0; int flag2 = 0; void setup() {   Serial.begin(9600);      lcd.init(); //initialize the lcd     lcd.backlight(); //open the backlight     pinMode(IR1, INPUT); pinMode(IR2, INPUT);    myservo.attach(4); myservo.write(100); lcd.setCursor (0,0); lcd.print("     ARDUINO    "); lcd.setCursor (0,1); lcd.print(" PARKING SYSTEM "); delay (2000); lcd.clear();   } void loop(){  if(digitalRead (IR1) == LOW && flag1==0){ if(Slot>0){flag1=1; if(flag2==0){myservo.write(0); Slot = Slot-1;} }else{ lcd.setCursor (0,0); lcd.print("    SORRY :(    ");   lc...

Arduino Code

 //define Pins #include <Servo.h> Servo servo; int trigPin = 11; int echoPin = 12; // defines variables long duration; int distance; void setup()  {   servo.attach(13);   servo.write(180);  delay(2000);    // Sets the trigPin as an Output pinMode(trigPin, OUTPUT); // Sets the echoPin as an Input  pinMode(echoPin, INPUT); } void loop()  { // Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance distance= duration*0.034/2; // Prints the distance on the Serial Monitor Serial.print("Distance: "); Serial.println(distance); if ( distance <= 25   ) // Change Distance according to Ultrasonic Sensor Placement  { servo.write(180); delay(3000); ...