RFID RC522 modülü ile günlük hayat kullandığımız bir çok ürünün kontrolünü sadece bir 13,56 MHz NFC Kart veya 13,56 MHz NFC anahtarlık ile kontrol edebilirsiniz. 13,56 MHz HF(yüksek frekans), yakın algılama olanağı sağlar. RFID modülleri genel olarak kapı kilitlerinde kullanılsa da kişinin hayal gücüne bağlı olarak farklı uygulamalar ve projeler geliştirilebilir.Bizim örnek uygulamamızda Arduino Uno kullanarak RFID RC522 NFC kiti ile yetki durumuna göre yeşil ve kırmızı ledleri kontrol ettik.

NOT: RFID kitlerinde kullanılan çipler farklılık gösterdiği için  her Arduino kütüphanesi desteklemeyebilir. Aşağıdaki linkten güncel veya eski kütüphanelere ulaşabilirsiniz. Ayrıca kütüphane ismini MFRC522 olarak değiştirmeniz gerekmektedir.

Kütüphane dosyası: RFID(RC522)kütüphanesi

Arduino RFID Kütüphanesi MFRC522 Arduino’ya eklemek için aşağıdaki sıralamayı takip edebilirsiniz. MFRC522.zip dosyası olarak inmektedir.

Taslak>library ekle>.ZIP Kitaplığı Ekle>ZIP dosyasını bilgisayarda indirdiğiniz yeri seçme>Open

Malzeme Listesi:

Aşağıdaki devre şemasındaki gibi devremizi breadboard üzerine kuralım .

Arduino Kodları:

#include <SPI.h>
#include <MFRC522.h>
const byte YESIL_LED = 4;
const byte KIRMIZI_LED = 2;
MFRC522 rfid(10, 9);//RFID Chip Select ve Reset pinlerinin ayarlarını yapıyoruz.
byte Kart[4] = {53, 122, 201, 226}; // {53, 122, 201, 226} buraya kendi okuttuğunuz kartın ID numarasını yazmalısınız.
boolean Yetki;
void setup()
{
Serial.begin(9600);
pinMode(KIRMIZI_LED, OUTPUT);
pinMode(YESIL_LED, OUTPUT);
SPI.begin();
rfid.PCD_Init();
}
void loop()
{
Yetki = true;
if ( rfid.PICC_IsNewCardPresent())
{
if ( rfid.PICC_ReadCardSerial())
{ Serial.print("Okunan Kart ID: ");
Serial.print(rfid.uid.uidByte[0]);
Serial.print(",");
Serial.print(rfid.uid.uidByte[1]);
Serial.print(",");
Serial.print(rfid.uid.uidByte[2]);
Serial.print(",");
Serial.println(rfid.uid.uidByte[3]);
}
for (int i = 0; i < 4; i++)
{
if (rfid.uid.uidByte[i] != Kart[i])
{
Yetki = false;
}
}
if (Yetki == true)
{
Serial.println("Yetki Onaylandi…");
digitalWrite(YESIL_LED, HIGH);
delay(1000);
digitalWrite(YESIL_LED, LOW);
}
else
{
Serial.println("Yetki Onaylanmadi…");
digitalWrite(KIRMIZI_LED, HIGH);
delay(1000);
digitalWrite(KIRMIZI_LED, LOW);
}
rfid.PICC_HaltA();
}
}

6 YORUMLAR

    • Merhaba,
      byte Kart[4] = {53, 122, 201, 226}; şeklindeki tanımlamayı her kart için yaparak ve void loop döngüsünde ilgili kartı denetleyerek yapabilirsiniz.
      byte Kart_1[4] = {53, 122, 201, 226};
      byte Kart_2[4] = {53, 122, 201, 226}; vs.

  1. Merhabalar. Öncelikle paylaşım için teşekkürler. Şu şekilde bir uygulamam var. Kart gösterildiği süre kadar röleyi açık bırakacak. Kartı çektiğimizde röle kapanacak. Bunu nasıl gerçekleştirebiliriz. Yardımcı olursanız çok sevinirim.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz