- Požadované komponenty:
- Modul snímača odtlačkov prstov vo volebnom prístroji:
- Pracovné vysvetlenie:
- Vysvetlenie obvodu:
- Vysvetlenie programu:
Všetci dobre poznáme elektronické hlasovacie zariadenia, kde sa váš hlas zaregistruje elektronicky a na hlasovanie vo voľbách nemusíte používať hlasovací lístok. Dnes je bezpečnosť hlavným problémom a je tiež potrebné zabezpečiť, aby niekto nemohol hlasovať dvakrát, takže tento problém je možné vyriešiť zavedením hlasovania založeného na odtlačkoch prstov, kde môže byť osoba autorizovaná na základe jeho odtlačku prsta. Týmto sa tiež zastaví falošné hlasovanie. Takže dnes budujeme biometrický hlasovací stroj založený na FingerPrint pomocou Arduina.
Skontrolujte tiež naše predchádzajúce projekty elektronického hlasovacieho zariadenia pomocou rôznych mikrokontrolérov:
- Elektronický hlasovací prístroj využívajúci Raspberry Pi
- Hlasovacie zariadenie založené na RFID
- Projekt elektronického hlasovacieho zariadenia založeného na mikrokontroléri AVR
- Elektronický hlasovací prístroj využívajúci Arduino
Požadované komponenty:
- Arduino Uno
- Modul snímača odtlačkov prstov
- Tlačidlá
- LED diódy -2
- 1K rezistor -3
- 2,2K rezistor
- Moc
- Pripojovacie vodiče
- Bzučiak
- 16x2 LCD
- Chlebová doska
Modul snímača odtlačkov prstov vo volebnom prístroji:
Modul snímača odtlačkov prstov alebo snímač odtlačkov prstov je modul, ktorý zachytáva tlačený obrázok prsta a potom ho prevádza do ekvivalentnej šablóny a ukladá ich do svojej pamäte na vybrané ID (umiestnenie) od spoločnosti Arduino. Tu riadi celý proces Arduino, ako je snímanie odtlačkov prstov, prevádzanie do šablón a ukladanie umiestnenia atď.
V tomto obvode hlasovacích strojov FingerPrint sme použili modul snímača odtlačkov prstov na autentifikáciu skutočného voliča pomocou ich vstupu prstom do systému. Tu používame 5 tlačidiel na priradenie, registráciu / späť, odstránenie / OK, HORE a Dole. Kľúč Enroll a Del tu majú dvojité funkcie. Kláves Enroll sa používa na zapísanie nového odtlačku prsta do systému a tiež do funkcie späť. Znamená to, že keď používateľ chce zaregistrovať nový prst, musí stlačiť klávesu Enroll a potom sa na displeji LCD zobrazí výzva na zadanie ID alebo umiestnenia, kam chce používateľ uložiť výstup odtlačku prsta. Ak teraz užívateľ nechce pokračovať, môže sa vrátiť späť opätovným stlačením klávesu na registráciu (kláves na registráciu sa tentokrát chová ako kláves Back). Znamená, že kľúč na registráciu má funkciu registrácie aj späť. Kláves DEL / OK má tiež rovnakú dvojitú funkciu, ako keď používateľ zaregistruje nový prst, potom si musí zvoliť ID prsta alebo umiestnenie pomocou ďalších dvoch klávesov, a to NAHORU A DOLU. Teraz musí používateľ stlačiť kláves DEL / OK (tentoraz sa tento kláves chová ako OK), aby pokračujte vybraným ID alebo umiestnením. Kľúč zhody sa používa vždy, keď chce volič hlasovať, potom sa musí najskôr pravého voliča autentifikovať podržaním prsta na snímači odtlačkov prstov. Ak v tomto overení prešiel, môže hlasovať.
Ak sa chcete dozvedieť viac o registrácii odtlačkov prstov a ďalších veciach, pozrite si náš predchádzajúci návod na prepojenie snímača odtlačkov prstov s programom Arduino a tiež si pozrite naše ukážkové video na konci tohto tutoriálu.
Pracovné vysvetlenie:
Fungovanie tohto biometrického volebného systému pre voľby je pre začiatočníkov trochu zložitý. Najskôr je potrebné, aby užívateľ pomocou tlačidiel / klávesov zaregistroval prst alebo voličov (v tomto kóde je maximálny limit voliča 25). Za týmto účelom musí užívateľ stlačiť kláves ENROLL a potom LCD požiadať o zadanie polohy / ID, kde bude prstom obchod. Teraz teda používateľ musí zadať ID (umiestnenie) pomocou klávesov UP / DOWN. Po výbere umiestnenia / ID musí užívateľ stlačiť kláves OK (kláves DEL). Teraz LCD požiada o vloženie prsta nad modul tlače prstov. Teraz je potrebné vložiť modul prsta cez modul tlače prstov. Potom sa na LCD displeji zobrazí výzva na odstránenie prsta z modulu tlače prstov a opätovné požiadanie o vloženie prsta. Teraz musí používateľ znovu položiť prst na modul tlače prstov. Modul odtlačkov prstov teraz nasníma obrázok a prevedie ho do šablón a uloží ho podľa zvoleného ID do pamäte modulu odtlačkov prstov.Teraz bude volič zaregistrovaný a bude môcť hlasovať. Rovnakým spôsobom je možné do systému zaregistrovať všetkých voličov.
Teraz, ak chce užívateľ odstrániť alebo vymazať uložené ID, musí stlačiť klávesu DEL, po stlačení klávesu DEL sa na LCD displeji zobrazí výzva na výber miesta, čo znamená ID, ktoré sa má vymazať. Teraz musí používateľ zvoliť ID a stlačiť kláves OK (rovnaké tlačidlo DEL). Teraz vás LCD bude informovať, že prst bol úspešne vymazaný.
Proces hlasovania:
Teraz, keď chce užívateľ hlasovať, musí stlačiť klávesu Match a potom pípne bzučiak a tiež bude svietiť LED dióda a LCD požiada o vloženie modulu medzi prstami a prstami. Teraz vám Arduino dá tri pokusy o priloženie prsta. Po priložení prsta cez modul odtlačkov prstov modul odtlačkov prstov zachytí obrázok prsta a v systéme sa nachádza jeho ID. Ak je zistené ID prsta, na LCD displeji sa zobrazí oprávnený volič. To znamená, že používateľ je oprávnený hlasovať. Potom systém prejde do ďalšej fázy hlasovania. Teraz bude svietiť zelená LED, čo znamená, že volič môže hlasovať za svojich kandidátov stlačením zvoleného klávesu (z červenej tabuľky s chlebom v tejto ukážke). Ak chce ten istý volič hlasovať znova, systém ho zobrazí ako „Už hlasoval“ . To znamená, že rovnaký volič nemôže znova hlasovať a bzučiak bude pípať 5 sekúnd. Ak chce neregistrovaný užívateľ hlasovať, potom modul na odtlačky prstov nezistí svoje ID v systéme a na displeji LCD sa zobrazí hlásenie „ Nenašiel sa žiadny odtlačok prsta“ .
CAN1, CAN2, CAN3 tu predstavuje kandidáta 1, kandidáta 2 a kandidáta 3, ktorí kandidovali do volieb.
Vysvetlenie obvodu:
Obvod tohto projektu hlasovacieho stroja založeného na FingerPrint je veľmi jednoduchý, ktorý obsahuje Arduino pre riadenie celého procesu projektu, tlačidlo pre registráciu, mazanie, výber ID a účel hlasovania, bzučiak pre výstrahu, LED pre indikáciu a 16x2 LCD pre inštrukciu Volič a ukazovanie výsledku tiež. Žltá LED označuje, že modul odtlačkov prstov je pripravený na snímanie prsta a zelená LED označuje, že systém je pripravený na hlasovanie alebo na zobrazenie výsledkov.
Tlačidlo je priamo spojené s pinmi A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) a A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Výsledok) Arduina vzhľadom na zem. Žltá LED je pripojená na digitálny pin D7 Arduina vzhľadom na zem cez rezistor 1k a zelená LED je pripojená k D6 Arduina rovnakou metódou. Rx a Tx modulu odtlačkov prstov priamo pripojené na sériový pin Tx a Rx od Arduina. Na napájanie modulu odtlačkov prstov odobratých z dosky Arduino sa používa 5V zdroj. Na A5 je tiež pripojený bzučiak. Displej LCD 16x2 je nakonfigurovaný v 4-bitovom režime a jeho RS, EN, D4, D5, D6 a D7 sú priamo pripojené na digitálne piny D13, D12, D11, D10, D9 a D8 spoločnosti Arduino.
Vysvetlenie programu:
V programe sme použili knižnicu snímačov odtlačkov prstov Adafruit na prepojenie modulu odtlačkov prstov s doskou Arduino. Celý kód si môžete skontrolovať nižšie. Tu vysvetľujeme hlavné funkcie programu Arduino.
Vo funkcii nastavenia sme dali pokyny definovaným pinom a spustili sme modul LCD a snímač odtlačkov prstov.
Potom sme vo funkcii void loop () čakali na kontrolné tlačidlo a stlačením klávesu Match spustili odtlačok prsta, aby prijali vstup a porovnali ID zachyteného obrázka s uloženými ID. Ak dôjde k zhode, pokračujte ďalším krokom.
void loop () {lcd.setCursor (0,0); lcd.print ("Stlačte tlačidlo zhody"); lcd.setCursor (0,1); lcd.print ("na spustenie systému"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (bzučiak, VYSOKÝ); oneskorenie (200); digitalWrite (bzučiak, LOW); digitalWrite (indFinger, HIGH); pre (int i = 0; i <3; i ++)…………………
Daná void funkcia checkKeys () sa používa na kontrolu, či je alebo nie je stlačená klávesa Enroll alebo DEL a čo robiť, ak je stlačená. Ak je stlačené tlačidlo ENROLL, volá sa funkcia Enroll () a je stlačené tlačidlo DEL, potom sa volá funkcia delete () .
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("Prosím čakajte"); oneskorenie (1 000); while (digitalRead (enroll) == 0); Zaregistrovať (); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Prosím čakajte"); oneskorenie (1 000); delet (); }}
Daná funkcia sa používa na zadanie ID, ktoré sa má vymazať, a na vyvolanie funkcie uint8_t deleteFingerprint (uint8_t id), ktorá vymaže prst zo záznamov.
void delet () {int count = 0; lcd.clear (); lcd.print („Odstrániť prst“); lcd.setCursor (0,1); lcd.print ("Umiestnenie:"); while (1) {lcd.setCursor (9,1); lcd.print (počet); if (digitalRead (up) == 0) {count ++; if (počet> 25) počet = 0; oneskorenie (500); }……………….
Daná funkcia slúži na mazanie odtlačkov prstov zo záznamu vybraného ID.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Prosím čakajte"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Odstránené!"); lcd.clear (); lcd.print („Figer bol odstránený“); lcd.setCursor (0,1); lcd.print („Úspešne“); oneskorenie (1 000); } else {Serial.print ("Nieco zle"); lcd.clear (); lcd.print („Niečo zlé“); lcd.setCursor (0,1); lcd.print ("Skúste to znova neskôr"); meškanie (2000); návrat p; }}
Daná funkcia sa používa na snímanie odtlačkov prstov a ich prevedenie do šablóny a uloženie podľa zvoleného ID do pamäte modulu odtlačkov prstov.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ID prsta:"); lcd.print (id); lcd.setCursor (0,1); lcd.print („umiestniť prst“); meškanie (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Daná funkcia sa používa na hlasovanie a zobrazenie výsledkov:
void Hlasovanie () {lcd.clear (); lcd.print ("Umiestnite prosím"); lcd.setCursor (0,1); lcd.print („Váš hlas“); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (bzučiak, VYSOKÝ); oneskorenie (500); digitalWrite (bzučiak, LOW); oneskorenie (1 000); while (1) {if (digitalRead (sw1) == 0)…………………
Skontrolujte úplný kód a demonštračné video nižšie.