Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama
Yeni Konu Aç
Yeni Konu Aç

Arduino RfID Kart Uygılaması RC522 RFID Modül Kullanımı

Konu, 'Robotik Kodlama' kısmında togius tarafından paylaşıldı.


  1. togius

    togius Süper Üye Süper Üye

    Kayıt:
    27 Temmuz 2007
    Mesajlar:
    1.566
    Beğeni:
    138
    https://www.youtube.com/watch?v=bUDgjyRzpnA aşağıdaki kodları kullanarak hazırladığım devrem.

    Arduino RfID Kart Uygılaması. Bu uygulamayı geliştirerek basit bir Rfid kart personel takibi uygulaması yapabilirisiniz.

    https://github.com/miguelbalboa/rfid adresinden 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 kaydedebilirsiniz.

    [​IMG]

    Kod:
    #include <SPI.h>
    #include <MFRC522.h>
    #include <EEPROM.h>
    
    #define RST_PIN 9
    #define SS_PIN 10
    
    byte readCard[4];
    int successRead;
    
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    
    MFRC522::MIFARE_Key key;
    
    void setup()
    {
      Serial.begin(9600);
      SPI.begin();
      mfrc522.PCD_Init();
      Serial.println("RFID KART KAYIT UYGULAMASI");
      Serial.println("--------------------------");
      Serial.println("Lutfen 1 numarali karti okutun");
      Serial.println();
      do {
        //okuma başarılı olana kadar getID fonksiyonunu çağır
        successRead = getID(); 
      }
      while (!successRead);
      for ( int i = 0; i < mfrc522.uid.size; i++ )
      {
        //kartın UID'sini EEPROM'a kaydet
        EEPROM.write(i, readCard[i] ); 
      }
      Serial.println("Kart EEPROM'a kaydedildi.");
      Serial.println();
      Serial.println("Lutfen 2 numarali karti okutun.");
      Serial.println();
      do {
        successRead = getID();
      }
      while (!successRead);
      for ( int i = 0; i < mfrc522.uid.size; i++ )
      {
        EEPROM.write(i + 4, readCard[i] );
      }
      Serial.println("Kart EEPROM'a kaydedildi.");
      Serial.println();
      Serial.println("Kart kayit islemi basarili!");
    }
    
    void loop()
    {
    }
    
    int getID() {
      //yeni bir kart okunmadıysa 0 döndür
      if ( ! mfrc522.PICC_IsNewCardPresent()) { 
        return 0;
      }
      if ( ! mfrc522.PICC_ReadCardSerial()) {
        return 0;
      }
      Serial.print("Kart UID'si: ");
      //kartın UID'sini byte byte oku ve seri monitöre yaz
      for (int i = 0; i < mfrc522.uid.size; i++) {  //
        readCard[i] = mfrc522.uid.uidByte[i];
        Serial.print(readCard[i], HEX);
      }
      Serial.println("");
      //kart okumayı durdur ve 1 döndür (okuma başarılı)
      mfrc522.PICC_HaltA();
      return 1;
    }
    [​IMG]

    Kod:
    #include <SPI.h>
    #include <MFRC522.h>
    #include <EEPROM.h>
    
    #define RST_PIN 9
    #define SS_PIN 10
    #define ledPin 7
    
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    
    String lastRfid = "";
    String kart1 = "";
    String kart2 = "";
    
    MFRC522::MIFARE_Key key;
    
    void setup()
    {
      Serial.begin(9600);
      SPI.begin();
      mfrc522.PCD_Init();
      pinMode(ledPin, OUTPUT);
      Serial.println("RFID KART OKUMA UYGULAMASI");
      Serial.println("--------------------------");
      Serial.println();
      //EEPROM'dan kart bilgisini oku
      readEEPROM();
    }
    
    void loop()
    {
      //yeni kart okununmadıkça devam etme
      if ( ! mfrc522.PICC_IsNewCardPresent())
      {
        return;
      }
      if ( ! mfrc522.PICC_ReadCardSerial())
      {
        return;
      }
      //kartın UID'sini oku, rfid isimli string'e kaydet
      String rfid = "";
      for (byte i = 0; i < mfrc522.uid.size; i++)
      {
        rfid += mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ";
        rfid += String(mfrc522.uid.uidByte[i], HEX);
      }
      //string'in boyutunu ayarla ve tamamını büyük harfe çevir
      rfid.trim();
      rfid.toUpperCase();
      
      if (rfid == lastRfid)
        return;
      lastRfid = rfid;
    
      Serial.print("Kart 1: ");
      Serial.println(kart1);
      Serial.print("Kart 2: ");
      Serial.println(kart2);
      Serial.print("Okunan: ");
      Serial.println(rfid);
      Serial.println();
      //1 nolu kart okunduysa LED'i yak, 2 nolu kart okunduysa LED'i söndür
      if (rfid == kart1)
      {
        digitalWrite(ledPin, HIGH);
        Serial.println("LED yandi.");
      }
      if (rfid == kart2)
      {
        digitalWrite(ledPin, LOW);
        Serial.println("LED sondu.");
      }
      Serial.println();
      delay(200);
    
    }
    
    void readEEPROM()
    {
      //EEPROM'dan ilk kartın UID'sini oku (ilk 4 byte)
      for (int i = 0 ; i < 4 ; i++)
      {
        kart1 += EEPROM.read(i) < 0x10 ? " 0" : " ";
        kart1 += String(EEPROM.read(i), HEX);
      }
      //EEPROM'dan ikinci kartın UID'sini oku
      for (int i = 4 ; i < 8 ; i++)
      {
        kart2 += EEPROM.read(i) < 0x10 ? " 0" : " ";
        kart2 += String(EEPROM.read(i), HEX);
      }
      //Okunan stringleri düzenle
      kart1.trim();
      kart1.toUpperCase();
      kart2.trim();
      kart2.toUpperCase();
    }
    [​IMG]

    (Alıntı: http://maker.robotistan.com/arduino-dersleri-18-rc522-rfid-modul-kullanimi/)
     
  2. togius

    togius Süper Üye Süper Üye

    Kayıt:
    27 Temmuz 2007
    Mesajlar:
    1.566
    Beğeni:
    138
    ***** diye işaretlediği yerler S e r i a l olacak.
     
  3. aydınDr

    aydınDr Süper Üye Süper Üye

    Kayıt:
    14 Temmuz 2014
    Mesajlar:
    1.556
    Beğeni:
    1
    Tebrikler
     
  4. yasarsahbaz

    yasarsahbaz Hiperaktif Üye Hiperaktif

    Kayıt:
    22 Aralık 2010
    Mesajlar:
    3.142
    Beğeni:
    26
    tebrikler :alkis:
     
  5. bilisimcil

    bilisimcil Seçkin Üye Seçkin Üye

    Kayıt:
    20 Eylül 2014
    Mesajlar:
    428
    Beğeni:
    55
  6. bilişimweb

    bilişimweb Aktif Üye

    Kayıt:
    26 Kasım 2012
    Mesajlar:
    99
    Beğeni:
    0
    tebrikler
     

Sayfayı Paylaş /bbnetsosyal