back to top

RFID Kart ile Bilgisayarda Oturum Açma

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
        ) {

Son Çıkan Yazılar

53 YORUMLAR

    • 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.

  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

    • Klavyeden komut vermen için Leonardo kullanman gerekiyor geri kalan herşeyi normal aurdinoda yapabilirsin ama klavyeden komut vermen için Atmega32u4 işlemcisi kullanman gerekiyor buda Leonardo da var.

  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 ?

    • Selamlar,

      Kodu yanlış yazıyor olabilirsiniz. Lütfen o kısmın biçimsel yazılışını kontrol ediniz.

      İyi çalışmalar dileriz 🙂

    • Selamlar,

      Kartın sağlamlığını, kodları ve donanımsal bağlantıları tekrardan kontrol ediniz. Bir sorunuz olursa buradan sorabilirsiniz.

      İyi çalışmalar dileriz 🙂

  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?

    • Bunun için bilgisayar açma butonunu aurdino ile tetiklemeniz lazım öncelikle Bilgisayar butonun anakartaki yerine bakınız sonra (button basıldığında kaç volt kaç amper olduğuna bakın multimetreyle) sonra aynı değeri kart doğru okutulduğunda aurdino dan HIGH komutu ile bilgisayarı açabilirsiniz
      Diğer yöntem ise röle kullanarak buttona giden kabloları röleye bağlayıp kontrol edebilirsiniz

  6. merhabalar em4100 rfid kapı anahtarlıkları bu proje ile kopyalanabiliyor mu ?
    denedim ancak okumuyor bile bunun arduino uno ile bir yolu var mı ?

  7. hocam ses ile komut verip açmak için ne yapmalıyız hangi Arduino kartı lazım yanında neler kullanmak lazım bunun için bilgi verebilirmisiniz?

  8. Merhaba. Robotistanın kendi videosunu izleyerek birebir aynı şeyi yapmama rağmen(hardware ve software) RFID okuyucular hiç bir kartı okumuyor. Bütün kompenentlerden elimde fazlasıyla mevcut hepsini denedim ama başaramadım. Kod ve baglantılar atıcagım linkte videoda anlattıgınız gibidir. Bu benim bitirme ödevim yardımcı olursanız çok sevinirim.

    ROBOTİSTAN RFID OKUYUCULU OTOMATİK KAPI

    https://www.youtube.com/watch?v=93iw6iXLm-0

  9. #include //SPI ve RFID kütüphanelerimizi ekliyoruz
    #include
    #include
    Ben Kodu Yüklerken ‘Klavye’ bulunamadı. hatası alanlar “#include //SPI ve RFID kütüphanelerimizi ekliyoruz
    #include ” bi alt satıra in “#include ” yazsın o zaman hata vermeyecektir..

  10. Daha açık yazabilir misiniz Yusuf Bey ?
    Ben de klavye bulunamadı hatası alıyorum.
    İnclude rfid,spi tanımlı bu arada

    Teşekkürler

    • Selamlar,

      Kullandığınız kontrol kartının “Arduino Leonardo” olduğundan emin misiniz?

      İyi çalışmalar dileriz 🙂

  11. RFID kütüphanesini bulamıyorum youtube da güncel sayılabilecek bir videonuz var fakat bağlantıdaki link yani burası güncel değil yardımcı olurmusunuz?

CEVAP VER

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