- Gerekli Bileşenler:
- Oylama Makinasında Parmak İzi Sensör Modülü:
- Çalışma Açıklaması:
- Devre Açıklaması:
- Program Açıklaması:
Hepimiz, oyunuzun elektronik olarak kaydedildiği ve seçimlerde oy kullanmak için oy pusulası kullanmanıza gerek olmadığı Elektronik Oylama Makinelerine aşinayız. Günümüzde güvenlik büyük bir endişe kaynağıdır ve birisinin iki kez oy kullanamayacağından emin olunması gerekir, bu nedenle bu sorun, bir kişinin parmak izine göre yetkilendirilebileceği Parmak İzi Tabanlı Oylama ile çözülebilir. Bu aynı zamanda sahte oylamayı da durduracaktır. Bu yüzden bugün Arduino kullanarak Parmak İzi Tabanlı Biyometrik Oylama Makinesi inşa ediyoruz.
Ayrıca farklı Mikrodenetleyiciler kullanarak önceki Elektronik Oylama Makinesi Projelerimizi de kontrol edin:
- Raspberry Pi kullanan Elektronik Oylama Makinesi
- RFID Tabanlı Oylama Makinesi
- AVR Mikrodenetleyici Tabanlı Elektronik Oylama Makinesi Projesi
- Arduino kullanan Elektronik Oylama Makinesi
Gerekli Bileşenler:
- Arduino Uno
- Parmak İzi Sensörü Modülü
- Basma Düğmeleri
- LED'ler -2
- 1K Direnç -3
- 2.2K direnç
- Güç
- Bağlantı telleri
- Buzzer
- 16x2 LCD
- Ekmek Tahtası
Oylama Makinasında 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 bunu eşdeğer şablona dönüştüren ve bunları Arduino tarafından seçilen ID (konum) üzerinde hafızasına kaydeden bir modüldür. Burada tüm işlemler, parmak izinin bir görüntüsünü almak, onu şablonlara dönüştürmek ve konumu depolamak gibi Arduino tarafından komuta edilmektedir.
Bu Parmak İzi Oylama Makinesi Devresinde, sisteme parmak girişini alarak gerçek seçmeni doğrulamak için Parmak İzi Sensör Modülünü kullandık. Burada Eşleştir, Kaydol / geri, Sil / Tamam, YUKARI ve Aşağı için 5 düğme kullanıyoruz. Kaydolma ve Sil tuşu burada çift özelliklere sahiptir. Kayıt tuşu, yeni parmak izlenimini sisteme kaydetmek ve aynı zamanda geri işlevi için kullanılır. Kullanıcı yeni parmağını kaydetmek istediğinde, kayıt tuşuna basması gerektiği ve ardından LCD, kullanıcının parmak izi çıktısını saklamak istediği kimliği veya Konumu sorduğu anlamına gelir. Şimdi, kullanıcı şu anda daha fazla ilerlemek istemezse, geri gitmek için tekrar kayıt tuşuna basabilir (bu sefer kayıt tuşu Geri tuşu olarak davranır). Kayıt anahtarının hem kayıt hem de geri işlevi olduğu anlamına gelir. DEL / OK tuşu ayrıca kullanıcı yeni parmağını kaydettiğinde olduğu gibi aynı çift işleve sahiptir, ardından başka iki tuşu, yani YUKARI VE AŞAĞI kullanarak parmak kimliğini veya Konumunu seçmesi gerekir, artık kullanıcının DEL / OK tuşuna basması gerekir (bu sefer bu tuş Tamam gibi davranır) seçili Kimlik veya Konum ile devam edin. Maç anahtarı, seçmen oy kullanmak istediğinde kullanılır, daha sonra Parmak İzi Sensöründe parmağını tutarak önce gerçek seçmen için kimlik doğrulaması yapması gerekir, bu kimlik doğrulamasından geçerse oy kullanabilir.
Daha parmak izlerini ve diğer şeyler kayıt hakkında bilgi edinmek için Arduino ile Parmak İzi Sensörü arabirim üzerinde önceki öğretici kontrol edin ve aynı zamanda bizim Demo kontrol video bu eğiticinin sonundaki.
Çalışma Açıklaması:
Seçim için bu Biyometrik Oylama Sisteminin Çalışması yeni başlayanlar için biraz karmaşık. Öncelikle kullanıcının parmak veya seçmen (bu kodda maksimum seçmen limiti 25'tir) butonlar yardımıyla kaydetmesi gerekir. Bunu yapmak için kullanıcının KAYDET tuşuna basması gerekir ve ardından LCD, parmağın bir mağaza olacağı konum / kimliği girmesini ister. Yani artık kullanıcının YUKARI / AŞAĞI tuşlarını kullanarak ID (Konum) girmesi gerekiyor. Konum / Kimlik seçildikten sonra kullanıcının bir OK tuşuna (DEL tuşu) basması gerekir. Şimdi LCD, parmağınızı parmak izi modülünün üzerine yerleştirmenizi isteyecektir. Artık kullanıcının parmağını parmak izi modülünün üzerine koyması gerekiyor. Daha sonra LCD, parmağın parmak izi modülünden çıkarılmasını ve tekrar parmağın yerleştirilmesini ister. Artık kullanıcının parmağını parmak izi modülünün üzerine koyması gerekiyor. Artık parmak izi modülü bir görüntüyü alıp şablona dönüştürüyor ve seçilen ID ile parmak izi modülünün belleğine kaydediyor.Artık seçmen kaydedilecek ve oy kullanabilecek. Aynı yöntemle tüm seçmen sisteme kaydedilebilir.
Artık kullanıcı, saklanan herhangi bir kimliği kaldırmak veya silmek isterse, DEL tuşuna basması gerekir, DEL tuşuna bastıktan sonra, LCD, silinecek kimliği seçmek anlamına gelir. Şimdi kullanıcının ID'yi seçmesi ve OK tuşuna (aynı DEL tuşu) basması gerekir. Şimdi LCD, parmağın başarıyla silindiğini size bildirecektir.
Oylama Süreci:
Artık kullanıcı oy kullanmak istediğinde eşleştirme tuşuna basması gerekiyor ve ardından sesli uyarı bipleyecek ve LED de yanacak ve LCD parmak izi modülü üzerine parmak yerleştirmenizi isteyecek. Şimdi Arduino size parmağınızı koymanız için üç girişimde bulunacak. Parmak izi modülünün üzerine parmağınızı yerleştirdikten sonra parmak izi modülü, parmak görüntüsünü yakalar ve kimliklerinin sistemde mevcut olduğunu bulur. Parmak kimliği algılanırsa, LCD yetkili Seçmeni gösterecektir. Kullanıcının oy verme yetkisine sahip olduğu anlamına gelir. Ardından sistem oylama için bir sonraki aşamaya geçer. Şimdi Yeşil LED yanacak, bu artık seçmenlerin ilgili bir tuşa basarak adaylarına oy verebileceği anlamına geliyor (bu gösterideki RED ekmek panosundan). Şimdi aynı seçmen tekrar oy vermek isterse, sistem bunu 'Zaten Oy Verildi' olarak gösterecek . Aynı seçmen tekrar oy kullanamaz ve zil 5 saniye süreyle bip sesi çıkarır. Kayıtlı olmayan herhangi bir kullanıcı oy vermek isterse, parmak izi modülü kimliğini sisteme algılamayacak ve LCD'de ' Parmak İzi Bulunamadı' mesajı görüntülenecektir .
CAN1, CAN2, CAN3 burada seçime katılan Aday 1, Aday 2 ve Aday 3'ü temsil etmektedir.
Devre Açıklaması:
Bu Parmak İzi Tabanlı Oylama Makinesi Projesinin devresi, projenin tüm sürecini kontrol etmek için Arduino, kayıt, silme, kimlik seçimi ve oylama amacı için basma düğmesi, uyarı için bir zil, gösterge için LED'ler ve talimat için 16x2 LCD içeren çok basittir. Seçmen ve sonucu da gösteriyor. Sarı LED, parmak izi modülünün parmağın görüntüsünü almaya hazır olduğunu, Yeşil LED ise sistemin oylamaya veya sonuçları görmeye hazır olduğunu gösterir.
Basma düğmesi doğrudan pin A0 (KAYDET), A1 (DEL), A2 (UP), A3 (DOWN) ve A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Sonuç) Arduino'nun zemine göre. Arduino'nun Dijital pin D7'sine 1k direnç ile toprağa göre sarı LED, Arduino'nun D6'sına ise Yeşil LED aynı yöntemle bağlanır. Parmak izi modülünün Rx ve Tx'i doğrudan Arduino'nun Seri pin Tx ve Rx'lerine bağlanır. Arduino kartından alınan parmak izi modülüne güç vermek için 5v besleme kullanılır. A5'e bir zil de bağlanır. 16x2 LCD, 4 bit modunda yapılandırılır ve RS, EN, D4, D5, D6 ve D7, Arduino'nun Dijital pin D13, D12, D11, D10, D9 ve D8'e doğrudan bağlanır.
Program Açıklaması:
Bir programda, parmak izi modülünü Arduino kartı ile arayüz oluşturmak için Adafruit Parmak İzi Sensör Kitaplığı kullandık. Aşağıdaki kodun tamamını kontrol edebilirsiniz. Burada Arduino Programının temel işlevlerini açıklıyoruz.
Kurulum fonksiyonunda tanımlı pinlere yön verdik ve LCD ve Parmak İzi modülünü başlattık.
Bundan sonra, void loop () işlevinde, giriş almak ve yakalanan görüntü kimliğini kayıtlı kimliklerle karşılaştırmak için parmak izini başlatmak için kontrol tuşunu bekledik ve Eşleştir tuşuna basıyoruz. Bir eşleşme olursa, sonraki adıma geçin.
geçersiz döngü () {lcd.setCursor (0,0); lcd.print ("Eşleştirme Tuşuna Basın"); lcd.setCursor (0,1); lcd.print ("sistemi başlatmak için"); digitalWrite (indVote, LOW); digitalWrite (indFinger, DÜŞÜK); eğer (digitalRead (match) == 0) {digitalWrite (buzzer, HIGH); gecikme (200); digitalWrite (zil, DÜŞÜK); digitalWrite (indFinger, YÜKSEK); for (int i = 0; i <3; i ++)…………………
Verilen void checkKeys () işlevi, Kaydol veya DEL tuşuna basılıp basılmadığını ve basıldığında ne yapılacağını kontrol etmek için kullanılır. KAYDET tuşuna basıldığında, Kayıt () işlevi çağrılır ve DEL tuşuna basıldığında silme () işlevi çağrılır.
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("Lütfen Bekleyin"); gecikme (1000); while (digitalRead (kayıt) == 0); Kaydol (); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Lütfen Bekleyin"); gecikme (1000); silme (); }}
Verilen işlev, silinecek kimliği girmek ve parmağı kayıtlardan silen uint8_t deleteFingerprint (uint8_t id) işlevini çağırmak için kullanılır.
void delet () {int count = 0; lcd.clear (); lcd.print ("Parmağı Sil"); lcd.setCursor (0,1); lcd.print ("Konum:"); while (1) {lcd.setCursor (9,1); lcd.print (sayım); if (digitalRead (up) == 0) {count ++; eğer (sayı> 25) sayı = 0; gecikme (500); }……………….
Verilen işlev, seçilen kimlik kaydından parmak izini silmek için kullanılır.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Lütfen bekleyin"); p = finger.deleteModel (id); eğer (p == FINGERPRINT_OK) {Serial.println ("Silindi!"); lcd.clear (); lcd.print ("Figer Silindi"); lcd.setCursor (0,1); lcd.print ("Başarıyla"); gecikme (1000); } else {Serial.print ("Bir Şey Yanlış"); lcd.clear (); lcd.print ("Yanlış Bir Şey"); lcd.setCursor (0,1); lcd.print ("Daha Sonra Tekrar Deneyin"); gecikme (2000); dönüş p; }}
Verilen Fonksiyon, parmak izi görüntüsü almak ve bunları şablona dönüştürmek ve seçilen ID ile parmak izi modülü hafızasına kaydetmek için kullanılır.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("parmak kimliği:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Parmağı Yerleştir"); gecikme (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Verilen işlev, Oylama ve sonuçları görüntülemek için kullanılır:
void Oy () {lcd.clear (); lcd.print ("Lütfen Yerleştirin"); lcd.setCursor (0,1); lcd.print ("Oyunuz"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, DÜŞÜK); digitalWrite (zil, YÜKSEK); gecikme (500); digitalWrite (zil, DÜŞÜK); gecikme (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Aşağıdaki Tam Kodu ve tanıtım Videosunu kontrol edin.