INHOUDSOPGAWE:
- Stap 1: Vereiste komponente vir die bou van biometriese stemmasjiene
- Stap 2: Kringdiagram vir biometriese stemmasjien met behulp van Arduino
- Stap 3: Bronkode en Stap vir stap kodeverklaring
- Stap 4: Toets die stemafdrukstelsel met vingerafdruk met behulp van Arduino
Video: Vingerafdrukgebaseerde biometriese stemmasjien met Arduino: 4 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Ons is almal bewus van die bestaande elektroniese stemmasjien waar die gebruiker op 'n knoppie moet druk om die stem uit te bring. Maar hierdie masjiene word sedert die begin gekritiseer omdat dit getemper is. Die regering beplan dus om 'n vingerafdruk-gebaseerde stemmasjien in te stel waar gebruikers die stem kan uitbring op grond van sy/haar vingerafdruk-indruk. Hierdie stelsel verwyder nie net die moontlikheid van dubbele stemme nie, maar voorkom ook manipulasie.
In hierdie projek gaan ons dus 'n prototipe bou van 'n biometriese stemmasjien met behulp van die Arduino Uno, TFT -skerm en vingerafdruksensor. Ons het voorheen R305-vingerafdruksensor met NodeMCU gebruik om 'n biometriese gebaseerde bywoningstelsel te bou, maar hier gebruik ons die gevorderde GT-511C3 vingerafdruksensor met Arduino.
Stap 1: Vereiste komponente vir die bou van biometriese stemmasjiene
- Arduino Uno
- 2.4”TFT LCD -skerm
- GT-511C3 vingerafdruksensor
Hierdie 2,4 duim TFT -skerm word voorheen saam met Arduino gebruik om 'n IoT -gebaseerde restaurant -bestelstelsel te bou.
Stap 2: Kringdiagram vir biometriese stemmasjien met behulp van Arduino
Kringdiagram vir hierdie projek is baie eenvoudig, aangesien ons slegs die TFT -skerm en vingerafdruksensormodule verbind met Arduino Uno. VCC- en GND -penne van die vingerafdruksensor is gekoppel aan 5V- en GND -penne van Arduino, terwyl TX- en RX -penne gekoppel is aan die digitale pen 11 en 12 van Arduino Uno.
Die 2.4”TFT LCD -skerm is 'n Arduino -skild en kan direk op Arduino Uno gemonteer word, soos in die onderstaande prent getoon. Die TFT -skerm het 28 penne wat perfek in die Arduino Uno pas, so ek moes die vingerafdruksensor aan die agterkant van Arduino soldeer.
Stap 3: Bronkode en Stap vir stap kodeverklaring
Die volledige kode vir hierdie vingerafdrukstemstelselprojek met behulp van Arduino word aan die einde van die artikel gegee; hier verduidelik ons 'n paar belangrike funksies van die kode.
Die kode gebruik die SPFD5408-, Software Serial- en FPS_GT511C3 -biblioteke. SPFD5408 biblioteek is die gewysigde weergawe van die oorspronklike Adafruit -biblioteek. Hierdie biblioteeklêers kan afgelaai word vanaf die onderstaande skakels:
- SPFD5408 Biblioteek
- Seriële sagteware
- FPS_GT511C3
Nadat ons die biblioteke ingesluit het en 'n paar belangrike parameters gedefinieer het, kan ons by die programmeergedeelte ingaan. Daar is drie afdelings betrokke by hierdie program. Die een maak 'n gebruikersinterface van 'n stemmasjien, die tweede is om die raakpunte vir knoppies te kry en die knoppies op te spoor op grond van die aanraking en uiteindelik die resultate te bereken en dit in die geheue van Arduino op te slaan.
1. UI skep:
Ek het 'n eenvoudige UI met drie knoppies en die naam van die projek geskep. Met die TFT -skermbiblioteek kan u lyne, reghoek, sirkels, tekens, snare en nog baie meer van enige kleur en grootte teken. Hier word twee reghoekige knoppies geskep met behulp van fillRoundRect en drawRoundRect funksies. Sintaksis vir tft.drawRoundRect funksie word hieronder gegee:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t kleur)
Waar:
x0 = X koördinaat van die beginpunt van reghoek
y0 = Y koördinaat van die beginpunt van reghoek
w = Breedte van die reghoek
h = Hoogte van die reghoek
radius = Radius van die ronde hoek
kleur = Kleur van die rekt.
leegte trek tuis ()
{
tft.fillScreen (WIT);
tft.drawRoundRect (0, 0, 319, 240, 8, WIT); // Bladsygrens
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, WIT); // Stem
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, WIT); //Inskryf
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Uitslag
tft.drawRoundRect (10, 250, 220, 50, 8, WIT);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Stem");
tft.setCursor (57, 29);
tft.print ("masjien");
tft.setTextSize (3);
tft.setTextColor (WIT);
tft.setCursor (25, 82);
tft.print ("Kandidaat 1");
tft.setCursor (25, 172);
tft.print ("Kandidaat 2");
tft.setCursor (25, 262);
tft.print ("Kandidaat 3");
}
2. Die raakpunte kry en knoppies opspoor:
Nou in die tweede afdeling van die kode, sal ons die raakpunte van die knoppie opspoor en dan hierdie punte gebruik om die knoppie te voorspel. ts.getPoint () -funksie word gebruik om die aanraking van die gebruiker op TFT -skerm op te spoor. ts.getPoint gee die rou ADC -waardes vir die aangeraakte gebied. Hierdie RAW ADC -waardes word dan omgeskakel na Pixel -koördinate met behulp van die kaartfunksie.
TSPoint p = ts.getPoint ();
as (p.z> ts.pressureThreshhold)
{
p.x = kaart (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = kaart (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
// Serial.print(p.x);
//Serial.print("Y: ");
// Serial.print(p.y);
Aangesien ons die X- en Y -koördinate vir elke knoppie ken, kan ons voorspel waar die gebruiker geraak het deur die 'as' -stelling te gebruik.
as (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidaat 1");
As 'n kieser op die kandidaatknoppie druk, sal hy gevra word om die vinger op die vingerafdruksensor te skandeer. As vinger -ID gemagtig is, mag die kieser stem. As 'n gebruiker wat nie geregistreer is nie, wil stem, sal die vingerafdrukmodule nie sy ID in die stelsel opspoor nie en die skerm sal 'Sorry You Cann't Vote' wys.
as (fps. IsPressFinger ())
{
fps. CaptureFinger (vals);
int id = fps. Identify1_N ();
as (id <200)
{
msg = "Kandidaat 1";
stem1 ++;
EEPROM.write (0, stem1);
tft.setCursor (42, 170);
tft.print ("Dankie");
vertraging (3000);
drawHome ();
3. Uitslag:
Die laaste stap is om die aantal stemme uit die EEPROM -geheue te kry en die stemme van al drie kandidate te vergelyk. 'N Kandidaat met die hoogste stemme wen. Die uitslag kan slegs verkry word vanaf die seriële monitor en word nie op die TFT -skerm vertoon nie.
stem1 = EEPROM.read (0);
stem2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
as (stem)
{
as ((stem1> stem2 && stem1> stem3))
{
Serial.print ("Can1 Wins");
vertraging (2000);
}
Stap 4: Toets die stemafdrukstelsel met vingerafdruk met behulp van Arduino
Om die projek te toets, koppel die Arduino Uno aan die skootrekenaar en laai die gegewe kode op. Sodra die kode opgelaai is, moet die TFT -skerm die naam van die kandidaat vertoon. As iemand op 'n kandidaatnaam tik, sal die masjien vra om die vingerafdrukskandeerder te skandeer. As die vingerafdruk geldig is, word die gebruikersstem getel, maar as die patroon nie ooreenstem met die rekords van die databasis nie, word toegang tot stemming geweier. Die totale aantal stemme vir elke kandidaat word in EEPROM gestoor en 'n kandidaat met die meeste stemme sal wen.
Ek hoop dat u die tutoriaal geniet het en dat u iets nuttigs geleer het. As u enige vrae het, laat weet ons dit in die kommentaarafdeling hieronder, en volg ons ook op Instructable vir meer sulke interessante projekte.
Aanbeveel:
Neem wonderlike foto's met 'n iPhone: 9 stappe (met foto's)
Neem wonderlike foto's met 'n iPhone: die meeste van ons dra deesdae 'n slimfoon oral, daarom is dit belangrik om te weet hoe u u slimfoonkamera kan gebruik om fantastiese foto's te neem! Ek het net 'n paar jaar 'n slimfoon gehad, en ek hou daarvan om 'n ordentlike kamera te hê om dinge te dokumenteer wat ek
Biometriese motorinskrywing - Ware sleutellose motor: 4 stappe
Biometriese inskrywing van motors - 'n ware sleutellose motor: 'n Paar maande gelede het my dogter my gevra hoekom moderne motors nie met 'n biometriese toegangstelsel toegerus is nie, selfs as 'n selfoon dit gebruik. Sedertdien is ek besig om dieselfde te implementeer en uiteindelik daarin geslaag om iets op my T te installeer en te toets
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
Biometriese persoonlike dagboek: 5 stappe (met foto's)
Biometriese persoonlike dagboek: hierdie netjiese klein dingetjie het 'n vingerafdruksensor, sodat u u spulletjies in 'n persoonlike draagbare tas kan beveilig. Ek gebruik 'n dagboek en pen en ontwerpe vir my nuwe projekte. Beskik oor 'n 3D -gedrukte koffer en gebruik 'n Arduino nano. Goeie geskenk idee