Wednesday, August 6, 2025

Hriday 7A : RFID Smart Attendance system

 #include <SPI.h>

#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// LCD: I2C address 0x27, 16 columns, 2 rows
LiquidCrystal_I2C lcd(0x27, 16, 2);

// RFID module pins
#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);

// Hriday's RFID UID (change based on your actual card)
byte hridayUID[] = {0x5A, 0xAC, 0x10, 0x5}; // Example UID

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();

  lcd.begin(16, 2);
  lcd.backlight();

  Serial.println("RFID Attendance System Ready");
  lcd.setCursor(0, 0);
  lcd.print("Scan your card");
}

void loop() {
  // Check if a new card is present
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
    return;
  }

  Serial.print("Scanned UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print("0x");
    Serial.print(rfid.uid.uidByte[i], HEX);
    if (i < rfid.uid.size - 1) Serial.print(", ");
  }
  Serial.println();

  // Compare UID with Hriday's UID
  if (checkUID(rfid.uid.uidByte, rfid.uid.size, hridayUID, sizeof(hridayUID))) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Name: Hriday");
    lcd.setCursor(0, 1);
    lcd.print("Class 7A present Today");
    Serial.println("Attendance marked: Hriday - Class 7A");
  } else {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Unknown Card");
    Serial.println("Unknown card scanned.");
  }

  delay(3000); // Wait before allowing next scan
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Scan your card");

  rfid.PICC_HaltA();        // Stop reading
  rfid.PCD_StopCrypto1();   // Stop encryption
}

bool checkUID(byte *uid, byte uidSize, byte *targetUID, byte targetSize) {
  if (uidSize != targetSize) return false;
  for (byte i = 0; i < uidSize; i++) {
    if (uid[i] != targetUID[i]) return false;
  }
  return true;
}













Pin descriptin:




ComponentArduino PinNotes
RC522 RFID
SDA (SS)10SPI slave select
SCK13SPI clock
MOSI11SPI Master Out Slave In
MISO12SPI Master In Slave Out
RST9Reset pin
3.3V3.3VDo NOT use 5V (may damage RC522)
GNDGNDGround
I2C LCD
SDAA4I2C Data
SCLA5I2C Clock
VCC5VPower supply
GNDGNDGround

No comments:

Post a Comment

MUD Three Mode operation Manual Automatic GPS

 Code for three mode operation: /*   3-Mode Headlight Controller   - Manual mode (driver uses a toggle to pick high/low)   - Auto mode (LDR...