Alışverişlerinizi Robotistan’dan Yapın

Faydalı içerikler oluşturarak size yardımcı olmak istiyoruz. Aynı zamanda hızlı teslimat ve müşteri memnuniyetini ön planda tutarak malzeme satışı yapıyoruz. Alışverişlerini robotistan.com‘dan yaparak sen de bize yardımcı olabilirsin 🙂

Arduino ile RFID Kart Okuyucu (RC522) Modül Kullanarak Kapı Kilidi Yapımı

Herkese merhabalar. Eve kim ne zaman girmiş çıkmış, bilmek istemez misiniz? Öyleyse bu proje size göre ! Bugün sizlerle Arduino ile RC522 RFID modülünü kullanacağız. Projemizi bir an önce yapmak için sabırsızlananlar bu kısmı atlayabilir ama biraz RFID teknolojisinden bahsetmek istiyorum 🙂

Bir önceki yazımızda gaz sensörlerinden bahsetmiştik ! >>> Yanıcı Gaz Alarmı Yapalım

RFID Nedir?

Açılımı Radio Frequency Identification yani radyo frekansı ile tanımlamadır. RFID teknolojisi nesnelerin radyo dalgaları kullanılarak tanınması için kullanılan teknolojidir. Günlük hayatımızda toplu taşıma biletlerinde, işyeri ve okul girişlerindeki turnikelerde karşımıza sıklıkla çıkmaktadır. Arduino ile RFID projelerini incelediğimizde kapı kilidi, bir ortamda bulunan kişi sayısı bilgisinin alınması, bilgisayar oturum kilidi, alarm sistemi gibi projelerle sıklıkla karşılaşabilirsiniz. Kablosuz haberleşme teknolojileri ile ilgili daha fazla bilgi edinmek isterseniz, Kablosuz Haberleşme Teknolojileri yazımızı okuyabilirsiniz.

RFID Kart Okuyucular – RFID Kart Okuma Yazma İşlemi

Kullandığımız kartların kendilerine ait UID isimli bir numarası vardır. Bu numara, her kart için farklıdır. Okuyucumuza kartımızı veya anahtarlığımızı yaklaştırdığımızda bu numara okunarak işlem yapılır.

RC522 RFID modülü haricinde başka birçok RFID kart okuyucu modül piyasada bulunmaktadır. HZ-1050 RFID Kart okuyucu modülü 125 kHz frekansında çalışmaktadır. Arduino ve birçok mikro kontrolcü ile çalışabilir, Raspberry Pi ile rahatlıkla proje geliştirmek mümkündür. RDM6300 modülü ofis/ev güvenliği, kişisel kimlik ve erişim kontrolü, anti-sahtecilik ve üretim kontrol sistemleri gibi pek çok alanda kullanılmaktadır. Grove modülü ise 7 cm mesafeye kadar algılama yapabilen RFID modülüdür.

Sitemizdeki tüm RF kart okuyuculara ve kablosuz haberleşme sistemlerine buradan ulaşabilirsiniz.

Arduino İle RC522 RFID Modül Kullanarak Kapı Kilidi Projesi Yapalım

Kart okuyucu devresini yaparken aynı zamanda RFID ile servo motor kontrolü uygulamasını da gerçekleştirmiş olacağız. Yani hem Arduino’nun RFID ile iletişimini öğreneceğiz hem de servo motor kullanarak algoritmamızı yazmış olacağız.

Gereken malzemeler:

Devre şemamız şu şekilde:

Kart Okuyucu Devresi

Projeye Başlamadan Önce İndirmemiz Gereken RFID ve Servo Motor Kütüphaneleri

Bu adresten kartımızı çalıştırmamızda gerekli olan kütüphaneyi indirerek Arduino programının kurulu olduğu klasör altındaki libraries klasörüne MFRC522 ismiyle kaydediyoruz.

Arduino Kart Okuyucu devremiz için gerekli kodu aşağıdaki gibi yazıyoruz. Her bir satırda açıklamalar bulunuyor fakat projede bir sorun yaşarsanız yorum kısmından bildirebilirsiniz.

#include                           //SPI kütüphanemizi tanımlıyoruz.
#include                       //MFRC522 kütüphanemizi tanımlıyoruz.
#include                         //Servo kütüphanemizi tanımlıyoruz.

int RST_PIN = 9;                          //RC522 modülü reset pinini tanımlıyoruz.
int SS_PIN = 10;                          //RC522 modülü chip select pinini tanımlıyoruz.
int servoPin = 8;                         //Servo motor pinini tanımlıyoruz.

Servo motor;                              //Servo motor için değişken oluşturuyoruz.
MFRC522 rfid(SS_PIN, RST_PIN);            //RC522 modülü ayarlarını yapıyoruz.
byte ID[4] = {97, 76, 67, 9};          //Yetkili kart ID'sini tanımlıyoruz. 

void setup() { 
  motor.attach(servoPin);                 //Servo motor pinini motor değişkeni ile ilişkilendiriyoruz.
  Serial.begin(9600);                     //Seri haberleşmeyi başlatıyoruz.
  SPI.begin();                            //SPI iletişimini başlatıyoruz.
  rfid.PCD_Init();                        //RC522 modülünü başlatıyoruz.
}
 
void loop() {

  if ( ! rfid.PICC_IsNewCardPresent())    //Yeni kartın okunmasını bekliyoruz.
    return;

  if ( ! rfid.PICC_ReadCardSerial())      //Kart okunmadığı zaman bekliyoruz.
    return;

  if (rfid.uid.uidByte[0] == ID[0] &&     //Okunan kart ID'si ile ID değişkenini karşılaştırıyoruz.
    rfid.uid.uidByte[1] == ID[1] && 
    rfid.uid.uidByte[2] == ID[2] && 
    rfid.uid.uidByte[3] == ID[3] ) {
        Serial.println("Kapi acildi");
        ekranaYazdir();
        motor.write(180);                 //Servo motoru 180 dereceye getiriyoruz.
        delay(3000);
        motor.write(0);                   //Servo motoru 0 dereceye getiriyoruz.
        delay(1000);
    }
    else{                                 //Yetkisiz girişte içerideki komutlar çalıştırılır.
      Serial.println("Yetkisiz Kart");
      ekranaYazdir();
    }
  rfid.PICC_HaltA();
}
void ekranaYazdir(){
  Serial.print("ID Numarasi: ");
  for(int sayac = 0; sayac 



RFID ile yaptığımız bu projeden memnun kaldınız mı? Öyleyse kendinizi RFID protokolü konusunda daha çok geliştirebileceğiniz bir proje seti tavsiye ediyoruz. Arduino RFID Kit Seti ile servo motor haricinde LDR, yangın sensörü, ses sensörü, sıcaklık sensörü gibi birçok komponent kullanarak bilgi sinyali alarak step motor, LED, buzzer ve daha bir sürü aktüatör ile projeler yapabilirsiniz 🙂

Yorumları Görüntüle

    • Merhabalar, yazıyı güncelledim. Koddaki comment kısımlarından açıklamaları okuyabilirsiniz.

      • merhaba daha detaylı olması mümkünmüdür acaba açıklamaların teşekkürler şimdiden .

  • Acaba bu sistemi daha fazla kartl nasıl yaparız ve şu farklı kart olayını nasıl kaldırırım.
    Cevabınıziçin Şimdiden teşekkürler ! :D

    • Merhabalar. Kart kayıt fonksiyonunu (ilk koddaki 24-37 numaralı satırlar arası) alta tekrar kopyalayarak, ve kod içerisindeki EEPROM.write() komutundaki sayıyı 4 arttırarak (yani i ise i+4, i+4 ise i+8 vb.) bu işlemi yapabilirsiniz. Unutmayın ki Arduino UNO üzerinde bulunan ATmega328p mikrokontrolcünün dahili EEPROM belleği 1 kB büyüklüğündedir. Yani 256 adet kartla sınırlısınız :)

      • iyide mesela tek tek satır yazmak yerine satırı bunu bir döngü gibi istedigimiz kadar kart okutmak istesek mesela 100 tane kart onu nasıl yapcaz

  • Merhabalar. Ben bu olaya bir de karta veri yazma işini eklemek istiyorum. Alışveriş kartı uygulaması gibi kalan bakiyeyi karta yazmam gerek nasıl yapabilirim?

    • Merhabalar. Bu yazıda RFID modülünün çok basit bir uygulaması anlatıldığı için karta veri yazma/okuma yerine sadece kartın UID'si kullanılarak işlem yapılmıştır. Kartın belleğine yapılacak müdahale "Arduino Dersleri" kapsamının dışına çıkacağından daha detaylı anlatım için farklı bir uygulama yazısı hazırlamayı düşünmekteyiz. Teşekkür ederiz.

      • merhaba hocam yazma ve okuma konusunda bir video gelmedi galiba. Ben üzerinde çalışıyorum tek takıldığım nokta ;
        if ( ! rfid.PICC_IsNewCardPresent()) //Yeni kartın okunmasını bekliyoruz.
        return;
        Bu komutta yeni kart okunmasını beklememek istiyorum.çünkü okuma ve yazma yaparken aynı kart iki kere görmesi lazım, ne yapmam lazım. Bu satırı kaldırıncada kartı hiç görmüyor.

  • Merhaba,
    ben barcode scanner'la barkodu okuyup servo motora buna göre yön verecek uygun kodları arıyorum.Bu konuyla ilgili yerli yada yabancı ulaşabileceğim bir kaynak var mı acaba ?

  • Aynı kartı ilk okuttuğumda led i yakmak ikinci kez okuttuğumda kapatmak istiyorum.. Ayrıca kayıtlı kartlardan birini iptal etmek istersem ne yapmalıyım.. Şimdiden teşekkürler..

    • mesela programın başında int led=0 yaz bir if olsun şu numaralı kart okunursa ledi yak ve ledi 1 yap örnek=
      int led=0;
      .....
      if(kart numarası okunan değerle eşse ve led 0 ise)
      led yak
      led=1 yap
      sonra yine if(kart numarası okunan değerle eşşe ve led 1 ise)
      led kapa
      led =0 yap

    • int kapı=0;// en başta fazladan bir değişken. servo motor ile kapı açalım
      ...
      if(kart uid okunan değerle eşşe ve kapı 0 ise)
      servo motor çalıştır 180
      kapı=1 yap
      if(kart uid okunan değerle eşşe ve kapı 1 ise)
      servo motor çalıştır 15//15 denediğim değer 180 değerine bu değer geliyor tam zıttı
      kapı=0 yap
      böyle

  • Ben dediğiniz tüm adımları harfiyen uyguladım fakat kart ve anahtarlığın ikisinide okumuyor EEPROM a kaydetme aşamasında. Beklemem mi gerekiyor yoksa. Sizce ne tür bir problem olabilir. RFID Kit almştım robotistan.com dan. Çok da istediğim bir proje. Diğer yabancı forumlardan da araştırdım fakat sonuç aynı.

    • aynen bendede öyle kartı tutuyorum bir şey olmuyor acaba bir problem mi oldu anlayamyorum

    • Kırmızı renkte olan Funduino marka RC522 kullanıyorsanız bağlantı kablolarının yeri farklı elinizdeki ürünün datasheet'ini kontrol edip doğru bağlantıyı kurmaya çalışın

    • Aynen bende de farklı kartlar anahtarlıklar ve yapıştırma etiketleri var ama kırmızı renkli anahtarlık çalışmıyor diğerlerinin hepsi çalışıyor.

  • merhaba,
    arduino una'da bütün işlemler hiç bir hata yaşanmadan başarılı bir şekilde gerçekleşiyor, fakat ben rfid dışında bir çok işlem daha ekleyeceğim için mega2560 kullanıyorum aynı yazılımları megaya atıyorum bağlantıyı da aynı yapıyorum fakat kart kaydetme ekranında kart okutamıyorum. Acaba mega'da bağlantı değişikliği mi yapmam gerekiyor anlayamadım,
    yardımlarınız için şimdiden teşekkürler.

    • Arduino Mega üzerindeki SPI bağlantı noktaları farklı pinlerde olduğundan bağlantıları şu şekilde değiştirmeniz gerekecektir:

      UNO -> MEGA
      13 -> 52
      12 -> 50
      11 -> 51
      10 -> 53

      • kardeşim ben arduino due üzerşnde kurmaya çalışıyorum ama eeprom kütüphanesini bulamadım yardımcı olabilrmisin

        • EEPROM diye bir kütüphane yok zaten EEPROM Arduino'un dahili hafızasına verilen isimdir.

  • Merhaba kolay gelsin ,yukarıdaki yorumları okudum ve kendı arduino megada 50,51,52,53 u pinlere aktardım ve programın kodunda degiştirdim ama yine kartı kayıt ettiremiyorum.Yardımlarınızı beklıyorum şimdiden teşekkür ederim

En Son İçerik

Arduino, PIR Sensör ve RC522 RFID Modülü ile Güvenlik Sistemi

Herkese merhabalar, bu yazımızda Arduino, PIR sensör ve RC522 RFID Modülü kullanarak kendi kapı alarmımızı yapacağız. Yaptığımız alarm, bir butona…

3 hafta Önce

Arduino ile L298N Motor Sürücü Kartı Kullanımı

Merhabalar. Arduino kullanarak yaptığımız robot projelerimizin vazgeçilmez parçalarından birisi motor sürücüler. Bu yazımda sizlere belki bu tip projelerde en popüler…

4 hafta Önce

Arduino Radar Yapımı – Ultrasonik Sensör ile Radar Projesi Yapalım

Radar yapma fikri seni de heyecanlandırıyor mu? Biz yaptık. Sana da tavsiye ederiz ;) Arduino Radar Projesi Nasıl Yapılır? Radar…

2 ay Önce

Otto Robot Yapımı – Arduino Nano İle Şirin Robot Yapalım

Eğlenceli bir robot yapmaya ne dersin? Biz güzel olacağını düşündük ve OTTO robotu senin için yaptık. Otto Robot Parçaları Arduino…

2 ay Önce

ESP8266 Kart Ve DHT11 İle Oda Sıcaklık-Nem Ölçümü

Merhaba arkadaşlar , bu gün sizlerle DHT11 sıcaklık-nem sensör kullanarak odamızın sıcaklık ve nem oranının okumasını yapacağız. Projemizden sizlere kısaca…

4 ay Önce

Sensör Nedir? Sensör Çeşitleri ve Robot Kontrolcüleri

Herkese merhabalar, bir önceki yazımızda robotlardan ve temel parçalarından bahsetmiştik. Bu yazımızda ise robotun kontrol kartı ve sensörlerinden bahsedeceğim. Sensörleri…

4 ay Önce