Bu uygulamamızda arduino nano ile RC522 RFID NFC Kitini beraber kullanacağız. Bu kit Türkiyede 20-30 TL arasında satılmakta. Ancak benim zaman problemim yok diyorsanız yurtdışından 2-3 $ 'a getirtebilirsiniz.

Peki RFID nedir?


Radyo Frekanslı Tanıma (Radio Frequency Identification-RFID) teknolojisi, canlı ve cansız her türlü nesnenin dokunmadan belirli bir mesafeden tanınmasında ve izlenmesinde kullanılır.  RFID teknolojileri giderek artan büyük bir oranda dünya genelinde ve ülkemizde yaygınlaşmakta ve birçok sektörde kullanılmaktadır. Otomotiv, akaryakıt, lojistik, perakendecilik, tarım, sağlık, ilaç, tekstil, finans, bankacılık, enerji, kamu, üretim, güvenlik, turizm gibi birçok sektörde geniş uygulama alanlarında aktif ve yaygın olarak kullanılmaktadır.

Patients were permitted to use a hydrogel soft contact lens with Voltaren Ophthalmic for up to three days after PRK see this here However, the rate of vision decline in the Macugen treated Patients were permitted to use a hydrogel soft contact lens with Voltaren Ophthalmic for up to three days after PRK.

RC522 RFID kartı, NFC frekansı olan 13,56 MHz frekansında çalışan tagler üzerinde okuma ve yazma işlemeni yapabilen, düşük güç tüketimli, ufak boyutlu bir karttır.
Arduino başta olmak üzere bir çok mikrodenetleyeci platformu ile beraber rahatlıkla kullanılabilir. 424 kbit/s haberleşme hızına sahiptir. RFID üzerinde farklı şifreleme türlerini desteklemektedir. Desteklediği kart türleri mifare1 S50, mifare1 S70 mifare ultralight, mifare pro ve  mifare desfire'dir.
 
Not: 125 KHz frekansında çalışan RFID kartlarını desteklememektedir. Yalnızca 13,56 MHz frekansında çalışan kartları desteklemektedir. NFC modülleri bu frekansta çalıştığı için NFC kartları ile beraber kullanılabilir. Vazgeçilmezimiz olan ktüphanemizi buradan indiriyoruz.

Kit arduino nano ile SPI protokülünü kullanarak haberleşiyor. Kit üzerindeki pin bağlantıları aşağıdaki gibi olmalı:

* MOSI: Pin 11 / ICSP-4 
* MISO: Pin 12 / ICSP-1
* SCK: Pin 13 / ISCP-3  
* SS/SDA: Pin 10
* RST: Pin 9

İsterseniz  nanonun 11 nolu pinini isterseniz ICSP portunun 4 nolu pinini kullanabilirsiniz. Ben 11 nolu pini kullanmıştım. Aynı durum MISO, SCK ve SDA pinleri içinde geçerli.

Devreyi tasarlarken biri kırmızı biri yeşil olmak üzere 2 adet led kullanılmıştır. Ledler 7 ve 8 nolu pinlere bağlanmıştır. Programda 5 adet kart okunacak şekilde tanımlama yapılmıştır. Programı arduinoya attıktan sonra serial monitörden kendi kartınızın numarasını almanız ve programın başında cards dizisinin içine yapıştırmanız gerekmektedir. İlk anda not allowed yazacaktır. Bu kartınızın tanıtılmadığı ve kabul edilmediği mesajıdır.Bilginiz olsun..:)



Kod:

#include <RFID.h>
#include <SPI.h>


#define SS_PIN 10
#define RST_PIN 9

RFID rfid(SS_PIN, RST_PIN);
int led = 7;
int power = 8;
int serNum[5];
int cards[][5] = {
  {33, 182, 50, 59, 158}
  //{105,73,89,158,231}
};

bool access = false;

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.init();
  pinMode(led, OUTPUT);
  pinMode(power, OUTPUT);
  digitalWrite(led, LOW);
}

void loop() {

  if (rfid.isCard()) {

    if (rfid.readCardSerial()) {
      Serial.print(rfid.serNum[0]);
      Serial.print(" ");
      Serial.print(rfid.serNum[1]);
      Serial.print(" ");
      Serial.print(rfid.serNum[2]);
      Serial.print(" ");
      Serial.print(rfid.serNum[3]);
      Serial.print(" ");
      Serial.print(rfid.serNum[4]);
      Serial.println("");

      for (int x = 0; x < sizeof(cards); x++) {
        for (int i = 0; i < sizeof(rfid.serNum); i++ ) {
          if (rfid.serNum[i] != cards[x][i]) {
            access = false;
            break;
          } else {
            access = true;
          }
        }
        if (access) break;
      }

    }

    if (access) {
      Serial.println("Welcome!");
      digitalWrite(led, HIGH);
      delay(1000);
      digitalWrite(led, LOW);
      digitalWrite(power, HIGH);
      delay(1000);
      digitalWrite(power, LOW);

    }

else {
      Serial.println("Not allowed!");
      digitalWrite(led, HIGH);
      delay(500);
      digitalWrite(led, LOW);
      delay(500);
      digitalWrite(led, HIGH);
      delay(500);
      digitalWrite(led, LOW);
    }
  }
  rfid.halt();
}

Projenin çalışma videosunu izlemek için tıklayınız.




Yorumlar   

# Bünyamin Ünal 22-04-2017 17:44
Güzel olmuş. Teşekkürler Fatih hoca
Cevap | Alıntıyla Cevapla | Alıntı

Yorum ekle


Güvenlik kodu
Yenile

SON YORUMLANANLAR

GELEN GİDEN SAYISI

227034
Bugün
Dün
Bu hafta
Geçen hafta
Bu Ay
Geçen Ay
Tümü
748
802
4419
218232
18104
14360
227034

Your IP: 93.89.232.254
2017-05-28 16:41