- Kullanılan malzemeler
- EM18 RFID Okuyucu Modülü
- Arduino kullanarak RFID Etiketi Benzersiz 12 haneli Kodu bulun
- Devre şeması
- Parmak İzi Sensörü Modülü
- RFID Anahtarsız Ateşleme için Programlama
Günümüzde arabaların çoğu, anahtarsız giriş ve basma düğmeli ateşleme sistemiyle birlikte gelir; burada yalnızca anahtarı cebinizde taşımanız ve arabanın kapısını açmak için parmağınızı kapı kolundaki kapasitif sensöre koymanız yeterlidir. İşte bu projede RFID ve Parmak İzi sensörü kullanarak bu sisteme birkaç güvenlik özelliği daha ekliyoruz. RFID sensörü, kullanıcının lisansını doğrular ve parmak izi sensörü araçta yalnızca yetkili bir kişiye izin verir.
Bu Parmak İzi Tabanlı Araç Ateşleme Sistemi için bir R305 Parmak İzi sensörü ve bir EM18 RFID okuyucu ile Arduino kullanıyoruz.
Kullanılan malzemeler
- Arduino Nano
- R305 Parmak izi sensörü
- EM18 RFID okuyucu
- 16 * 2 Alfanümerik LCD
- DC motorlar
- L293D Motor sürücü IC
- Veroboard veya Breadboard (hangisi mevcutsa)
- Bağlantı telleri
- 12V DC Akü
EM18 RFID Okuyucu Modülü
RFID, Radyo frekansı tanımlama anlamına gelir. Dijital verilerin RFID etiketlerinde kodlandığı ve radyo dalgaları kullanılarak bir RFID okuyucu tarafından kodunun çözülebildiği bir teknolojiyi ifade eder. RFID, bir etiketteki verilerin bir cihaz tarafından kodunun çözüldüğü barkodlamaya benzer. RFID teknolojisi; Güvenlik sistemi, Çalışan katılım sistemi, RFID Kapı Kilidi, RFID Tabanlı Oylama Makinesi, Geçiş Ücreti Toplama Sistemi gibi çeşitli uygulamalarda kullanılmaktadır.
EM18 Okuyucu, RFID etiketlerinde depolanan kimlik bilgilerini okuyabilen bir modüldür. RFID etiketleri, etiket Okuyucu ile kapsama alanına girdiğinde bir EM18 okuyucu modülü tarafından kodu çözülebilen 12 basamaklı benzersiz bir numarayı saklar. Bu modül, dahili anteni olan 125 kHz frekansta çalışır ve 5 volt DC güç kaynağı kullanılarak çalıştırılır.
Seri data çıkışı verir ve 8-12 cm menzile sahiptir. Seri iletişim parametreleri 8 veri biti, 1 durdurma biti ve 9600 baud hızıdır.
EM18 Özellikleri:
- Çalışma voltajı: + 4.5V ila + 5.5V DC
- Akım tüketimi: 50mA
- Çalışma frekansı: 125KHZ
- Çalışma sıcaklığı: 0-80 derece C
- İletişim Baud Hızı: 9600
- Okuma mesafesi: 8-12 cm
- Anten: Dahili
EM18 Pinout:
Pin açıklaması:
VCC: 4.5 - 5V DC voltaj girişi
GND: Toprak pimi
Buzzer: Buzzer veya LED pin
TX: RS232 için EM18'in seri veri Verici pini (Çıkış)
SEL: RS232 kullanmak için YÜKSEK olmalıdır (WEIGAND kullanılıyorsa DÜŞÜK)
Veri 0: WEIGAND verisi 0
Veri 1: WEIGAND verisi 1
RFID ve etiketler hakkında daha fazla bilgi edinmek için önceki RFID tabanlı projelerimize bakın.
Arduino kullanarak RFID Etiketi Benzersiz 12 haneli Kodu bulun
Arduino araç ateşleme sistemi için Arduino'yu programlamadan önce, ilk olarak 12 basamaklı RFID etiketi benzersiz kodunu bulmamız gerekiyor. Daha önce tartıştığımız gibi, RFID etiketleri 12 basamaklı benzersiz bir kod içerir ve bir RFID okuyucu kullanılarak kodu çözülebilir. Okuyucunun yanındaki RFID etiketini kaydırdığımızda, Okuyucu, çıkış seri portu üzerinden benzersiz kodları verecektir. Öncelikle, devre şemasına göre Arduino'yu RFID okuyucuya bağlayın ve ardından aşağıda verilen kodu Arduino'ya yükleyin.
int count = 0; char card_no; geçersiz kurulum () {Serial.begin (9600); } void döngü () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {card_no = Serial.read (); count ++; gecikme (5); } Seri.baskı (kart_no); }}
Kodu başarıyla yükledikten sonra, seri monitörü açın ve baud hızını 9600'e ayarlayın. Ardından kartı Reader'ın yakınına kaydırın. Ardından 12 haneli kod seri monitörde görüntülenmeye başlayacaktır. Bu işlemi kullanılan tüm RFID etiketleri için yapın ve ileride başvurmak üzere not alın.
Devre şeması
Bu Parmak İzi tabanlı Ateşleme Sistemi için devre şeması aşağıda verilmiştir:
Benim durumumda, aşağıda gösterildiği gibi tüm devreyi performans kartında lehimledim:
Parmak İzi Sensörü Modülü
Parmak İzi Sensör Modülü veya Parmak İzi Tarayıcı, parmağın baskı görüntüsünü yakalayan ve daha sonra eşdeğer şablona dönüştüren ve bunları Arduino tarafından seçilen ID (konum) üzerine belleğine kaydeden bir modüldür. Burada tüm süreç, bir parmak izinin görüntüsünü almak, onu şablonlara dönüştürmek ve konumu depolamak gibi Arduino tarafından yönetilir.
Daha önce bir oylama makinesi, katılım sistemi, güvenlik sistemi vb. İnşa etmek için aynı R305 sensörünü kullandık. Tüm parmak izi tabanlı projeleri buradan kontrol edebilirsiniz.
Parmak İzlerini Sensöre Kaydetme:
Programa geçmeden önce parmak izi sensörü için gerekli kitaplıkları kurmamız gerekiyor. Burada, R305 parmak izi sensörünü kullanmak için " Adafruit_Fingerprint.h " kullandık. Öncelikle aşağıda verilen bağlantıyı kullanarak kütüphaneyi indirin:
- Adafruit parmak izi sensörü kitaplığı
Başarılı bir indirme işleminden sonra, Arduino IDE'de Dosya > Araçlar> Kitaplığı dahil et>.zip kitaplığı ekle'ye gidin ve ardından kitaplığı yüklemek için zip dosyası konumunu seçin.
Başarılı bir kitaplık kurulumundan sonra, sensör belleğine yeni bir parmak izi kaydetmek için aşağıda verilen adımları izleyin.
1. Arduino IDE'de Dosya > Örnekler > Adafruit Parmak İzi Sensör Kitaplığı > Kaydol'a gidin .
2. Kodu Arduino ya yükleyin ve Seri monitörü 9600 baud hızında açın.
Önemli: Programdaki Yazılım seri pinini SoftwareSerial mySerial (12, 11) olarak değiştirin.
3. Parmak izinizi saklamak istediğiniz parmak izi için bir kimlik girmelisiniz. Bu benim ilk parmak izim olduğu için sol üst köşeye 1 yazdım ve ardından Gönder düğmesini tıkladım.
4. Daha sonra parmak izi sensöründeki ışık yanıp sönerek parmağınızı sensörün üzerine koymanız gerektiğini ve ardından başarılı bir kayıt için sizi onaylayana kadar seri monitörde gösterilen adımları izleyin.
RFID Anahtarsız Ateşleme için Programlama
Bu Biyometrik Ateşleme Sisteminin tam kodu eğitimin sonunda verilmiştir. Burada kodun birkaç önemli bölümünü açıklıyoruz.
İlk şey, gerekli tüm kitaplıkları dahil etmektir. Benim durumumda, R305 parmak izi sensörünü kullanmak için " Adafruit_Fingerprint.h " dosyasını ekledim. Ardından parmak izi sensörünün bağlanacağı seri bağlantı noktasını yapılandırın. Benim durumumda 12'yi RX Pin ve 11'i TX pin olarak ilan ettim.
#include #include
Bir sonraki adımda, kod boyunca kullanılacak tüm değişkenleri tanımlayın. Ardından Arduino ile LCD bağlantı pinlerini tanımlayın ve ardından LiquidCrystal sınıfından bir nesnenin bildirimini yapın.
karakter girişi; int count = 0; int a = 0; const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Daha sonra, loop () içinde, RFID etiketlerinin benzersiz 12 basamaklı kodlarını almak için kod yazılır ve bir dizide saklanır. Burada dizinin öğeleri, kimliği doğrulanmış kişi ayrıntılarını almak için bellekte depolanan benzersiz kodlarla eşleştirilecektir.
sayım = 0; while (Serial.available () && count <12) { input = Serial.read (); count ++; gecikme (5); }
Daha sonra alınan dizi, saklanan etiket kodlarıyla karşılaştırılır. Kod eşleşirse, lisans geçerli kabul edilir ve bu da kullanıcının geçerli parmak izi koymasına izin verir. Aksi takdirde, geçersiz bir lisans gösterecektir.
eğer ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Lisans Geçerli"); lcd.setCursor (0, 1); lcd.print ("Hoş Geldiniz"); gecikme (1000); a = 1; parmak izi(); }
Bir sonraki adımda, önceden kaydedilmiş bir parmak izi için geçerli bir parmak izi kimliği döndürecek bir getFingerprintID işlevi yazılır.
int getFingerprintID () { uint8_t p = parmak.getImage (); eğer (p! = PARMAK İZİ_OK) -1 döndürür; p = parmak.image2Tz (); eğer (p! = PARMAK İZİ_OK) -1 döndürür; p = finger.fingerFastSearch (); eğer (p! = PARMAK İZİ_OK) -1 döndürür; finger.fingerID'yi döndür; }
Başarılı bir RFID eşleşmesinden sonra çağrılan Inside işlevi parmak izi () , geçerli bir parmak izi kimliği almak için getFingerprintID işlevi çağrılır. Daha sonra kimliği doğrulanmış kişi verileriyle ilgili bilgileri almak için if-else döngüsü kullanılarak karşılaştırılır ve veriler eşleşirse araç ateşlenir, aksi takdirde yanlış Parmak İzi istenir.
int parmak izi kimliği = getFingerprintID (); gecikme (50); eğer (parmak iziID == 1) { lcd.setCursor (0, 0); lcd.print ("Erişim Verildi"); lcd.setCursor (0, 1); lcd.print ("Araç Başladı"); digitalWrite (9, YÜKSEK); digitalWrite (10, DÜŞÜK); while (1); }
Arabanıza iki güvenlik katmanı ekleyen bu RFID Araç Ateşleme Sistemi bu şekilde çalışır.
Tam Kod ve tanıtım videosu aşağıda verilmiştir.