- Potrebne komponente:
- Modul senzora otiska prsta u glasačkom stroju:
- Radno objašnjenje:
- Objašnjenje sklopa:
- Objašnjenje programa:
Svi smo dobro upoznati s elektroničkim glasačkim aparatima, gdje se vaš glas registrira elektroničkim putem i za glasanje na izborima ne trebate koristiti glasački listić. Danas je sigurnost glavna briga, a također treba osigurati da netko ne može glasati dva puta, tako da se ovaj problem može riješiti uvođenjem glasovanja na temelju otiska prsta, gdje se osoba može ovlastiti na temelju otiska prsta. Ovo će također zaustaviti lažno glasanje. Dakle, danas gradimo biometrijski glasački stroj zasnovan na FingerPrint-u koristeći Arduino.
Također provjerite naše prethodne projekte elektroničkog glasačkog stroja koristeći različite mikrokontrolere:
- Elektronički glasovni uređaj pomoću Raspberry Pi
- RFID bazirana glasačka mašina
- Projekt elektroničkog glasačkog stroja temeljenog na mikrokontroleru AVR
- Elektronička glasačka mašina koja koristi Arduino
Potrebne komponente:
- Arduino Uno
- Modul osjetnika otiska prsta
- Tipke
- LED diode -2
- 1K otpornik -3
- Otpor 2.2K
- Vlast
- Spajanje žica
- Zujalica
- LCD 16x2
- Daska za kruh
Modul senzora otiska prsta u glasačkom stroju:
Modul senzora otiska prsta ili skener otiska prsta modul je koji snima ispis prsta, a zatim ga pretvara u ekvivalentni predložak i sprema u svoju memoriju na odabrani ID (mjesto) od strane Arduino. Ovdje cijelim postupkom zapovijeda Arduino poput snimanja otiska prsta, pretvaranja u predloške i pohranjivanja mjesta itd.

U ovom krugu FingerPrint glasačkih strojeva koristili smo senzorski modul otiska prsta za provjeru autentičnosti istinskog birača unosom prsta u sustav. Ovdje koristimo 5 tipki za podudaranje, upis / povratak, brisanje / u redu, gore i dolje. Tipka za upis i Del ovdje imaju dvostruke značajke. Tipka za prijavu koristi se za upis novog otiska prsta u sustav i funkciju leđa. Znači kada korisnik želi upisati novi prst, tada treba pritisnuti tipku za upis, a zatim LCD traži ID ili mjesto na kojem korisnik želi pohraniti izlaz za ispis prsta. Sada, ako u ovom trenutku korisnik ne želi nastaviti dalje, može ponovno pritisnuti tipku za prijavu za povratak (ovaj put tipka za registraciju ponaša se kao tipka Natrag). Znači da tipka za registraciju ima funkciju za registraciju i povratak. Tipka DEL / OK također ima istu dvostruku funkciju kao kad korisnik upiše novi prst, tada mora odabrati ID prsta ili lokaciju pomoću druge dvije tipke, naime GORE I DOLJE, sada korisnik treba pritisnuti tipku DEL / OK (ovaj put se ova tipka ponaša kao OK) da nastavite s odabranim ID-om ili lokacijom. Ključ podudaranja koristi se kad god birač želi glasovati, a zatim prvo mora potvrditi autentičnost pravog birača držeći prst na senzoru za otisak prsta, ako je prošao ovu provjeru autentičnosti, tada može glasati.

Da biste saznali više o upisu otisaka prstiju i drugim stvarima, provjerite naše prethodno uputstvo o povezivanju senzora otiska prsta s Arduinom, a također i naš demo video na kraju ovog vodiča.
Radno objašnjenje:
Rad ovog biometrijskog sustava glasovanja za izbore je malo složen za početnike. Prije svega, korisnik mora upisati prst ili glasače (u ovom je kodu maksimalno ograničenje birača 25) uz pomoć tipki / tipki. Da bi to učinio, korisnik mora pritisnuti tipku ENROLL i tada LCD traži unos mjesta / ID-a gdje će prst biti trgovina. Dakle, sada korisnik treba unijeti ID (lokaciju) pomoću tipki GORE / DOLJE. Nakon odabira lokacije / ID korisnik mora pritisnuti tipku OK (tipka DEL). Sada će LCD tražiti postavljanje prsta preko modula za ispis prsta. Sada korisnik treba staviti prst preko modula za ispis prsta. Tada će LCD zatražiti uklanjanje prsta s modula za ispis prsta i ponovno zatražiti stavljanje prsta. Sada korisnik treba ponovo staviti prst preko modula za ispis prsta. Sada modul za ispis prstiju snima sliku, pretvara je u predloške i pohranjuje po odabranom ID-u u memoriju modula za ispis prsta.Sada će birač biti registriran i on / ona može glasati. Istom metodom svi birači mogu se registrirati u sustav.

Ako korisnik želi ukloniti ili izbrisati bilo koji pohranjeni ID, tada mora pritisnuti tipku DEL, nakon pritiska tipke DEL, LCD će tražiti odabrano mjesto, znači odabrati ID koji će se izbrisati. Sada korisnik mora odabrati ID i pritisnuti tipku OK (ista tipka DEL). Sada će vas LCD obavijestiti da je prst uspješno izbrisan.
Postupak glasovanja:
Sada kada korisnik želi glasati, on / ona mora pritisnuti tipku za podudaranje i tada će se oglasiti zvučni signal, a LED će također svijetliti i LCD će tražiti mjesto prsta iznad modula za otiske prstiju. Sada će vam Arduino dati tri pokušaja da stavite prst. Nakon stavljanja prsta preko modula otiska prsta, modul otiska prsta snima sliku prsta i pronalazi njegove ID-ove u sustavu. Ako se otkrije ID prsta, LCD će prikazati ovlaštenog birača. To znači da je korisnik ovlašten glasati. A onda sustav prelazi u sljedeću fazu glasanja. Sada će zelena LED lampica svijetliti, što znači da sada birač može glasati za svoje kandidate pritiskom na otpuštenu tipku (s CRVENE ploče za kruh u ovoj demonstraciji). Ako isti birač želi ponovno glasati, sustav će ga prikazati "Već glasao" . Znači da isti birač ne može ponovno glasati, a zujalo će se oglasiti 5 sekundi. Ako bilo koji neregistrirani korisnik želi glasati, tada modul za ispis prsta neće otkriti svoj ID u sustavu, a LCD će prikazati ' No Fingerprint Found' .

CAN1, CAN2, CAN3 ovdje predstavljaju kandidata 1, kandidata 2 i kandidata 3, koji su se kandidirali za izbore.
Objašnjenje sklopa:
Krug ovog projekta glasovnih uređaja na temelju FingerPrint vrlo je jednostavan koji sadrži Arduino za kontrolu cjelokupnog procesa projekta, tipku za upis, brisanje, odabir ID-ova i svrhu glasanja, zujalicu za upozorenje, LED diode za indikaciju i 16x2 LCD za upute Birač i pokazujući rezultat također. Žuta LED označava da je modul otiska prsta spreman za snimanje slike prsta, a zelena LED označava da je sustav spreman za glasanje ili za prikaz rezultata.

Gumb je izravno povezan na pin A0 (UPISI), A1 (DEL), A2 (GORE), A3 (DOLJE) i A4 (Podudaranje), D5 (Može1), D4 (Može2), D3 (Može3), D2 (Rezultat) Arduina s obzirom na tlo. Žuta LED dioda spojena je na digitalni pin D7 Arduina s obzirom na masu preko 1k otpornika, a zelena LED dioda D6 Arduina istom metodom. Rx i Tx modula otiska prsta izravno su povezani na serijski pin Tx i Rx Arduina. Opskrba od 5 v koristi se za napajanje modula za ispis prsta preuzetog s ploče Arduino. Zujalica je također povezana na A5. LCD 16x2 konfiguriran je u 4-bitnom načinu rada, a njegovi RS, EN, D4, D5, D6 i D7 izravno su povezani na digitalni pin D13, D12, D11, D10, D9 i D8 Arduina.
Objašnjenje programa:
U programu smo koristili biblioteku senzora otiska prsta Adafruit za povezivanje modula otiska prsta s Arduino pločom. Kompletni kod možete provjeriti u nastavku. Ovdje objašnjavamo glavne funkcije programa Arduino.
U funkciji postavljanja dali smo upute definiranim pinovima i pokrenuli LCD i modul otiska prsta.
Nakon nje, u funkciji void loop () , pričekali smo tipku za provjeru i pritisnuli tipku Match kako bismo započeli ispis prsta kako bismo uzeli unos i usporedili ID snimljene slike sa spremljenim ID-ima. Ako se dogodi podudaranje, nastavite sa sljedećim korakom.
petlja void () {lcd.setCursor (0,0); lcd.print ("Pritisnite tipku za podudaranje"); lcd.setCursor (0,1); lcd.print ("za pokretanje sustava"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (zujalica, VISOKO); kašnjenje (200); digitalWrite (zujalica, LOW); digitalWrite (indFinger, HIGH); za (int i = 0; i <3; i ++)…………………
S obzirom na funkciju void checkKeys () koristi se za provjeru je li tipka Enroll ili pritisnuta ili ne i što učiniti ako se pritisne. Ako je tipka ENROLL pritisnuta, poziva se funkcija Enroll () i pritisne se tipka DEL, a zatim se poziva funkcija delete () .
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("Molimo pričekajte"); kašnjenje (1000); while (digitalRead (enroll) == 0); Upisati(); } inače if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Molimo pričekajte"); kašnjenje (1000); delet (); }}
Dana funkcija koristi se za unos ID-a koji se briše i pozivanje funkcije uint8_t deleteFingerprint (uint8_t id) koja će izbrisati prst iz zapisa.
void delet () {int count = 0; lcd.clear (); lcd.print ("Izbriši prst"); lcd.setCursor (0,1); lcd.print ("Mjesto:"); while (1) {lcd.setCursor (9,1); lcd.print (count); if (digitalRead (up) == 0) {count ++; if (count> 25) count = 0; kašnjenje (500); }……………….
Dana funkcija koristi se za brisanje otiska prsta iz zapisa odabranog ID-a.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Molimo pričekajte"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Izbrisano!"); lcd.clear (); lcd.print ("Slika izbrisana"); lcd.setCursor (0,1); lcd.print ("Uspješno"); kašnjenje (1000); } else {Serial.print ("Nešto nije u redu"); lcd.clear (); lcd.print ("Nešto nije u redu"); lcd.setCursor (0,1); lcd.print ("Pokušaj ponovo kasnije"); kašnjenje (2000); povratak p; }}
Dana funkcija koristi se za snimanje slika s otiskom prsta i njihovo pretvaranje u predložak te njihovo spremanje odabranim ID-om u memoriju modula za ispis prsta.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ID prsta:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Place Finger"); kašnjenje (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Navedena funkcija koristi se za glasanje i prikaz rezultata:
void Vote () {lcd.clear (); lcd.print ("Molimo smjestite"); lcd.setCursor (0,1); lcd.print ("Vaš glas"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (zujalica, VISOKO); kašnjenje (500); digitalWrite (zujalica, LOW); kašnjenje (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Provjerite puni kod i demonstracijski video ispod.
