Innehållsförteckning:
- Steg 1: Komponenter som krävs för att bygga biometrisk röstmaskin
- Steg 2: Kretsdiagram för biometrisk röstmaskin med Arduino
- Steg 3: Källkod och Steg för steg kod Förklaring
- Steg 4: Testa fingeravtrycksröstningssystemet med Arduino
Video: Fingeravtrycksbaserad biometrisk röstmaskin med Arduino: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Vi är alla medvetna om den befintliga elektroniska röstmaskinen där användaren måste trycka på en knapp för att rösta. Men dessa maskiner har kritiserats för härdning sedan början. Så regeringen planerar att införa en fingeravtrycksbaserad röstmaskin där användare kan avge omröstningen baserat på hans/hennes fingeravtrycksavtryck. Detta system kommer inte bara att ta bort möjligheten till dubblettröster utan också förhindra någon form av manipulation.
Så i detta projekt ska vi bygga en prototyp av en biometrisk röstmaskin med Arduino Uno, TFT -display och fingeravtryckssensor. Vi använde tidigare R305 fingeravtryckssensor med NodeMCU för att bygga ett biometriskt baserat närvarosystem men här kommer vi att använda den avancerade GT-511C3 fingeravtryckssensorn med Arduino.
Steg 1: Komponenter som krävs för att bygga biometrisk röstmaskin
- Arduino Uno
- 2,4”TFT LCD -skärm
- GT-511C3 fingeravtryckssensor
Denna 2,4 -tums TFT -skärm har tidigare använts med Arduino för att bygga IoT -baserat restaurangmenybeställningssystem.
Steg 2: Kretsdiagram för biometrisk röstmaskin med Arduino
Kretsdiagram för detta projekt är mycket enkelt eftersom vi bara ansluter TFT -skärmen och fingeravtryckssensormodulen med Arduino Uno. VCC- och GND -stiften på fingeravtryckssensorn är anslutna till 5V- och GND -stiften på Arduino medan TX- och RX -stiften är anslutna till den digitala stift 11 & 12 på Arduino Uno.
2,4”TFT LCD -skärmen är en Arduino Shield och kan monteras direkt på Arduino Uno, som visas på bilden nedan. TFT -skärmen har 28 stift som passar perfekt in i Arduino Uno, så jag var tvungen att löda fingeravtryckssensorn på baksidan av Arduino.
Steg 3: Källkod och Steg för steg kod Förklaring
Den fullständiga koden för detta fingeravtrycksröstningssystemprojekt med Arduino ges i slutet av artikeln; här förklarar vi några viktiga funktioner i koden.
Koden använder biblioteken SPFD5408, Software Serial och FPS_GT511C3. SPFD5408 -biblioteket är den modifierade versionen av det ursprungliga Adafruit -biblioteket. Dessa biblioteksfiler kan laddas ner från länkarna nedan:
- SPFD5408 bibliotek
- Programvara Seriell
- FPS_GT511C3
Efter att ha inkluderat biblioteken och definierat några viktiga parametrar kan vi komma in i programmeringsdelen. Det finns tre sektioner involverade i detta program. Det ena skapar ett användargränssnitt för en röstmaskin, det andra är att få kontaktpunkter för knappar och upptäcka knapparna baserat på beröringen och slutligen beräkna resultaten och spara dem i Arduinos minne.
1. Skapa användargränssnitt:
Jag har skapat ett enkelt användargränssnitt med tre knappar och projektets namn. TFT -skärmbiblioteket låter dig rita linjer, rektangel, cirklar, tecken, strängar och mycket mer av vilken färg och storlek som helst. Här skapas två rektangulära knappar med funktionerna fillRoundRect och drawRoundRect. Syntax för tft.drawRoundRect -funktionen ges nedan:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radie, uint16_t färg)
Var:
x0 = X-koordinat för rektangulär startpunkt
y0 = Y -koordinat för rektangulär startpunkt
w = Rektangulär bredd
h = Rektangulärets höjd
radie = Radie av det runda hörnet
color = Rectens färg.
void drawHome ()
{
tft.fillScreen (VIT);
tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // Sidgräns
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, VIT); //Rösta
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, VIT); //Skriva in
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //Resultat
tft.drawRoundRect (10, 250, 220, 50, 8, VIT);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Röstning");
tft.setCursor (57, 29);
tft.print ("maskin");
tft.setTextSize (3);
tft.setTextColor (VIT);
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å kontaktpunkter och upptäcka knappar:
Nu i den andra delen av koden kommer vi att upptäcka knappens beröringspunkter och sedan använda dessa punkter för att förutsäga knappen. ts.getPoint () -funktionen används för att upptäcka användarens beröring på TFT -skärmen. ts.getPoint ger Raw ADC -värden för det rörda området. Dessa RAW ADC -värden konverteras sedan till Pixel -koordinater med hjälp av kartfunktionen.
TSPoint p = ts.getPoint ();
om (p.z> ts.pressureThreshhold)
{
p.x = karta (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);
Nu, eftersom vi känner till X- och Y -koordinaterna för varje knapp, kan vi förutsäga var användaren har rört genom att använda 'if' -satsen.
om (s.x> 70 && s. x 10 && s.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidat 1");
När en väljare trycker på kandidatknappen kommer han att bli ombedd att skanna fingret på fingeravtryckssensorn. Om finger -ID är godkänt får väljaren rösta. Om någon icke-registrerad användare vill rösta kommer fingeravtrycksmodulen inte att identifiera sitt ID i systemet och displayen visar "Sorry You Can't Rote".
if (fps. IsPressFinger ())
{
fps. CaptureFinger (falskt);
int id = fps. Identify1_N ();
om (id <200)
{
msg = "Kandidat 1";
omröstning1 ++;
EEPROM.write (0, omröstning1);
tft.setCursor (42, 170);
tft.print ("Tack");
fördröjning (3000);
drawHome ();
3. Resultat:
Det sista steget är att få rösträkningen från EEPROM -minne och jämföra rösterna för alla tre kandidaterna. En kandidat med de högsta rösterna vinner. Resultatet kan endast nås från den seriella bildskärmen och visas inte på TFT -skärmen.
vote1 = EEPROM.read (0);
omröstning2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
om (rösta)
{
if ((röst1> röst2 && röst1> röst3))
{
Serial.print ("Can1 Wins");
fördröjning (2000);
}
Steg 4: Testa fingeravtrycksröstningssystemet med Arduino
För att testa projektet, anslut Arduino Uno till den bärbara datorn och ladda upp den angivna koden. När koden har laddats upp ska TFT -skärmen visa kandidatens namn. När någon trycker på ett kandidatnamn kommer maskinen att be att skanna fingeravtrycksläsaren. Om fingeravtrycket är giltigt kommer användarens röst att räknas, men om mönstret inte stämmer med databasens poster, nekas åtkomst för att rösta. Det totala antalet röster för varje kandidat kommer att lagras i EEPROM och en kandidat som har det högsta antalet röster vinner.
Jag hoppas att du gillade handledningen och lärde dig något användbart. Om du har några frågor, vänligen meddela oss i kommentarsfältet nedan och följ oss också på Instructable för fler sådana intressanta projekt.
Rekommenderad:
Biometrisk bilinträde - True Keyless Car: 4 steg
Biometrisk bilinträde - Sann nyckellös bil: För några månader sedan frågade min dotter mig varför moderna bilar inte är utrustade med ett biometriskt inmatningssystem, även när en mobiltelefon har det. Sedan dess arbetade jag med att implementera detsamma och slutligen lyckades installera och testa något på min T
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
Biometrisk personlig dagbok: 5 steg (med bilder)
Biometrisk personlig dagbok: Den här snygga lilla prylen har en fingeravtryckssensor så att du kan säkra dina coola saker i ett personligt bärbart fodral. Jag brukar hålla en dagbok och penna och mönster för mina nya projekt. Har ett 3D -tryckt fodral och använder en Arduino nano. Bra presentidé