Bu projemizde arduino ile rfid sesli kart okuyucu projesini yapacağız. Rfid ile yapılmış birçok proje bulunmakta. Fakat bu projemizin diğerlerinde farkı kimlik tanımla yaparken sesli olarak kartın kayıtlı olup olmadığını söyleyerek kayıtlı ise kayıtlı olan kişin de ismini söyleyerek farklı bir uygulama yapmış olacağız. Ama öncelikle rfid nedir ve çalışma sisteminden bahsedelim.
Radyo frekansı ile tanımlama sistemi Rfid, radyo frekansı kullanarak nesneleri tekil ve otomatik tanıma yöntemidir. RFID etiketi, radyo frekansı ile yapılan sorguları almaya ve cevaplamaya olanak tanıyan bir silikon yonga, anten ve kaplamadan meydana gelir. Yonga, etiketin üzerinde bulunduğu nesne ile ilgili bilgileri saklar. Anten, radyo frekansı kullanarak nesne bilgilerini okuyucuya iletir. Kaplama ise etiketin bir nesne üzerine yerleştirilebilmesi için yonga ve anteni çevreler.
Malzemeler:
- Arduino
- Wtv020 mp3 modül
- RC522 RFID kartı
- Hoparlör
- 2 gb Sd Kart
Projemizde mp3 modül kullanarak sesli bilgi vermesini sağlayacağız. Bunun için öncelikle wtv020 mp3 modülüne ses dosyası eklemeniz gerekir.
wtv020 mp3 modül ses dosyası eklenmesine buradan bakabilirsiniz.
Elektronik Kısım:
Yukarıdaki devre şemasına bakarak gerekli bağlantıları yapalım. Rfid SPI haberleşmesi ile iletişim sağladığından uno modelinden farklı bir kart kullanıyorsanız SPI pinleri farklı pinler olacaktır.
Yazılımda kullanılan kütüphaneleri indirelim.
Yazılım Kısmı:
// Rfid Sesli Kart Okuyucu // Coder: Sezgin GÜL // www.robimek.com #include <SPI.h> #include <RFID.h> #include <Wtv020sd16p.h> int resetPin = 2; int clockPin = 3; int dataPin = 4; int busyPin = 5; Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin); RFID rfid(10,9); // rfid sda ve reset pinleri byte emaomos[5] = {19,168,166,2,31}; // kartın kimlik numarası byte serNum[5]; byte data[5]; int LED_access = 6; // yeşil led int LED_intruder = 7; // kırmızı led void setup(){ wtv020sd16p.reset(); Serial.begin(9600); rfid.init(); pinMode(LED_access,OUTPUT); pinMode(LED_intruder,OUTPUT); } void loop(){ boolean emaomos_card = true; if (rfid.isCard()){ // karttan verilerin okunması if (rfid.readCardSerial()){ delay(1000); data[0] = rfid.serNum[0]; data[1] = rfid.serNum[1]; data[2] = rfid.serNum[2]; data[3] = rfid.serNum[3]; data[4] = rfid.serNum[4]; } for(int i=0; i<5; i++){ if(data[i]!= emaomos[i]) emaomos_card = false; } if (emaomos_card){ // kartın verileri eşleşiyor ise wtv020sd16p.playVoice(2); delay(4000); digitalWrite(LED_access,HIGH); delay(2000); digitalWrite(LED_access,LOW); } else{ // kimlik bilgileri eşleşmiyor ise wtv020sd16p.playVoice(1); delay(4000); digitalWrite(LED_intruder, HIGH); delay(2000); digitalWrite(LED_intruder, LOW); } delay(500); rfid.halt(); } }
merhaba. ben rfıd kartları okuduğu zaman ,her kartta bir renk olacak şekilde, renkleri söylesin istiyorum. yardımcı olur musunuz?
sd kart modülü ile daha sağlıklı dediğiniz için onu aldım. fakat benim arduino bilgim pek olmadığından videolarınızı izleyerek veya kodlarınızı çekerek yapabiliyorum. sd kart ile bu projeyi nasıl yapacağımı bulamadım açıkcası. :I yardımcı olabilir misiniz ??
hocam rfid.init(); kısmında hata veriyor.rfid.h kütüphanesini kurdum.
Birden fazla RFID kart kontrolü nasıl yapabiliriz bu programda. Özelliklede if (rfid.readCardSerial()){
delay(1000);
data[0] = rfid.serNum[0];
data[1] = rfid.serNum[1];
data[2] = rfid.serNum[2];
data[3] = rfid.serNum[3];
data[4] = rfid.serNum[4];
}
kısmı ile bir kart okundu. İkinci kart okunması ve o kartlada basşka bir işlem yapılması isteniyorsa ne yapılmalı?
hocam ıyı gunler elınızde bu proje hazır varmı satın almak ısıtıyorum
iyi günler Uğur. Proje hazır var fakat burada kullanılan mp 3 modülün çalışması sıkıntılı bazen kendi kendine stop moduna geçiyor. Yani modül kendinden sıkıntılı. Modül kullanmadan yaptığım projede mevcut. Bu metot sorunsuz çalışıyor. http://www.robimek.com/arduino-ile-sd-karttan-mp3-ses-dosyasi-calma/
nerede hata yaptım bilmiyorum ses dosyalarını cevirip 1.ad4 2.ad4 diye adlandırıp karta yükledim
baglantılarda tamam ama ses seda yok zaten konu hakkında ilk tecrübem olduğundan acayip zor anlıyorum nerede hata yapıyor olabilirim wtv020mo1 kullanıyorum uno r3 clone ile yaptım
0001.ad4, 0002.ad4 şeklinde adlandırılmalıdır.
nasıl adlandırılmalı sezgin hocam bende uğraşıyorum ama yapamdım bir yardım ederseniz sevinirim
ad4 formatına çevirdiğinde dosya ismi 0001, 0002, 0003 şeklinde olmalı.
serial port ekranında kartı rfıd ye okuttuğumda hiç birsey görmuyorum normalmi
projedeki kodda print ettirmedim. O yüzden görünmez.
MERHABA HOCAM BİR SORUM OLACAKTI
“byte emaomos[5] = {19,168,166,2,31}; // kartın kimlik numarası ” BURADA BENDEKİ KARTIN KİMLİK NUMARASINI MI YAZMAM GEREKİYOR BİRDE BENDEKİ KARTIN KİMLİK NUMARASINI NASIL BULURUM KARTIN KİMLİK NUMARASINI NEYE GÖRE YAZIYORUZ
evet oraya yazacaksın. kimlik numarasını öğrenmek için kütüphanedeki örnek kodu yükleyip serial monitörden görebilirsin.
tmm hocam yaptım çok saolun teşekkür ederim
Merhaba ben rc522 ye ait kimlik numarasını öğrenmek istiyorum burada yazdığınız kartın kimlik numarası dediği etikete mi okuyucuya mı ait?eğer okuyucuya aitse örnekler kısmında hangi kodu yüklemeliyim?
yanlış yazmışım her kullanıcının kullandığı farklı kartlar var ve kullanıcılar okuttuğunda kullanıcının ismini soylesin istiyorum hosgeldin ahmet gibi
her kartın numarasını koda ekle ve her ismin de ses dosyasını oluşturup sd karta yükle. Koşul fonksiyonu ile de eşleştirmeleri yap.
her hart için ayrı ses tanımlaması yapılabilir mi her kart sahibinin adını soylesin istiyorum olabilirmi
harfin ses dosyası kayıt edilemez örneği “b” harfini söylerken “be” diye söyleriz. Yani sessiz harflerde iki olarak ve her koşulu kayıt yaptırman gerekir. “b” harfi için “ba”, “be”, “bu”, “bi” gibi. Diğer türlü tek harf kayıt olur fakat onun için ek programlar kullanman gerekir. Ya da google translate deki yazılan yazıları sesli söyleme uygulamasını kullanarak, visual studio ile pc den konuşturabilirsin.
Merhaba hocam kafamdaki projeyi tasarlıyorum bu konu çok fazla işime yaradı çok teşekkür ederim ama bazı ekstraları var ben bunu yaptığımda uno daki tüm pinler dolu oluyo ama bana daha fazla haberleşme lazım kısaca pin sayısını arttırmam gerek nasıl bi parça önerirsiniz ?
arduino mega kullanabilirsin.
Wtv020 mp3 modül nereden bulabilirim yada tüm parçaları nasıl temin edebilirim yardımcı olursanız sevinirim
ben gittigidiyor dan almıştım
arduino uno ile yapılabilir mi bu proje
İstediğin modelle yapabilirsin.