Merhaba Arkadaşlar, bu projemiz ile bilgisayarımız ilk başladığında şifre ekranı geldiğinde, şifre girmek yerine RFID kartımızı kullanacağız. Bunun için öncelikle bu projede kullanacağımız malzemelerimiz;

NOT: Projemizde kullanacağımız RC522 RFID modülün nasıl kullanıldığını bilmiyorsanız buradan bakabilirsiniz. Fakat bu yazımızdaki bağlantılar Arduino UNO için olduğundan, Arduino Leonardo ile bire bir uymamaktadır.

Projemizde RFID kart okuyucuyu kullanabilmek için kütüphanesini eklememiz gerekiyor. Kütüphaneyi bu liknten indirebilirsiniz. İndirdikten sonra Arduino->library klasörüne indirdiğiniz dosyayı atmanız gerekiyor.

Bu projemizde Arduino UNO, Arduino Nano gibi kartları kullanmayıp Arduino Leonardo kullanmamızın bir sebebi var arkadaşlar. Bu sebep de Arduino Leonardo’nun bilgisayar klavyesi olarak kullanılmaya olanak sağlaması. Bu farklılık iki kartta kullanılan mikrodenetleyici farklından kaynaklanıyor.

Arduino Uno ve Arduino Nano, ATmega328 mikrodenetleyicisini kullanırken, Arduino Leonardo ise ATmega32u4 mikrodenetleyicisi kullanmaktadır. Arduino Leonardo’nun yanısıra, Arduino Micro ve Due gibi modeller de aynı özelliğe sahip bir mikrodenetleyici kullandıklarından Leonardo yerine kullanılabilirler.

Projemizin yapısını basitçe anlatmak gerekirse, bilgisayar ilk açıldığında, Windows şifre ekranı gelmeden önceki ekran koruyucu gelene kadar herhangi bir şey yapmayacağız. Ekran geldikten sonra ise, Kendi RFID kartımızı gösterdikten sonra, program önce klavyeden enter tuşuna basılmış gibi davranacak ve ekran koruyucu kalkarak şifre ekranı gelecek. Programımız 1 saniye bekleyip bilgisayar şifresini girecek ve oturumumuz açılmış olacak.

Programın kodlarına geçmeden önce RFID modül ile Arduino Leonardo arasındaki bağlantıyı aşağıdaki gibi yapmanız gerekiyor.

rfid arduino leonardo baglantisi

Rfid modülün bağlantılarını kontrol etmek için, Dosya>Örnekler>rfid-master>cardRead programını kullanabilirsiniz. Bu program bir kart okuduğunda, kart ID’sini serial monitör üzerinden bilgisayara yollamaya yarıyor.

Bağlantıların doğruluğundan emin olduktan sonra aşağıdaki kodu Arduino’muza yükleyebiliriz.

#include <SPI.h>      //SPI ve RFID kütüphanelerimizi ekliyoruz
#include <RFID.h>

#define SS_PIN 10
#define RST_PIN 9

RFID rfid(SS_PIN, RST_PIN); 
int ledpini = 13;
 
void setup()
{ 
  pinMode(ledpini,OUTPUT);
  SPI.begin();           //SPI iletişimini başlatıyoruz 
  rfid.init();
  Keyboard.begin();      //Klavye olarak kullanmak için bu özelliği açıyoruz.
  digitalWrite(ledpini,LOW);
}

void loop()
{
    
    if (rfid.isCard()) {                 //Yeni bir RFID kart okundu mu onu kontrol ediyoruz
        if (rfid.readCardSerial()) {
            if (rfid.serNum[0] == 115        //Okunan RFID kartının bize özel kart olup olmadığı RFID kart numarasının ilk 5 hanesi ile kontrol ediliyor.
                && rfid.serNum[1] == 228      //Buradaki 5 adet sayıyı kendi kartınızın sayıları ile değiştirmeniz gerekecek.
                && rfid.serNum[2] == 220
                && rfid.serNum[3] == 199
                && rfid.serNum[4] == 140
            ) {               
              Keyboard.press(KEY_RETURN);    //Klavyeden ENTER tuşuna basıyoruz
              delay(50);
              Keyboard.releaseAll();          //Basılı olan tuşu geri çekmek için bu fonksiyonu kullanıyoruz. Bu fonksiyon olmazsa enter tuşu hep basılıkalıyor
              delay(500);
              Keyboard.print("BILGISAYAR SIFRESI");    //Buraya Bilgisayar şifreniz gelecek
             } else {
               digitalWrite(ledpini,HIGH);    //Farklı kart okutulduğunda Arduino üzerindeki ledi yaktırdım. Siz isterseniz Buzzer veya başka bir led kullanabilirsiniz.
               delay(10);
             }
             digitalWrite(ledpini,LOW);
          }
    }

    
    rfid.halt();
}

Bu kodu Arduino’nuza yüklemeden önce cardRead programını kullanarak kendi kartınızın RFID numaralarını almanız gerekiyor. Çünkü kodda aşağıda yer alan bölüme kendi RFID numaralarınızı girmeniz gerekecek.

            if (rfid.serNum[0] == 115        //Okunan RFID kartının bize özel kart olup olmadığı RFID kart numarasının ilk 5 hanesi ile kontrol ediliyor.
                && rfid.serNum[1] == 228      //Buradaki 5 adet sayıyı kendi kartınızın sayıları ile değiştirmeniz gerekecek.
                && rfid.serNum[2] == 220
                && rfid.serNum[3] == 199
                && rfid.serNum[4] == 140
            ) {

Projeyi yaptığınızda aşağıdaki videodaki gibi olacaktır.

27 Yorumlar

    • Malesef bu projede Arduino UNO kullanamıyoruz. Bunun nedeni de UNO da bulunan işlemcinin klavyeyi hacklememize izin vermemesi

    • Nfc kart okuyucu üzerinde klavyesi yine geçecek bir birimi olmadığından arduino veya başta türlü bir mikrodenetleyici kullanmadan yapılamaz.

      • hocam bu benım cok bır arduino bılgım yok , universitenin lab ında boyle bırsey yapma fikrini hocama sundum , bu senn projende cok dikkatimi cekti bu gun , peki daha az maliyetli arduino pro mini gibi daha ucuz bir arduino ile de bu işlemi yapabilirmiyiz

        • Eğer bilgisayarı açmak istiyorsan. Ya da bilgisayarda klavye veya mouse’u arduino ile kullanmak istiyorsan Leonardo, Micro gibi içinde Atmega32u4 işlemcisi bulunan arduino kullanman gerekiyor. Ama RFID kart ile motor sürmek, led yakmak gibi şeyler yapacaksan istediğin türde arduinoyu kullanabilirsin.

    • Bu proje için 7 tane yeterli fakat zaten set olarak satılıyor. Bu proje için dişi erkek jumper kablosuna ihtiyacınız var. 40 adet olanını buradan alabilirsiniz

    • O bir RFID kart. Mavi anahtarlık ile aynı işe yarıyor aslında. Ben videoda her kart ya da benzer özellikteki cihaz ile açılmadığını göstermek, yani şifreli olduğunu göstermek için kullandım. Sizin kullanmanıza gerek yok.

  1. hocam arduino programının içinde cardread programı yok. Arduino sitesinde 1.6.9 sürümü var onu kullanıyorum ama içinde yok. Yardımcı olurmusunuz acilen rica etsem.

  2. hocam tekrar rahatsız ediyorum ama benim rfıd kartımdaki o beş numaranın hepsi != sernumber0 !=sernumber1… beşide böyle. nasıl düzeltebilirim?

  3. ya kardeşim daha açıklayıcı yazsana ya. uno için kullanılıyor demişsin o zaman biz ne kadarını Leonardo için kullanacağız insan onları falan bir belirtir. kafana göre yazı yazmışsın

  4. hocam rfid kütüphanesini kurdum. fakat yazılımda rfıd’yi başlatmak için rfid.init(); komutunu yazdığımda arduino bu komutu algılamıyor. yani renkli olmuyor. sebebi nedir acaba ?

  5. Hocam Merhaba.Bilgisayar yardımıyla uzaktan kumandalı arabayı yönetme projem var zamanımda çok kısıtlı.Ne kullacağım konusunda bilgi verir misiniz?

CEVAP VER