- Nødvendige komponenter:
- Fingerprint sensormodul i stemmemaskine:
- Arbejdsforklaring:
- Forklaring af kredsløb:
- Programforklaring:
Vi er alle ganske fortrolige med elektroniske stemmemaskiner, hvor din stemme bliver registreret elektronisk, og du ikke behøver at bruge stemmeseddel til at stemme ved valg. I dag er sikkerhed et stort problem, og det skal også sikres, at nogen ikke kan stemme to gange, så dette problem kan løses ved at indføre Fingerprint Based Voting, hvor en person kan godkendes ud fra sin fingerprint. Dette stopper også falsk afstemning. Så i dag bygger vi FingerPrint-baseret biometrisk stemmemaskine ved hjælp af Arduino.
Tjek også vores tidligere elektroniske afstemningsmaskine-projekter ved hjælp af forskellige mikrocontrollere:
- Elektronisk stemmemaskine ved hjælp af Raspberry Pi
- RFID-baseret stemmemaskine
- AVR-mikrocontrollerbaseret elektronisk stemmemaskineprojekt
- Elektronisk stemmemaskine ved hjælp af Arduino
Nødvendige komponenter:
- Arduino Uno
- Fingerprint sensormodul
- Skub knapper
- Lysdioder -2
- 1K modstand -3
- 2,2K modstand
- Strøm
- Tilslutning af ledninger
- Summer
- 16x2 LCD
- Brødbræt
Fingerprint sensormodul i stemmemaskine:
Fingerprint Sensor Module eller Finger Print Scanner er et modul, der fanger fingeraftryksbillede og derefter konverterer det til den tilsvarende skabelon og gemmer dem i hukommelsen på det valgte ID (placering) af Arduino. Her er hele processen kommanderet af Arduino som at tage et billede af fingeraftryk, konvertere det til skabeloner og gemme placering osv.
I dette FingerPrint Voting Machine Circuit har vi brugt Finger Print Sensor Module til at godkende ægte vælger ved at tage deres fingerindgang i systemet. Her bruger vi 5 trykknapper til Match, Tilmeld / tilbage, Slet / OK, OP og NED. Tilmeld og Del-tasten har dobbelte funktioner her. Enroll-tast bruges også til registrering af nyt fingerindtryk i systemet og tilbage-funktionen. Betyder, når brugeren vil tilmelde en ny finger, så skal han / hun trykke på tilmeldingstasten, hvorefter LCD beder om id'et eller placeringen, hvor brugeren vil gemme fingeraftryksudgangen. Hvis brugeren på dette tidspunkt ikke ønsker at gå videre, kan han / hun trykke på tilmeldingstasten igen for at gå tilbage (denne gang tilmeldingstast opfører sig som Tilbage-tast). Betyder tilmeldingsnøgle har både tilmeldings- og rygfunktion. DEL / OK-tast har også den samme dobbelte funktion som når brugeren tilmelder ny finger, så skal han / hun vælge finger-ID eller placering ved hjælp af en anden to-tast, nemlig OP OG NED, nu skal brugeren trykke på DEL / OK-tasten (denne gang opfører denne tast sig som OK) for Fortsæt med valgt ID eller placering. Matchnøglen bruges til når vælgeren ønsker at stemme, så skal han / hun først godkende for ægte vælger ved at holde fingeren på Finger Print Sensor, hvis han / hun har bestået denne godkendelse, kan han / hun stemme.
For at lære mere om tilmelding af fingeraftryk og andre ting, se vores tidligere vejledning om grænseflade mellem fingeraftrykssensor og Arduino og se også vores demo- video i slutningen af denne vejledning.
Arbejdsforklaring:
Arbejdet med dette biometriske afstemningssystem til valg er lidt kompleks for begyndere. Først og fremmest skal brugeren tilmelde finger eller vælgere (i denne kode er maksimumgrænsen for vælgeren 25) ved hjælp af trykknapper / taster. For at gøre dette skal brugeren trykke på ENROLL-tasten og derefter beder LCD om at indtaste placering / ID, hvor fingeren vil være en butik. Så nu skal brugeren indtaste ID (Location) ved hjælp af OP / NED-tasterne. Efter valg af Placering / ID skal brugeren trykke på en OK-tast (DEL-tast). Nu vil LCD bede om at placere en finger over fingerprintmodulet. Nu skal brugeren lægge sin finger over fingeraftryksmodulet. Derefter vil LCD bede om at fjerne fingeren fra fingeraftryksmodulet og igen bede om at placere fingeren. Nu skal brugeren sætte sin finger igen over fingeraftryksmodulet. Nu tager fingeraftryksmodulet et billede og konverterer det til skabeloner og gemmer det ved valgt ID i fingeraftryksmodulets hukommelse.Nu bliver vælgeren registreret, og han / hun kan stemme. Efter samme metode kan alle vælgere registreres i systemet.
Hvis brugeren nu vil fjerne eller slette noget af det gemte ID, skal han / hun trykke på DEL-tasten, efter at have trykket på DEL-tasten, vil LCD bede om at vælge placering betyder at vælge ID, der skal slettes. Nu skal brugeren vælge ID og trykke på OK-tasten (samme DEL-tast). Nu vil LCD fortælle dig, at fingeren er blevet slettet med succes.
Afstemningsproces:
Når brugeren nu vil stemme, skal han / hun trykke på match-tasten, og så bipper en summer, og LED vil også lyse, og LCD vil bede om at placere fingeren over fingeraftryksmodulet. Nu vil Arduino give dig tre forsøg på at sætte fingeren. Efter at have placeret en finger over fingeraftryksmodul fanger fingeraftryksmodul fingerbillede, find dets ID'er er til stede i systemet. Hvis finger-ID opdages, vil LCD vise autoriseret vælger. Det betyder, at brugeren er autoriseret til at stemme. Og så flytter systemet til næste trin for afstemning. Nu lyser den grønne LED, det betyder, at vælgeren nu kan stemme på deres kandidater ved at trykke på en valgt tast (fra RØD brødbræt i denne demonstration). Hvis den samme vælger nu vil stemme igen, viser systemet det 'allerede stemt ' . Betyder, at den samme vælger ikke kan stemme igen, og summeren bipper i 5 sekunder. Hvis en ikke-registreret bruger ønsker at stemme, registrerer fingeraftryksmodulet ikke sit ID i systemet, og LCD viser " Ingen fingeraftryk fundet" .
CAN1, CAN2, CAN3 repræsenterer her kandidat 1, kandidat 2 og kandidat 3, der har stillet valg.
Forklaring af kredsløb:
Kredsløbet for dette FingerPrint-baserede stemmemaskineprojekt er meget simpelt, som indeholder Arduino til styring af hele projektets proces, trykknap til tilmelding, sletning, valg af id'er og afstemningsformål, en summer til alarm, lysdioder til indikation og 16x2 LCD til instruktion Vælger og viser også resultatet. Gul LED indikerer, at fingeraftryksmodulet er klar til at tage et billede af fingeren, og grøn LED indikerer, at systemet er klar til at stemme eller se resultater.
Trykknappen er direkte forbundet til pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (NED) og A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Resultat) af Arduino med hensyn til jorden. Gul LED tilsluttes ved Digital pin D7 i Arduino med hensyn til jord gennem en 1k modstand og grøn LED er forbundet til D6 i Arduino med samme metode. Fingeraftryksmodulets Rx og Tx direkte forbundet med Serial pin Tx og Rx af Arduino. 5v-forsyning bruges til at drive fingeraftryksmodul taget fra Arduino-kortet. En summer er også forbundet med A5. En 16x2 LCD er konfigureret i 4-bit tilstand, og dens RS, EN, D4, D5, D6 og D7 er direkte forbundet med Digital pin D13, D12, D11, D10, D9 og D8 i Arduino.
Programforklaring:
I et program har vi brugt Adafruit Fingerprint Sensor Library til at interfacere fingeraftryksmodul med Arduino-kortet. Du kan tjekke den komplette kode nedenfor. Her forklarer vi Arduino-programmets hovedfunktioner.
I installationsfunktionen har vi givet anvisninger til definerede ben og har startet LCD- og fingeraftryksmodulet.
Efter det, i ugyldig loop () -funktion, har vi ventet på afkrysningstasten og tryk på Match-tasten for at starte fingeraftrykket for at tage input og sammenligne optaget billed-id med gemte id'er. Hvis der opstår en kamp, skal du fortsætte med næste trin.
ugyldig sløjfe () {lcd.setCursor (0,0); lcd.print ("Tryk på Match-tast"); lcd.setCursor (0,1); lcd.print ("for at starte systemet"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); hvis (digitalRead (match) == 0) {digitalWrite (summer, HIGH); forsinkelse (200); digitalWrite (summer, LAV); digitalWrite (indFinger, HIGH); for (int i = 0; i <3; i ++)…………………
Givet ugyldig checkKeys () -funktion bruges til at kontrollere Tilmeld eller DEL-tasten trykkes eller ej, og hvad der skal gøres, hvis der trykkes på den. Hvis ENROLL-tasten trykkes, kaldes Tilmeld () -funktionen, og DEL-tasten trykkes, slettes () -funktionen kaldes.
ugyldige checkKeys () {if (digitalRead (tilmeld) == 0) {lcd.clear (); lcd.print ("Vent venligst"); forsinkelse (1000); mens (digitalRead (tilmeld) == 0); Indskrive(); } ellers hvis (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Vent venligst"); forsinkelse (1000); slet (); }}
Den givne funktion bruges til at indtaste id, der skal slettes, og kalde uint8_t deleteFingerprint (uint8_t id) -funktion, der sletter en finger fra poster.
ugyldig sletning () {int count = 0; lcd.clear (); lcd.print ("Slet finger"); lcd.setCursor (0,1); lcd.print ("Placering:"); mens (1) {lcd.setCursor (9,1); lcd.print (count); hvis (digitalRead (op) == 0) {count ++; hvis (count> 25) count = 0; forsinkelse (500); }……………….
Denne funktion bruges til at slette fingeraftryk fra registreringen af det valgte ID.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Vent venligst"); p = finger.deleteModel (id); hvis (p == FINGERPRINT_OK) {Serial.println ("Slettet!"); lcd.clear (); lcd.print ("Figer slettet"); lcd.setCursor (0,1); lcd.print ("Succesfuldt"); forsinkelse (1000); } andet {Serial.print ("Noget galt"); lcd.clear (); lcd.print ("Noget galt"); lcd.setCursor (0,1); lcd.print ("Prøv igen senere"); forsinkelse (2000); returnere p; }}
Denne funktion bruges til at tage et fingeraftryksbillede og konvertere dem til skabelonen og gemme det med valgt ID i fingeraftryksmodulets hukommelse.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("finger ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Placer finger"); forsinkelse (2000); mens (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Den givne funktion bruges til at stemme og vise resultater:
ugyldig Stem () {lcd.clear (); lcd.print ("Venligst placer"); lcd.setCursor (0,1); lcd.print ("Din stemme"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (summer, HIGH); forsinkelse (500); digitalWrite (summer, LAV); forsinkelse (1000); mens (1) {hvis (digitalRead (sw1) == 0)…………………
Tjek den fulde kode og demonstrationsvideoen nedenfor.