Arduino
OKUDUĞUNUZ KONU
RFID-RC522 ile Kapı Kilidi Uygulaması
56

RFID-RC522 ile Kapı Kilidi Uygulaması

Yazar : Gürkan Türk7 Ekim 2015

Bu projemizde RFID-RC522 ile kapı kilidi uygulaması yapacağız.Arkadaşlar genel olarak video da kendimi ifade etmeye çalıştım ama burada da elimden geldiğince anlatayım. RFID-RC522 shield ile bina oda vb. yerlere kapı kilidi uygulaması için kullanılan bir sistem. Elimizde bir master kart ve onun çevresinde kartlar var. Master kart’ı çilingir gibi düşünebilirsiniz sizin götürdüğünüz anahtarınızı nasıl kopyalıyor onun gibi elinizde akbil, okul  kartı vb. kartlarınızı master karttan sonra sisteme okutuyorsunuz ve kartın içindeki kod sisteme kaydoluyor. Bu gayet normal ve elinizde ki kartlara zarar vermeyecek bir sistem çünkü bu kartlar zaten bunun için var. Konuyu biraz detaylandıracak olursak benim kurduğum devrede kırmızı beyaz mavi ve bir kırmızı led daha var (elimde yeşil yoktu beyaz ledi yeşil olarak farzedin) kırmızı ledlerden biri hata olduğunu biri de aslında röle görevi görüyor. Beyaz ve mavi ise sistemin ne demeye çalıştığını anlamak adına yapılmış durumdalar. Gerekli pinleri aşağıda yazıcam açıklama gereği duyarsak. 3.pin EEPROM sıfırlama butonu için (isterseniz hiç buton koymayın direk 3.pini GND’ye verin) 4.pin röle, 5 mavi led, 6 yeşil led, 7 kırmızı led olarak atandı.

Projeyi bağlantı şemasına uygun olarak kurunuz.

Rfid Şema

Projenin en sevdiğim yanlarından bir tanesi video da göstermeyi unutmuşum ama telefonunuzda NFC varsa telefonunuzu kart gibi kullanarak giriş yapmak için kullanabilmeniz 🙂

Gerekli malzemeler:

  • Arduino UNO veya Arduino Nano
  • 4 Led
  • Jumper
  • RFID-RC522
  • Elektromanyetik kartlar veya NFC’li bir adet akıllı telefon

Bağlantılar

  • Kırmızı led — > 7
  • Yeşil led — > 6
  • Mavi led — > 5
  • EEPROM sıfırlama — > 3
  • Röle — > 4
  • MOSI — > 11
  • MISO — > 12
  • SCK — > 13
  • SS (SDA) — > 10
  • RST — > 9

Bu projenin ilgili videosu linkte mevcut ==>>

**Bu projeyle ve üstteki video ile bağlantılı video linkte mevcut ==>>

(2 videoyu aynı anda açarsanız sizin için anlaması daha kolay olacaktır. İlk videonun 1.26 saniyesinden sonra ikinci video ile beraber izlenebilir.)

RFID-RC522 Kütüphanesi İndir

Projenin Arduino Kodunu İndir

/*
Copyright (C) 2015 Gürkan Türk
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Ayrıca bu kodun yapımında büyük emeği geçen Ömer Şiar BAYSAL Bey’e teşekkürlerimi sunarım.
 */
#include <EEPROM.h> //Okuma ve yazma işini UID ile EEPROM a kaydedicez.
#include <SPI.h> //RC522 modülü SPI protokolünü kullanır.
#include <MFRC522.h> //Mifare RC522 kütüphanesi

#define COMMON_ANODE //kullandığınız ledlere göre yanık veya sönük(H-L) kodlarını düzenleyiniz.
#ifdef COMMON_ANODE
#define LED_ON HIGH
#define LED_OFF LOW
#else
#define LED_ON LOW
#define LED_OFF HIGH
#endif

#define redLed 7 // Led pinlerini seçtik.
#define greenLed 6
#define blueLed 5

#define relay 4 //Röle pinini seçtik.
#define wipeB 3 //Master Card'ı silmek için buton pinini sseçtik.(Dilerseniz buton koymayın direk 3.pini GND ye verin.)

boolean match=false;
boolean programMode=false; //Programlama modu başlatma.

int successRead; //Başarılı bir şekilde sayı okuyabilmek için integer atıyoruz.

byte storedCard[4]; //Kart EEPROM tarafından okundu.
byte readCard[4]; //RFID modül ile ID tarandı.
byte masterCard[4]; //Master kart ID'si EEPROM'a aktarıldı.

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

#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN,RST_PIN); //MFRC522 örneği oluşturduk.
///////////////////////YÜKLEME/////////////////////

void setup()
{
//Arduino Pin Konfigrasyonu
pinMode(redLed,OUTPUT);
pinMode(greenLed,OUTPUT);
pinMode(blueLed,OUTPUT);
pinMode(wipeB,INPUT_PULLUP);
pinMode(relay,OUTPUT);

digitalWrite(relay,HIGH); //Kapının kilitli olduğundan enin olun.
digitalWrite(redLed,LED_OFF); //Ledin sönük olduğundan emin olun.
digitalWrite(greenLed,LED_OFF); //Ledin sönük olduğundan emin olun.
digitalWrite(blueLed,LED_OFF); //Ledin sönük olduğundan emin olun.

//Protokol konfigrasyonu
Serial.begin(9600); //PC ile seri iletim başlat.
SPI.begin(); //MFRC522 donanımı SPI protokolünü kullanır.
mfrc522.PCD_Init(); //MFRC522 donanımını başlat.

Serial.println(F("Giris Kontrol v1.0")); //Hata ayıklama amacıyla
ShowReaderDetails(); //PCD ve MFRC522 kart okuyucu ayrıntılarını göster.

//Silme kodu butona basıldığında EEPROM içindeki bilgileri siler.
if(digitalRead(wipeB)==LOW)
{
//Butona bastığınızda pini düşük almalısınız çünkü buton toprağa bağlı.
digitalWrite(redLed,LED_ON); //Kırmızı led sildiğimizi bilgilendirmek amacıyla yanık kalır.
Serial.println(F("Silme butonuna basildi."));
Serial.println(F("5 saniye icinde iptal edebilirsiniz.."));
Serial.println(F("Tum kayitlar silinecek ve bu islem geri alinamayacak."));
delay(5000); //Kullanıcıya iptal işlemi için yeterli zaman verin.
if (digitalRead(wipeB)==LOW) //Düğmeye basılmaya devam ediliyorsa EEPROM u sil.
{
Serial.println(F("EEPROM silinmeye baslaniyor."));
for (int x=0; x<EEPROM.length();x=x+1) //EEPROM adresinin döngü sonu
{
if(EEPROM.read(x)==0) //EEPROM adresi sıfır olursa
{

}
else
{
EEPROM.write(x,0);
}
}
Serial.println(F("EEPROM Basariyla Silindi.."));
digitalWrite(redLed,LED_OFF);
delay(200);
digitalWrite(redLed,LED_ON);
delay(200);
digitalWrite(redLed,LED_OFF);
delay(200);
digitalWrite(redLed,LED_ON);
delay(200);
digitalWrite(redLed,LED_OFF);
}

else
{
Serial.println(F("Silme islemi iptal edildi."));
digitalWrite(redLed,LED_OFF);
}
}

/*Master Kart tanımlı mı kontrol edilecek.Eğer kullanıcı Master Kart seçmediyse
yeni bir Master Kart EEPROM a kaydedilecek.EEPROM kayıtlarının haricinde 143 EEPROM adresi tutulabilir.
EEPROM adresi sihirli sayısı 143.
*/

if (EEPROM.read(1) != 143)
{
Serial.println(F("Master Kart Secilmedi."));
Serial.println(F("Master Karti secmek icin kartinizi okutunuz.."));
do
{
successRead=getID(); //successRead 1 olduğu zaman okuyucu düzenlenir aksi halde 0 olucaktır.
digitalWrite(blueLed,LED_ON); //Master Kartın kaydedilmesi için gösterildiğini ifade eder.
delay(200);
digitalWrite(blueLed,LED_OFF);
delay(200);
}
while(!successRead); //Başarılı bir şekilde okuyamadıysa Başarılı okuma işlemini yapmicaktır.
for (int j=0; j<4; j++) //4 kez döngü
{
EEPROM.write(2+j,readCard[j]); //UID EPPROM a yazıldı, 3. adres başla.
}
EEPROM.write(1,143); //EEPROM a Master Kartı kaydettik.
Serial.println(F("Master Kart kaydedildi.."));
}

Serial.println(F("*****************"));
Serial.println(F("Master Kart UID:"));
for(int i=0; i<4; i++) //EEPROM da Master Kartın UID'si okundu.
{ //Master Kart yazıldı.
masterCard[i]=EEPROM.read(2+i);
Serial.print(masterCard[i],HEX);
}

Serial.println("");
Serial.println(F("***************"));
Serial.println(F("Hersey Hazir!!"));
Serial.println(F("Kart okutulmasi icin bekleniyor..."));
cycleLeds(); //Herşeyin hazır olduğunu kullanıcıya haber vermek için geri bildirim.
}
void loop()
{
do
{
successRead=getID(); //SuccessRead 1 olursa kartı oku aksi halde 0
if(programMode)
{
cycleLeds(); //Program modu geri bildirimi yeni kart okutulmasını bekliyor.
}
else
{
normalModeOn(); //Normal mod, mavi led açık diğer tümü kapalı.
}
}
while(!successRead);
if(programMode)
{
if(isMaster(readCard)) //Master Kart tekrar okutulursa programdan çıkar.
{
Serial.println(F("Master Kart Okundu.."));
Serial.println(F("Programdan cikis yapiliyor.."));
Serial.println(F("*********************"));
programMode=false;
return;
}
else
{
if(findID(readCard)) //Okunan kart silinmek isteniyorsa
{
Serial.println(F("Okunan kart siliniyor.."));
deleteID(readCard);
Serial.println(F("****************"));
}
else //Okunan kart kaydedilmek isteniyorsa
{
Serial.println(F("Okunan kart hafizaya kaydediliyor.."));
writeID(readCard);
Serial.println(F("**************************"));
}
}
}
else
{
if(isMaster(readCard)) //Master Kart okunursa programa giriş yapılıyor.
{
programMode=true;
Serial.println(F("Merhaba Sayin TURK, Programa giris yapiyorum."));
int count=EEPROM.read(0);
Serial.print(F("Sahip oldugum kullanici "));
Serial.print(count);
Serial.print(F("sayisi kadardir."));
Serial.println("");
Serial.println(F("Eklemek veya cikarmak istediginiz karti okutunuz."));
Serial.println(F("*****************************"));
}
else
{
if(findID(readCard))
{
Serial.println(F("Hosgeldin, gecis izni verildi."));
granted(300); //300 milisaniyede kilitli kapıyı aç.
}
else
{
Serial.println(F("Gecis izni verilmedi."));
denied();
}
}
}
}

////////////////////ERİŞİM İZNİ//////////////////////

void granted(int setDelay)
{
digitalWrite(blueLed,LED_OFF); //mavi led sönük
digitalWrite(redLed,LED_OFF); //kırmızı led sönük
digitalWrite(greenLed,LED_ON); //yeşil led yanık
digitalWrite(relay,LOW); //kapı kilidi açıldı
delay(setDelay); //kapının açılması için zaman kazanıyoruz.
digitalWrite(relay,HIGH); //kapı kilitlendi
delay(1000); //1 saniye sonra yeşil led de sönücek
}

////////////////ERİŞİM İZNİ VERİLMEDİ/////////////////////

void denied()
{
digitalWrite(greenLed,LED_OFF); //yeşil ledin sönük olduğundan emin olun
digitalWrite(blueLed,LED_OFF); //mavi ledin sönük olduğuna emin olun
digitalWrite(redLed,LED_ON); //kırmızı led yanık
delay(1000);
}

/////////////////////KART OKUYUCU UID AYARLAMA////////////////////////////

int getID()
{
//Kart okuyucuyu hazır ediyoruz
if(!mfrc522.PICC_IsNewCardPresent()) //yeni bir kart okutun vve devam edin.
{
return 0;
}
if(!mfrc522.PICC_ReadCardSerial()) //kartın serial numarasını alın ve devam edin.
{
return 0;
}
//4 ve 7 byte UID'ler mevcut biz 4 byte olanı kullanıcaz
Serial.println(F("Kartin UID'sini taratin..."));
for (int i=0; i<4; i++)
{
readCard[i]=mfrc522.uid.uidByte[i];
Serial.print(readCard[i],HEX);
}
Serial.println("");
mfrc522.PICC_HaltA(); //Okuma durduruluyor.
return 1;
}

void ShowReaderDetails() {
// Get the MFRC522 software version
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
Serial.print(F("MFRC522 Software Version: 0x"));
Serial.print(v, HEX);
if (v == 0x91)
Serial.print(F(" = v1.0"));
else if (v == 0x92)
Serial.print(F(" = v2.0"));
else
Serial.print(F(" (bilinmeyen)"));
Serial.println("");

if ((v == 0x00) || (v == 0xFF)) {
Serial.println(F("DİKKAT! Haberlesme yetmezligi, MFRC522'yi dogru bagladiginizdan emin olun."));
while(true);
}
}
//////////////////Cycle Leds(Program Modu)///////////////////////

void cycleLeds() {
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun
digitalWrite(greenLed, LED_ON); // yeşil ledin yanık olduğundan emin olun
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun
delay(200);
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun
digitalWrite(blueLed, LED_ON); // mavi ledin yanık olduğundan emin olun
delay(200);
digitalWrite(redLed, LED_ON); // kırmızı ledin yanık olduğundan emin olun
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun
delay(200);
}
/////////////////Normal Led Modu//////////////////////////////

void normalModeOn () {
digitalWrite(blueLed, LED_ON); // mavi led yanık ve program kart okumaya hazır
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun
digitalWrite(relay, HIGH); // kapının kilitli olduğundan emin olun
}

///////////////////////EEPROM için ID Okuma////////////////////////

void readID( int number )
{
int start=(number*4)+2; //başlama pozisyonu
for (int i=0; i<4; i++) //4 byte alamabilmek için 4 kez döngü kurucaz
{
storedCard[i]=EEPROM.read(start+i); // EEPROM dan diziye okunabilen değerler atayın.
}
}

////////////////////EEPROM a ID Ekleme///////////////////////////////////

void writeID(byte a[])
{
if (!findID(a)) //biz eeprom a yazmadan önce önceden yazılıp yazılmadığını kontrol edin.
{
int num=EEPROM.read(0);
int start= (num*4)+6;
num++;
EEPROM.write(0,num);
for(int j=0;j<4;j++)
{
EEPROM.write(start+j,a[j]);
}
successWrite();
Serial.println(F("Basarili bir sekilde ID kaydi EEPROM'a eklendi.."));
}
else
{
failedWrite();
Serial.println(F("Basarisiz! Yanlıs ID veya kotu EEPROM. :-("));
}
}
/////////////////////////EEPROM'dan ID Silme////////////////////////

void deleteID(byte a[])
{
if (!findID(a)) //Önceden EEPROM'dan silinen karta sahipmiyiz kontrol et.
{
failedWrite(); //değilse
Serial.println(F("Basarisiz! Yanlıs ID veya kotu EEPROM. :-("));
}
else
{
int num=EEPROM.read(0);
int slot;
int start;
int looping;
int j;
int count=EEPROM.read(0); //Kart numarasını saklayan ilk EEPROM'un ilk byte'ını oku
slot=findIDSLOT(a);
start=(slot*4)+2;
looping=((num-slot)*4);
num--; //tek sayacı azaltma
EEPROM.write(0,num);
for(j=0;j<looping;j++)
{
EEPROM.write(start+j,EEPROM.read(start+4+j));
}
for(int k=0;k<4;k++)
{
EEPROM.write(start+j+k,0);
}
successDelete();
Serial.println(F("Basarili bir sekilde ID kaydi EEPROM'dan silinmistir.."));
}
}
///////////////Byte'ların Kontrolü///////////////////

boolean checkTwo (byte a[],byte b[])
{
if (a[0] != NULL)
match=true;
for (int k=0; k<4; k++)
{
if(a[k] != b[k])
{
match=false;
}
if(match)
{
return true;
}
else
{
return false;
}
}
}

//////////////////////Boşluk Bulma////////////////////////////

int findIDSLOT (byte find[] )
{
int count = EEPROM.read(0); //EEPROM ile ilk byte ı okuyacağız.
for(int i=1; i<=count; i++) //Döngüdeki her EEPROM girişi için
{
readID(i); //EEPROM daki ID yi okuyacak ve Storedcard[4] de saklayacağız.
if (checkTwo(find, storedCard)) // Saklı Kartlar da olup olmadığının kontrolü.
{ //aynı ID'e sahip kart bulursa geçişe izin vericek.
return i; //kartın slot numarası
break; //aramayı durdurucak.
}
}
}

///////////////////////EEPROM'da ID Bulma//////////////////////

boolean findID (byte find[] )
{
int count = EEPROM.read(0); //EEPROM'daki ilk byte'ı oku
for(int i=1; i <= count; i++) //Önceden giriş yapılmış mı kontrolü.
{
readID(i);
if(checkTwo(find,storedCard) )
{
return true;
break;
}
else
{
//değilse return false
}
}
return false;
}
///////////////////Başarılı Şekilde EEPROM'a Yazma//////////////////

void successWrite()
{
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun.
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun.
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(greenLed, LED_ON); // yeşil ledin yanık olduğundan emin olun.
delay(200);
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(greenLed, LED_ON); // yeşil ledin yanık olduğundan emin olun.
delay(200);
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(greenLed, LED_ON); // yeşil ledin yanık olduğundan emin olun.
delay(200);
}

/////////////////////EEPROM'a Yazma İşlemi Başarısız/////////////////

void failedWrite()
{
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun.
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun.
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(redLed, LED_ON); // kırmızı ledin yanık olduğundan emin olun.
delay(200);
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(redLed, LED_ON); // kırmızı ledin yanık olduğundan emin olun.
delay(200);
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(redLed, LED_ON); // kırmızı ledin yanık olduğundan emin olun.
delay(200);
}

////////////////////Silme İşlemi Başarılı///////////////////////////

void successDelete()
{
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun.
digitalWrite(redLed, LED_OFF); // kırmızı ledin sönük olduğundan emin olun.
digitalWrite(greenLed, LED_OFF); // yeşil ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(blueLed, LED_ON); // mavi ledin yanık olduğundan emin olun.
delay(200);
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(blueLed, LED_ON); // mavi ledin yanık olduğundan emin olun.
delay(200);
digitalWrite(blueLed, LED_OFF); // mavi ledin sönük olduğundan emin olun.
delay(200);
digitalWrite(blueLed, LED_ON); // mavi ledin yanık olduğundan emin olun.
delay(200);
}

////////////////Master Kartın Doğruluğunun Tespiti///////////////////

boolean isMaster (byte test[])
{
if(checkTwo(test,masterCard))
return true;
else
return false;

}

 

 

SİZCE NASIL OLMUŞ?
Beğendim
76%
İlginç
6%
Eh İşte
3%
Anlamadım
3%
Kötü
3%
Berbat
9%
YAZAR HAKKINDA
Gürkan Türk
Gürkan Türk
Sakarya Üniversitesi Elektrik Elektronik Mühendisi Sakarya Üniversitesi Robot Topluluğu
56 YORUMLAR
  • asii
    8 Ekim 2015 at 17:14

    kod da hata alıyorum Arduino:1.6.5 (Windows 7), Kart:”Arduino Uno”

    sketch_oct08a.cpp.o: In function `getID()’:
    C:\Program Files\Arduino/sketch_oct08a.ino:246: undefined reference to `MFRC522::PICC_IsNewCardPresent()’
    C:\Program Files\Arduino/sketch_oct08a.ino:250: undefined reference to `MFRC522::PICC_ReadCardSerial()’
    C:\Program Files\Arduino/sketch_oct08a.ino:262: undefined reference to `MFRC522::PICC_HaltA()’
    sketch_oct08a.cpp.o: In function `ShowReaderDetails()’:
    C:\Program Files\Arduino/sketch_oct08a.ino:268: undefined reference to `MFRC522::PCD_ReadRegister(unsigned char)’
    sketch_oct08a.cpp.o: In function `setup’:
    C:\Program Files\Arduino/sketch_oct08a.ino:60: undefined reference to `MFRC522::PCD_Init()’
    sketch_oct08a.cpp.o: In function `__static_initialization_and_destruction_0′:
    C:\Program Files\Arduino/sketch_oct08a.ino:40: undefined reference to `MFRC522::MFRC522(unsigned char, unsigned char)’
    collect2.exe: error: ld returned 1 exit status
    Derleme sırasında hata oluştu.

    Rapor daha fazla veri içermeli
    “Derleme sırasında ayrıntılı çıktı göster”
    Dosya > Tercihler’de etkinleştirilmiş.
    alıyorum

    • Gürkan Türk
      Gürkan Türk
      9 Ekim 2015 at 00:10

      define kodu kısımlarını kontrol edin veya kodu kopyaladınız mı veya indirdiniz mi bilmiyorum ama doğru kopyaladığınızdan emin olun.

  • asii
    8 Ekim 2015 at 17:16

    şemada da sağ alt köşedeki 4 pini kısadevre yapmışşsınız yanlış galiba

    • Gürkan Türk
      Gürkan Türk
      8 Ekim 2015 at 23:54

      evet o kısa devre yanlış olmuş kusura bakmayın bir başka arkadaş söleyince farkettim ben de

  • Gürkan Türk
    Gürkan Türk
    9 Ekim 2015 at 00:45
  • 12 Ekim 2015 at 04:23

    ‘class MFRC522’ has no member named ‘PCD_Init’ hatası alıyorum sebebi nedir sizce ?

    • Gürkan Türk
      Gürkan Türk
      12 Ekim 2015 at 21:35

      Kütüphaneniz de RFID-RC522 kütüphanesinin olup olmadığını kontrol edin. Link kırıktı yenilendi zip içindeki dosyayı önce masaüstüne çıkarın ardından RFID_library klasörünün kendisini arduino uygulamasının dosya konumunu açtıktan sonra libraries klasörünün içine yerleştirin.

  • Muhammed Zengin
    12 Ekim 2015 at 12:31

    Bende Cemil beyin ki gibi MFRC522 hatası aldım. Nasıl çözebiliriz acaba? Tüm örnekleri denedim başka sitelerdende hep aynı hata.

    • Gürkan Türk
      Gürkan Türk
      12 Ekim 2015 at 21:34

      Kütüphaneniz de RFID-RC522 kütüphanesinin olup olmadığını kontrol edin. Link kırıktı yenilendi zip içindeki dosyayı önce masaüstüne çıkarın ardından RFID_library klasörünün kendisini arduino uygulamasının dosya konumunu açtıktan sonra libraries klasörünün içine yerleştirin.

  • yasar inanli
    19 Ekim 2015 at 15:27

    Merhabalar Gurkan bey. oncelikle buyuk emek gerektiren cok guzel bir proje yaptiginiz icin tebrik ederim.
    benim bu projeyle ilgili bir sorum ve ricam olacak sizdenv. siz role yerine bir led kullanmissiniz ve calisma seklini gosterebilmek icin sanirim ledi hep HIGH seklinde yani yanik sekilde birakmissiniz. Ama ben bunun yerine role kullanmis olsam rolede devamli bir yuk olacak sanirim. Acaba sizden ricam, normal bekleme durumunda 4 nolu pin LOW, gecis izni verildiginde HIGH seklinde yapmam icin kod uzerinde nerelerde degisiklik yapmam gerekli? birde rolenin yada HIGH komutunun 2-3 saniye kadar acik kalmasini istersem yine kod uzerindeki degisikligi bana iletirmisiniz lutfen .. simdiden tesekkurlerimi sunarim. Bu arada asagida ben koddan alinmis bazi bolumleri yazdim (eksik yazmis olabilirim) Bu satirlarda mi degisiklik yapmamiz gerekiyor diye paylasmak ve izninizi almak istedim. Sonucta emek veren sizsiniz, izninizi almak istemeden birde yanlis bisey yapmayim diye sormak istedim.. iyi calismalar..

    ////////////////////ERİŞİM İZNİ//////////////////////
    digitalWrite(relay,LOW); //kapı kilidi açıldı **BU SATIRDA***
    delay(setDelay); //kapının açılması için zaman kazanıyoruz. (BU SATIRAMI ACIK KALMA SURESI YAZILACAK ACABA??)
    digitalWrite(relay,HIGH); //kapı kilitlendi ***BU SATIRDA****

    Serial.println(F(“Hosgeldin, gecis izni verildi.”));
    granted(300); //300 milisaniyede kilitli kapıyı aç. (YADA BU SATIRLARDAN MI ACIK KALMA SURESI AYARLANACAK?)

    /////////////////Normal Led Modu//////////////////////////////
    digitalWrite(relay, HIGH); // kapının kilitli olduğundan emin olun ***BU SATIRDA***

    void setup()
    { digitalWrite(relay,HIGH); //Kapının kilitli olduğundan enin olun. ** BU SATIRDA**

    • Gürkan Türk
      Gürkan Türk
      20 Ekim 2015 at 01:03

      Öncelikle teşekkür ederim tabi ki kullanabilirsiniz değiştirebilirsiniz ben de siz deneyin diye paylaştım gayet geliştirilebilir bir proje tekrar teşekkür ederim bende. Sorununuza gelecek olursak dediğiniz gibi doğru anlamışsınız. HIGH olan ilk satırı LOW ve altındaki LOW değerini de HIGH yaparsanız istediğiniz gibi röleye sadece kapıdan giriş yapılmak istendiğinde güç göndermiş olucaksınız. Sistem de rölenin çekili olduğunu göstermek adına HIGH kullanıldı onları LOW yaparsanız sıkntı olmicaktır. Anlatmaya çalıştığım şey aslında siz röleyi hep çekili kullanmak istemediğiniz için sadece gerektiği zaman röle çeksin bıraksın dediğiniz için gördüğünüz tüm (relay,HIGH) satırlarını (relay,LOW) ve gördüğünüz tüm (relay,LOW) satırlarını (relay,HIGH) yapın. Zamanlama konusuna gelirsek setDelay ve 300 microsaniye aslında birbiri ile bağlantılı siz süreyi değiştimek isterseniz “300” değeri ile oynama yapın. Tekrar teşekkür ederim iyi çalışmalar.

      • yasar inanli
        21 Ekim 2015 at 00:49

        tesekkur ederim cevaplariniz icin. bugun sistemi calistirdim ve program uzerinde birtakim degisiklikler yaparak kendime uyarladim ve sorunsuz calisiyor. her sekliyle guzel bir calisma olmus. emeginize saglik.

  • Gürkan Türk
    Gürkan Türk
    20 Ekim 2015 at 01:03

    Öncelikle teşekkür ederim tabi ki kullanabilirsiniz değiştirebilirsiniz ben de siz deneyin diye paylaştım gayet geliştirilebilir bir proje tekrar teşekkür ederim bende. Sorununuza gelecek olursak dediğiniz gibi doğru anlamışsınız. HIGH olan ilk satırı LOW ve altındaki LOW değerini de HIGH yaparsanız istediğiniz gibi röleye sadece kapıdan giriş yapılmak istendiğinde güç göndermiş olucaksınız. Sistem de rölenin çekili olduğunu göstermek adına HIGH kullanıldı onları LOW yaparsanız sıkntı olmicaktır. Anlatmaya çalıştığım şey aslında siz röleyi hep çekili kullanmak istemediğiniz için sadece gerektiği zaman röle çeksin bıraksın dediğiniz için gördüğünüz tüm (relay,HIGH) satırlarını (relay,LOW) ve gördüğünüz tüm (relay,LOW) satırlarını (relay,HIGH) yapın. Zamanlama konusuna gelirsek setDelay ve 300 microsaniye aslında birbiri ile bağlantılı siz süreyi değiştimek isterseniz “300” değeri ile oynama yapın. Tekrar teşekkür ederim iyi çalışmalar.

  • hakan demir
    25 Ekim 2015 at 01:21

    GÜRKAN BEY BUNU ARDUNIO MEGA DA DENEMEK İSTEDİM LCD EKLEYİP AMA MC522 DİKKAT HABERLERŞE YETERSİZLİĞİ DİYO SEBEBİ NEDİR ACABA MEGADA MC522 NİN BAĞLANTILARI NASIL OLMALI

    • Gürkan Türk
      Gürkan Türk
      10 Kasım 2015 at 12:59

      Hakan Bey megaya dair bir bilgim yok yalnız internet de bu rfid nin mega ile yapılmış uygulamaları mevcut. Orada ki bacak bağlantılarını kullanarak devrenizi kurabilirsiniz.

      • HAKAN DEMİR
        14 Kasım 2015 at 19:31

        teşekkür ederim gürkan bey çalıştırdım

        • hüseyin yaylacı
          28 Eylül 2016 at 15:12

          hakan abi banada yardımcı olursan bende mega ay uyarlamk ıstiyorum
          nasıl yaptıgını ogrene bilirmiyim

  • Ahmet
    29 Ekim 2015 at 12:02

    bu uygulamaya en fazla kaç master kart yükleyebiliriz

    ve nasıl tanıtıcaz kartı

    • ahmet olgun
      31 Ekim 2015 at 05:51

      ben bu projeye lcd eklemek istesem nasıl ekliycem acaba yardım edebilirmisiniz lütfen

      • Gürkan Türk
        Gürkan Türk
        10 Kasım 2015 at 13:03

        LCD konusu da programa önce bir LCD kütüphanesi ve bacak bağlantılarını tanıtmanız ve yapmanız gerekecek. Ardından yapmanız gereken Serial.print kısımlarını lcd ye göre uyarlamak olucak.

    • Gürkan Türk
      Gürkan Türk
      10 Kasım 2015 at 13:00

      141 kart yüklenebilir diye hatırlıyorum. EEPROOM hafızasına bağlı olarak değişkenlik gösteren birşey o. Devreyi kurduğunuzda ilk okutulan kart master kart olacaktır.

    • Gürkan Türk
      Gürkan Türk
      10 Kasım 2015 at 13:01

      141 kart yüklenebilir diye hatırlıyorum.Arudinoda ki EEPROOM hafızasına bağlı olarak değişkenlik gösteren birşey o. Devreyi kurduğunuzda ilk okutulan kart master kart olacaktır.

  • Enes GİDER
    1 Şubat 2016 at 17:40

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.
    Arduino: 1.0.6 (Windows NT (unknown)), Board: “Arduino Uno”
    RFIDEP.ino: In function ‘void setup()’:
    RFIDEP:79: error: ‘class EEPROMClass’ has no member named ‘length’

    Gürkan hocam merhabalar.böyle bir sorunla karşılaşıyorum. nasıl çözebilirim acaba yardımcı olabilir misiniz ?

    • Gürkan TÜRK
      Gürkan TÜRK
      4 Şubat 2016 at 15:13

      Sanirim uygulama yapmaya calistiginiz arduino uygulamasi dosya ismine rfidep ismini verdiniz. Benim anladigim kadariyla void setup kisminda bi hata ile karsilastiniz 79.satirda bir problem var gibi. Size tavsiyem kutuphaneleri dogru bir sekilde arduino uygulamasi dosya konumunda libraries klasorune gerekli tum kutuphaneleri yerlestirmek baglantilari da dogru bir sekilde yapip projeyi dogru bir sekilde calistordiktan sonra naptigimizi anlamak olmali.

  • emre ansın
    8 Şubat 2016 at 16:44

    Selamlar
    Ben devreyi kurdum çalıştırdım herşey sorunsuz tek problemim butona basınca yada 4. pine gnd verince reset atmıyor sebebi ne olabilir. Emepinize sağlık Teşekkürler

  • emre ansın
    9 Şubat 2016 at 14:28

    pardon hocam yanlış yazmışım 3. pine bağlı ama yinede çalışmıyor. yani 3. pini direk gnd ye verince de çalışmıyor sizce sebebi ne olabilir ?

  • Gürkan TÜRK
    Gürkan TÜRK
    12 Şubat 2016 at 11:04

    Devre calisirken ben bunu denememistim nasil calistirmaya calistiginiza dair bir fikrim yok ama soyle denemenizi tavsiye edicem. 3.pini gnd ye bagla. Gucu kes ve sonra guc ver buyuk ihtimal programi bastan kontrol edicegi icin resetlencektir tum sistem. Siz projelere yorum yapinca bize bildirim gelmiyor denk gelince yaziyorum kusura bakmayin.

  • emre ansın
    16 Şubat 2016 at 11:05

    Gürkan hocam teşekkürler ilginiz için. dediğiniz gibi yapınca oluyor ama problemi normal bir şekilde çözmem gerekiyor yani enerjiyi kesmeden bastığımda çalışmıyor ve yapamadım yinede çözüm bulursanız lütfen paylaşın tekrar teşekkürler emeğinize sağlık

  • Gürkan Türk
    Gürkan Türk
    16 Şubat 2016 at 13:00

    Sayın Emre butona basılı mı tutuyorsun o önemli bir husus butona 5 saniye basılı tutman gerek sen garanti olsun diye 6 saniye bas veya resetlenene kadar bekle. He yine olmadı arduinonun reset butonunu kullanarak programı baştan başlatabilirsin. Aklıma bunlar geldi teşekkür ederim.

  • MIKAIL KORKMAZ
    17 Şubat 2016 at 00:43

    Gürkan hocam iyi geceler. bu mesaj1m1 okudugunuzda sizden bir istirham1m olacak. sizin bu rc522 rf1d kart okuyucuya tan1ml1 master kart cal1sman1z1 öncelikle cok begendigimi belirtmek isterim. sizin bu cal1sman1z1 benim yapm1s oldugum rf1d 125 mhz kart okuyucuya entegre yapabilir miyiz? benim cal1smama ait kod asag1dad1r.

    #include
    #include
    char character;
    String our_id;
    Servo myservo;
    int poz = 0;
    SoftwareSerial RFID = SoftwareSerial(4,5);

    void setup()
    {
    Serial.begin(9600);
    RFID.begin(9600);
    myservo.attach(9);
    }

    void loop()
    {
    while(RFID.available()>0)
    {
    character = RFID.read();
    our_id += character;
    }

    if (our_id.length() > 10)
    {
    our_id = our_id.substring(1,13);

    if (our_id == “0E004513633B”)
    {
    Serial.print(“ACCESS GRANTED (id: “);
    Serial.print(our_id);
    our_id = “”;
    Serial.println(” ) “);

    delay(20);
    pinMode(9, HIGH);
    for(poz=0; poz=0; poz–)
    {
    myservo.write(poz);
    delay(15);
    pinMode(9, LOW);
    }
    }
    else
    {
    Serial.print(“ACCESS DENIED (id: “);
    Serial.print(our_id);
    our_id = “”;
    Serial.println(” ) “);
    }
    }
    our_id = “”;
    delay(15);
    }

    bu cal1s1yor. burada belirtecegim noktalar; rf1d 125 mhz kart okuyucuda + ve – kutbunun bagl1 oldugu pinlerin d1s1nda, arduino nano ile iletisimi saglayan 5. pinin , arduino nanoda d4 pinine bagl1 olmas1. servo motor ise arduino nano da d8 pinine bagl1. diger baglant1lar hep ayn1. sizin bu cal1smay1 benim rf1d 125 mhz kart okuyuculu sisteme uygulayabilir miyiz? simdiden yard1mlar1n1z icin tesekkürler.

  • Mikail KORKMAZ
    17 Şubat 2016 at 09:32

    Merhaba. Hocam sitenizle 1 hafta önce tanıştım. İçerisindeki birbirinden değerli çalışmanız ilgimi çekti. Ben de yaklaşık 3 aydır arduino teknolojisi ile uğraşıyorum. Benim bir çalışmamda kullanmak istediğim, sizlerin yapmış olduğu rfıd rc522 kart okuyuculu master kart uygulamasını benim çalışmama entegre yapmak. bunu yapmaya çalıştım ancak başarılı olamadım. bu konuda yardımlarınızı bekliyorum. şimdiden herşey için teşekkürler.

    bu benim rfıd 125 mhz kart okuyuculu çalışma kodlarım;

    #include
    #include
    char character;
    String our_id;
    Servo myservo;
    int poz = 0;
    SoftwareSerial RFID = SoftwareSerial(4,5);

    void setup()
    {
    Serial.begin(9600);
    RFID.begin(9600);
    myservo.attach(9);
    }

    void loop()
    {
    while(RFID.available()>0)
    {
    character = RFID.read();
    our_id += character;
    }

    if (our_id.length() > 10)
    {
    our_id = our_id.substring(1,13);

    if (our_id == “0E004513633B”)
    {
    Serial.print(“ACCESS GRANTED (id: “);
    Serial.print(our_id);
    our_id = “”;
    Serial.println(” ) “);

    delay(20);
    pinMode(9, HIGH);
    for(poz=0; poz=0; poz–)
    {
    myservo.write(poz);
    delay(15);
    pinMode(9, LOW);
    }
    }
    else
    {
    Serial.print(“ACCESS DENIED (id: “);
    Serial.print(our_id);
    our_id = “”;
    Serial.println(” ) “);
    }
    }
    our_id = “”;
    delay(15);
    }

    sizin rfıd rc522 kart okuyuculu master kart uygulama kodunuz (yanlız kod içerisine kart okutulduğunda geçiş izni verildi kısmına benim servo motor çalışma kodunu ekledim) sizin çalışmanızda kullanılan rc522 kart okuyucu kısmını benim çalışmama rfıd 125 mhz kart okuyucuya entegre yapabilir miyiz? şimdiden herşey için teşekkürler.

  • Gürkan Türk
    Gürkan Türk
    19 Şubat 2016 at 22:58

    Şimdi uzaktan böyle anlamam biraz zor oluyor. Siz elinizden geldiğince anlatmaya çalışmışssınız teşekkür ederim öncelikle. Benim fikrim 125 mhz kart okuyucunun bir farkının olmadığını düşünüyorum fikrim sadece yanlış olabilir. Pin bağlantılarınızı doğru kontrol etmenizi öneriyorum yani siz kendi kart okuyucunuzu benim devremdeki gibi uyarlamaya çalışırken dediğiniz o d8 d7 gibi pinlerin doğru yere bağlı olup olmadıklarını bunların void setup kısmında arduino bunları nerede kullanacak bunu düzgün bir şekilde belirtip belirtmediğiniz önemli. Bir de dikkatimi çekti #include kodlarının karşısı hep boş yanlış mı kopyaladınız yoksa gerçekten karşıları boş mu bunu da merak ediyorum. Gerçi boş olsa hata verirdi derleme sırasında o da muhtemel tabi. Sorunuzu ben şöyle cevaplayayım bence sizin 125 mhz lik kart okuyucunuza entegre edebiliriz.

  • Mikail KORKMAZ
    25 Şubat 2016 at 16:36

    Hocam öncelikle cevabınız için teşekkür ederim. #include lerde sonlarında kütüphane isimleri vardı. ama çıkmamış. kopyalayıp yapıştırdım. oraya dikkat etmemişim. ama sonlarında kütüphane isimleri var. kod bu haliyle çalışıyor. ben sadece buna master kart ve hafıza silme işlemlerini entegre etmek istemiştim. ne zamandır uğraşıyorum yapamadım. bağlantılar dediğim gibi aynı. ancak sizinki rc522 modeli benim ki ise 125 khz modeli olunca uymadı.

  • Gürkan TÜRK
    Gürkan TÜRK
    26 Şubat 2016 at 01:09

    İnanın elimden gelen birşey yok RC522 modülü elde etmeye çalışsanız? Sizin elinizde sanırım HZ-1050 var. Ben onu kullanmayı bilmiyorum yalnız siz bu konuyu öğrenmek istiyor gibi görünüyorsunuz. Eğer böyle bir durum ise RC522 ve HZ-1050 nin datashhetlerini karşılaştırıp sonuca ulaşabilirsiniz. Sonuçta ikiside aynı yapıda bacak bağlantıları çıkış girişleri farkları var gördüğüm kadarıyla. Yok ben bunu kullanacağım derseniz RC522 edinin derim 🙂

  • cantastic
    11 Nisan 2016 at 17:37

    Ben bunu apartmanın dış kapısına uygulamam gerekiyor arduinoyu güç kaynağına bağlama ve kapı otomatı bağlantılarını nasıl yapabilirim ?
    Benim bildiğim kapı otomatı 12V ile çalışıyor onun sistemine nasıl entegre edebilirim ?

  • Tugay MEMİŞ
    25 Nisan 2016 at 00:50

    Merhaba bağlantıları yapıp programı arduino’ya attım seri port da kart ekleyip okutabiliyorum fakat ledler yanmıyor yardım edermisiniz arduino uno r3 kullanıyorum

    • Gürkan Türk
      Gürkan Türk
      4 Mayıs 2016 at 22:32

      Size bildirim geliyor mu bilmiyorum ama sorunuza cevap vermeye çalıştım.

  • Gürkan Türk
    Gürkan Türk
    4 Mayıs 2016 at 22:32

    Öncelikle cantastic kullanıcısının sorusuna cevap vereyim. Kapı otomatları 12V ile çalışıyor evet ister UNO veya NANO için 5V bi yerden kapı otomatı için 12V bi yerden güç çekin. Piyasada 220 AC yi 12V – 5V DC veren güç kaynakları olması lazım ondan edinebilir veya 220 AC yi 12V e çeviren güç kaynağı elde edip 12V için de güzel bir regüle devresi elde edip 5V çekebilirsiniz. Tugay Bey’in dediği gibi benim led kullandığım kapı açıp kapanma olayı yerine kapı otomatını röle ile bağlamanız sorununuzu çözecektir.

    Tugay Bey ledlerin yanmayışı için void setup kısmında ledlere output verildiğinden emin olun devrede gücün akım yeterliliği konusunda emin olun. UNO nano fark etmiyor tamamen yazılımsal veya güç bakımından sıkıntı var gibi gözüküyor. Geç oldu cevaplarım kusura bakmayın lütfen.

  • AHMET
    24 Mayıs 2016 at 00:41

    buzzer eklemek istiyorum nasıl yapabilirim ?

  • Gürkan TÜRK
    Gürkan TÜRK
    24 Mayıs 2016 at 17:34

    Kapı kilidinin açılmasına izin verilen kod satırına buzzera ait bir kod eklemen lazım o kadar. 🙂

    • METİN GÜLER
      19 Ekim 2016 at 20:10

      GÜRKAN BEY BENDE AYNI PROJEYİ YAPCAM AMA HOCAM BNDEN 2000 KİŞİLİK İSTEDİ NASIL KİŞİ SAYISINI YÜKSEBİLİRİM

  • cemil göçmen
    3 Temmuz 2016 at 00:16

    gürkan bey bu prjede 10 adet kart tanımlanabilirmi,şimdiden teşekkürler.

  • hüseyin yaylacı
    9 Eylül 2016 at 17:58

    abi kişi sayısını nasıl yükseltiriz

  • Gürkan TÜRK
    Gürkan TÜRK
    19 Ekim 2016 at 20:32

    Kisi sayisini yukseltebilmenin yolu hafiza karti takilabilen bi arduino bulmak. Arduino mega unoya gore daha fazla eeprom hafizali olabilir 😉 Hafiza karti diyorum cunku bu sefer eeprom yerine datalari hafiza kartina kaydedicez. Bunun icinde hafiza kartini kullanmayi ogrenmelisiniz ardindan bizim projemizi hafiza kartli haline donusturmelisiniz.

  • Ali BERBER
    22 Ekim 2016 at 12:58

    Arduino:1.6.7 (Windows 10), Kart:”Arduino/Genuino Uno”

    C:\Users\Ali\Desktop\RFIDEP\RFIDEP.ino: In function ‘boolean checkTwo(byte*, byte*)’:

    C:\Users\Ali\Desktop\RFIDEP\RFIDEP.ino:393:15: warning: NULL used in arithmetic [-Wpointer-arith]

    if (a[0] != NULL)

    ^

    Çalışmanız programın 9.394 bayt (29 %) saklama alanını kullandı. Maksimum 32.256 bayt.
    Global değişkenler belleğin 231 byte kadarını (11%) kullanıyor. Yerel değişkenler için 1.817 byte yer kalıyor. En fazla 2.048 byte kullanılabilir.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    Karta yüklenirken sorun oluştu. Tavsiyeler için http://www.arduino.cc/en/Guide/Troubleshooting#upload adresine göz atabilirsiniz.
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xc8
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xc8

    Rapor daha fazla veri içermeli
    “Derleme sırasında ayrıntılı çıktı göster”
    Dosya > Tercihler’de etkinleştirilmiş.
    Böyle bir hata alıyorum nedeni ne olablir sizce? UNO kullandım nano yerine sıkıntı ondan mı acaba?

  • Gürkan TÜRK
    Gürkan TÜRK
    22 Ekim 2016 at 22:19

    Uno ile nanao ayni diyebiliriz. Sikintinin bundan kaynaklandigini dusunmuyorum. Kutuphane eksikligi ve yahutta eksik kod satirlari olabillir. Islemleri tek tek gerceklestirdiginizden emin olun 😉

  • Ömer Şiar Baysal
    24 Ekim 2016 at 18:37

    Merhaba,

    Kodun kaynağı hakkında herhangi bir bilgi verilmemiş, oysaki GPL lisansı ile yayınlamıştım. Kod ile beraber GPL lisansını da sunmalısınız. Kodu kullanıp, yeniden dağıtabilmenizin için tek kural budur. Teşekkürler.

  • deniz esen
    26 Kasım 2016 at 16:47

    Arduino:1.6.12 (Windows 10), Kart:”Arduino/Genuino Uno”

    C:\Users\DENÄ°Z\Desktop\RFIDEP1\RFIDEP1.ino: In function ‘void setup()’:

    RFIDEP1:85: error: ‘ShowReaderDetails’ was not declared in this scope

    RFIDEP1:140: error: ‘getID’ was not declared in this scope

    RFIDEP1:167: error: ‘cycleLeds’ was not declared in this scope

    C:\Users\DENÄ°Z\Desktop\RFIDEP1\RFIDEP1.ino: In function ‘void loop()’:

    RFIDEP1:175: error: ‘getID’ was not declared in this scope

    RFIDEP1:178: error: ‘cycleLeds’ was not declared in this scope

    RFIDEP1:182: error: ‘normalModeOn’ was not declared in this scope

    RFIDEP1:188: error: ‘isMaster’ was not declared in this scope

    RFIDEP1:198: error: ‘findID’ was not declared in this scope

    RFIDEP1:201: error: ‘deleteID’ was not declared in this scope

    RFIDEP1:207: error: ‘writeID’ was not declared in this scope

    RFIDEP1:214: error: ‘isMaster’ was not declared in this scope

    RFIDEP1:228: error: ‘findID’ was not declared in this scope

    RFIDEP1:231: error: ‘granted’ was not declared in this scope

    RFIDEP1:236: error: ‘denied’ was not declared in this scope

    C:\Users\DENÄ°Z\Desktop\RFIDEP1\RFIDEP1.ino: In function ‘void writeID(byte*)’:

    RFIDEP1:352: error: ‘findID’ was not declared in this scope

    RFIDEP1:362: error: ‘successWrite’ was not declared in this scope

    RFIDEP1:367: error: ‘failedWrite’ was not declared in this scope

    C:\Users\DENÄ°Z\Desktop\RFIDEP1\RFIDEP1.ino: In function ‘void deleteID(byte*)’:

    RFIDEP1:377: error: ‘findID’ was not declared in this scope

    RFIDEP1:379: error: ‘failedWrite’ was not declared in this scope

    RFIDEP1:390: error: ‘findIDSLOT’ was not declared in this scope

    RFIDEP1:403: error: ‘successDelete’ was not declared in this scope

    C:\Users\DENÄ°Z\Desktop\RFIDEP1\RFIDEP1.ino: In function ‘boolean checkTwo(byte*, byte*)’:

    C:\Users\DENÄ°Z\Desktop\RFIDEP1\RFIDEP1.ino:413:15: warning: NULL used in arithmetic [-Wpointer-arith]

    exit status 1
    ‘ShowReaderDetails’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • Korcan Bilgi
    20 Aralık 2016 at 02:21

    Tanımlı kartı okuttuğumuzda röle çekili kalması ve tekrar tanımlı kart okutulduğunda röleyi bırakması için hangi değişikliği yapmalıyız.

  • Tayfun Eskici
    7 Ocak 2017 at 18:08

    program sorunsuz çalışıyor. Ancak okuduğu kart ID lerinin ilk 2 karakterine göre işlem yapıyor. tamamını kaale almıyor Elinizde 2 adet DD ile başlayan kart varsa birini tanıttığınızda diğeride tanımlı gibi çalışıyor

    • gürkan türk
      gürkan türk
      14 Ocak 2017 at 01:01

      Öyle bir durum olması söz konusu olmaması lazım çünkü gelen RFID kartın 8 haneli kodunu karşılaştırma yapıyor. Yani 8 hanenin her bir satırını tek tek 🙂

  • Sinan HALICI
    17 Ocak 2017 at 22:14

    Program sorunsuz çalışıyor eline sağlık. Yalnız ben mastercard sayısını artırmak istiyorum ama kod ekledim ama hata veriyor.
    Mastercard sayısını nasıl artıracağım, yardımcı olur musun?

YORUM YAP