#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
#define GREEN_LED_PIN 7
#define RED_LED_PIN 6
#define BUZZER_PIN 5
MFRC522 rfid(SS_PIN, RST_PIN);
// Yetkili kart ID'lerini buraya ekleyebilirsiniz (örnek: "04AABBCCDDEE")
String authorizedCards[] = {"04AABBCCDDEE", "039D4C2B5F"};
int numAuthorizedCards = sizeof(authorizedCards) / sizeof(authorizedCards[0]);
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(RED_LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
Serial.println("RFID sistemi hazır.");
}
void loop() {
if (rfid.PICC_IsNewCardPresent()) {
if (rfid.PICC_ReadCardSerial()) {
String cardID = "";
for (byte i = 0; i < rfid.uid.size; i++) {
cardID += String(rfid.uid.uidByte[i] < 0x10 ? "0" : "");
cardID += String(rfid.uid.uidByte[i], HEX);
}
cardID.toUpperCase();
Serial.print("Kart ID: ");
Serial.println(cardID);
// Kartı yetkili kartlar listesi ile karşılaştırıyoruz
if (isAuthorized(cardID)) {
Serial.println("Erişim izni verildi!");
digitalWrite(GREEN_LED_PIN, HIGH);
tone(BUZZER_PIN, 1000, 200); // 200ms süreyle buzzer çalıştır
delay(1000);
digitalWrite(GREEN_LED_PIN, LOW);
} else {
Serial.println("Erişim izni reddedildi!");
digitalWrite(RED_LED_PIN, HIGH);
tone(BUZZER_PIN, 2000, 500); // 500ms süreyle buzzer çalıştır
delay(1000);
digitalWrite(RED_LED_PIN, LOW);
}
rfid.PICC_HaltA();
}
}
}
bool isAuthorized(String cardID) {
for (int i = 0; i < numAuthorizedCards; i++) {
if (cardID.equals(authorizedCards[i])) {
return true;
}
}
return false;
}