Innholdsfortegnelse:
- Trinn 1: Komponenter som kreves for å bygge biometrisk stemmemaskin
- Trinn 2: Kretsdiagram for biometrisk stemmemaskin som bruker Arduino
- Trinn 3: Kildekode og trinnvis kode forklaring
- Trinn 4: Testing av fingeravtrykksstemmesystemet ved hjelp av Arduino
Video: Fingeravtrykkbasert biometrisk stemmemaskin som bruker Arduino: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Vi er alle klar over den eksisterende elektroniske stemmemaskinen der brukeren må trykke på en knapp for å avgi stemmen. Men disse maskinene har blitt kritisert for herding siden begynnelsen. Så regjeringen planlegger å introdusere en fingeravtrykksbasert stemmemaskin der brukerne kan avgi stemmen basert på fingeravtrykkavtrykket hans. Dette systemet vil ikke bare fjerne muligheten for dupliserte stemmer, men også forhindre enhver form for manipulasjon.
Så i dette prosjektet skal vi bygge en prototype av en biometrisk stemmemaskin ved hjelp av Arduino Uno, TFT -skjerm og fingeravtrykkssensor. Vi brukte tidligere R305 fingeravtrykkssensor med NodeMCU for å bygge et biometrisk basert oppmøte system, men her vil vi bruke den avanserte GT-511C3 fingeravtrykkssensoren med Arduino.
Trinn 1: Komponenter som kreves for å bygge biometrisk stemmemaskin
- Arduino Uno
- 2,4”TFT LCD -skjerm
- GT-511C3 fingeravtrykkssensor
Denne 2,4 -tommers TFT -skjermen ble tidligere brukt sammen med Arduino for å bygge IoT -basert restaurantmenysystem.
Trinn 2: Kretsdiagram for biometrisk stemmemaskin som bruker Arduino
Kretsdiagram for dette prosjektet er veldig enkelt, ettersom vi bare kobler TFT -skjermen og fingeravtrykkssensormodulen til Arduino Uno. VCC- og GND -pinner på fingeravtrykkssensoren er koblet til 5V- og GND -pinnene på Arduino mens TX- og RX -pinnene er koblet til den digitale pinnen 11 og 12 på Arduino Uno.
2,4”TFT LCD -skjermen er et Arduino -skjold og kan monteres direkte på Arduino Uno, som vist på bildet nedenfor. TFT -skjermen har 28 pinner som passer perfekt inn i Arduino Uno, så jeg måtte lodde fingeravtrykkssensoren på baksiden av Arduino.
Trinn 3: Kildekode og trinnvis kode forklaring
Den komplette koden for dette fingeravtrykksstemmeprosjektet ved bruk av Arduino er gitt i slutten av artikkelen; her forklarer vi noen viktige funksjoner i koden.
Koden bruker bibliotekene SPFD5408, Software Serial og FPS_GT511C3. SPFD5408 -biblioteket er den modifiserte versjonen av det originale Adafruit -biblioteket. Disse bibliotekfilene kan lastes ned fra koblingene nedenfor:
- SPFD5408 bibliotek
- Programvare seriell
- FPS_GT511C3
Etter å ha inkludert bibliotekene og definert noen viktige parametere, kan vi komme inn på programmeringsdelen. Det er tre seksjoner involvert i dette programmet. Den ene lager et brukergrensesnitt for en stemmemaskin, det andre er å få berøringspunktene for knapper og oppdage knappene basert på berøring og til slutt beregne resultatene og lagre dem i Arduinos minne.
1. Opprette brukergrensesnitt:
Jeg har laget et enkelt brukergrensesnitt med tre knapper og navnet på prosjektet. TFT -skjermbiblioteket lar deg tegne linjer, rektangler, sirkler, tegn, strenger og mye mer av hvilken som helst foretrukket farge og størrelse. Her opprettes to rektangulære knapper med funksjonene fillRoundRect og drawRoundRect. Syntaks for tft.drawRoundRect -funksjonen er gitt nedenfor:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t farge)
Hvor:
x0 = X-koordinat for startpunktet for rektangulær
y0 = Y -koordinat for startpunktet for rektangulær
w = Bredden på den rektangulære
h = Rektangulær høyde
radius = Radius av det runde hjørnet
color = Color of the Rect.
void drawHome ()
{
tft.fillScreen (HVIT);
tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // Sidekant
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, WHITE); //Stemme
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, WHITE); //Registrere
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //Resultat
tft.drawRoundRect (10, 250, 220, 50, 8, WHITE);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Stemme");
tft.setCursor (57, 29);
tft.print ("Maskin");
tft.setTextSize (3);
tft.setTextColor (HVIT);
tft.setCursor (25, 82);
tft.print ("Kandidat 1");
tft.setCursor (25, 172);
tft.print ("Kandidat 2");
tft.setCursor (25, 262);
tft.print ("Kandidat 3");
}
2. Få berøringspunktene og oppdage knapper:
Nå i den andre delen av koden, vil vi oppdage knappens berøringspunkter og deretter bruke disse punktene til å forutsi knappen. ts.getPoint () -funksjonen brukes til å oppdage brukerens berøring på TFT -skjermen. ts.getPoint gir Raw ADC -verdiene for det berørte området. Disse RAW ADC -verdiene konverteres deretter til Pixel -koordinater ved hjelp av kartfunksjonen.
TSPoint p = ts.getPoint ();
hvis (p.z> ts.pressureThreshhold)
{
p.x = kart (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = map (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
Siden vi kjenner X- og Y -koordinatene for hver knapp, kan vi forutsi hvor brukeren har rørt ved å bruke ‘if’ -setningen.
hvis (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidat 1");
Når en velger trykker på kandidatknappen, blir han bedt om å skanne fingeren på fingeravtrykkssensoren. Hvis finger -ID er godkjent, har velgeren lov til å stemme. Hvis en ikke-registrert bruker vil stemme, vil ikke fingeravtrykkmodulen oppdage ID-en i systemet, og displayet vil vise "Beklager at du ikke kan stemme".
hvis (fps. IsPressFinger ())
{
fps. CaptureFinger (false);
int id = fps. Identify1_N ();
hvis (id <200)
{
msg = "Kandidat 1";
stemme1 ++;
EEPROM.write (0, stemme1);
tft.setCursor (42, 170);
tft.print ("Takk");
forsinkelse (3000);
drawHome ();
3. Resultat:
Det siste trinnet er å få stemmetallet fra EEPROM -minne og sammenligne stemmene til alle tre kandidatene. En kandidat med flest stemmer vinner. Resultatet kan bare nås fra den serielle skjermen og vises ikke på TFT -skjermen.
stemme1 = EEPROM.read (0);
vote2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
hvis (stemme)
{
hvis ((stemme1> stemme2 && stemme1> stemme3))
{
Serial.print ("Can1 Wins");
forsinkelse (2000);
}
Trinn 4: Testing av fingeravtrykksstemmesystemet ved hjelp av Arduino
For å teste prosjektet, koble Arduino Uno til den bærbare datamaskinen og last opp den oppgitte koden. Når koden er lastet opp, skal TFT -skjermen vise kandidatens navn. Når noen trykker på et kandidatnavn, vil maskinen be om å skanne fingeravtrykkskanneren. Hvis fingeravtrykket er gyldig, teller brukerstemmen, men i tilfelle mønsteret ikke stemmer overens med postene i databasen, vil tilgang til å avgi stemme bli nektet. Totalt antall stemmer for hver kandidat vil bli lagret i EEPROM og en kandidat som har det høyeste antallet stemmer vil vinne.
Jeg håper du likte opplæringen og lærte noe nyttig. Hvis du har spørsmål, vennligst gi oss beskjed i kommentarfeltet nedenfor, og følg oss også på Instructable for flere slike interessante prosjekter.
Anbefalt:
ULTRASONISK LEVITASJEMaskin som bruker ARDUINO: 8 trinn (med bilder)
ULTRASONISK LEVITASJON Maskin som bruker ARDUINO: Det er veldig interessant å se noe flyte i luften eller frirommet som romvesener. det er akkurat det et anti-tyngdekraftprosjekt handler om. Objektet (i utgangspunktet et lite stykke papir eller termokolade) plasseres mellom to ultralydstrans
Lydspiller som bruker Arduino med Micro SD -kort: 7 trinn (med bilder)
Lydspiller som bruker Arduino med Micro SD -kort: Vennligst abonner på kanalen min for flere prosjekter ……………………. Mange ønsker å koble til SD -kortet med arduino eller ønsker litt lydutgang via arduino.Så her er den enkleste og billigste måten å koble til SD -kort med arduino. du kan oss
Trådløs fjernkontroll ved bruk av 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sendermottaker for quadcopter - Rc Helikopter - RC -fly som bruker Arduino: 5 trinn (med bilder)
Trådløs fjernkontroll ved bruk av 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sendermottaker for quadcopter | Rc Helikopter | Rc -fly ved bruk av Arduino: For å betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båt, vi trenger alltid en mottaker og sender, anta at for RC QUADCOPTER trenger vi en 6 -kanals sender og mottaker, og den typen TX og RX er for kostbar, så vi lager en på vår
Biometrisk personlig dagbok: 5 trinn (med bilder)
Biometrisk personlig dagbok: Denne fine lille gadgeten har en fingeravtrykkssensor, slik at du kan sikre de kule tingene dine i et personlig, bærbart etui. Jeg pleier å holde dagbok og penn og design for mine nye prosjekter. Har et 3D -trykt etui og bruker en Arduino nano. Flott gaveide
Hvordan lage en autonom basketballball som bruker en IRobot Lag som base: 7 trinn (med bilder)
Slik lager du en autonom basketballball som bruker en IRobot Lag som base: Dette er min oppføring for iRobot Create -utfordringen. Den vanskeligste delen av hele denne prosessen for meg var å bestemme hva roboten skulle gjøre. Jeg ønsket å demonstrere de kule funksjonene i Create, samtidig som jeg la til litt robo -teft. Alle mine