Kazalo:
- Korak: Komponente, potrebne za izdelavo biometričnega glasovalnega stroja
- 2. korak: Shema vezja za biometrični glasovalni stroj z uporabo Arduina
- 3. korak: izvorna koda in razlaga kode po korakih
- 4. korak: Preizkus sistema glasovanja s prstnimi odtisi z uporabo Arduina
Video: Biometrični glasovalni stroj na osnovi prstnih odtisov z uporabo Arduina: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Vsi se zavedamo obstoječega elektronskega glasovalnega stroja, kjer mora uporabnik za oddajo glasu pritisniti gumb. Toda ti stroji so bili že od začetka kritizirani zaradi kaljenja. Zato vlada načrtuje uvedbo glasovalnega stroja na podlagi prstnih odtisov, kjer lahko uporabniki glasujejo na podlagi njegovega vtisa prstnega odtisa. Ta sistem ne bo le odpravil možnosti podvojenih glasov, ampak tudi preprečil kakršne koli manipulacije.
Tako bomo v tem projektu izdelali prototip biometričnega glasovalnega stroja z uporabo Arduino Uno, TFT zaslona in senzorja prstnih odtisov. Prej smo uporabili senzor prstnih odtisov R305 z NodeMCU za izdelavo biometričnega sistema prisotnosti, tukaj pa bomo uporabili napredni senzor prstnih odtisov GT-511C3 z Arduinom.
Korak: Komponente, potrebne za izdelavo biometričnega glasovalnega stroja
- Arduino Uno
- 2,4 -palčni TFT LCD zaslon
- Senzor prstnih odtisov GT-511C3
Ta 2,4 -palčni zaslon TFT se je prej uporabljal z Arduinom za izdelavo sistema naročanja v meniju restavracij na osnovi IoT.
2. korak: Shema vezja za biometrični glasovalni stroj z uporabo Arduina
Shema vezja za ta projekt je zelo preprosta, saj povezujemo samo zaslon TFT in modul senzorja prstnih odtisov z Arduino Uno. Zatiči VCC in GND senzorja prstnih odtisov so priključeni na nožice 5V in GND Arduina, medtem ko so nožici TX in RX priključeni na digitalni pin 11 in 12 Arduino Uno.
2,4 -palčni zaslon TFT LCD je Arduino Shield in ga je mogoče neposredno namestiti na Arduino Uno, kot je prikazano na spodnji sliki. TFT zaslon ima 28 zatičev, ki se popolnoma prilegajo Arduino Uno, zato sem moral spajkati senzor prstnih odtisov na hrbtni strani Arduina.
3. korak: izvorna koda in razlaga kode po korakih
Celotna koda za ta projekt glasovanja o prstnih odtisih z uporabo Arduina je podana na koncu članka; tukaj razlagamo nekatere pomembne funkcije kode.
Koda uporablja knjižnice SPFD5408, Software Serial in FPS_GT511C3. Knjižnica SPFD5408 je spremenjena različica izvirne knjižnice Adafruit. Te datoteke knjižnice lahko prenesete s spodnjih povezav:
- Knjižnica SPFD5408
- Serijska programska oprema
- FPS_GT511C3
Po vključitvi knjižnic in določitvi nekaterih pomembnih parametrov lahko preidemo na programski del. V tem programu so trije oddelki. Eden je ustvarjanje uporabniškega vmesnika glasovalnega stroja, drugi je pridobivanje stičnih točk za gumbe in zaznavanje gumbov na podlagi dotika ter končno izračun rezultatov in shranjevanje v Arduinov spomin.
1. Ustvarjanje uporabniškega vmesnika:
Ustvaril sem preprost uporabniški vmesnik s tremi gumbi in imenom projekta. Knjižnica zaslona TFT vam omogoča risanje črt, pravokotnikov, krogov, znakov, nizov in še veliko več poljubnih barv in velikosti. Tu sta s funkcijami fillRoundRect in drawRoundRect ustvarjena dva pravokotna gumba. Sintaksa za funkcijo tft.drawRoundRect je podana spodaj:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, polmer int16_t, barva uint16_t)
Kje:
x0 = X koordinata začetne točke pravokotnika
y0 = Y koordinata začetne točke pravokotnika
w = širina pravokotnika
h = Višina pravokotnika
radius = Polmer okroglega vogala
barva = Barva rekta.
void drawHome ()
{
tft.fillScreen (BELO);
tft.drawRoundRect (0, 0, 319, 240, 8, BELO); // meja strani
tft.fillRoundRect (10, 70, 220, 50, 8, ZLATO);
tft.drawRoundRect (10, 70, 220, 50, 8, BELO); // Glasovanje
tft.fillRoundRect (10, 160, 220, 50, 8, ZLATO);
tft.drawRoundRect (10, 160, 220, 50, 8, BELO); // Včlanite se
tft.fillRoundRect (10, 250, 220, 50, 8, ZLATO); // Rezultat
tft.drawRoundRect (10, 250, 220, 50, 8, BELO);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Glasovanje");
tft.setCursor (57, 29);
tft.print ("Stroj");
tft.setTextSize (3);
tft.setTextColor (BELO);
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. Pridobivanje dodirnih točk in gumbov za zaznavanje:
Zdaj bomo v drugem delu kode zaznali stične točke gumba in nato te točke uporabili za napovedovanje gumba. Funkcija ts.getPoint () se uporablja za zaznavanje uporabnikovega dotika na zaslonu TFT. ts.getPoint podaja surove vrednosti ADC za območje, ki se ga dotakne. Te vrednosti ADC RAW se nato s funkcijo zemljevida pretvorijo v koordinate pikslov.
TSPoint p = ts.getPoint ();
če (p.z> ts.pritiskTreg)
{
p.x = zemljevid (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = zemljevid (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
Zdaj, ko poznamo koordinate X in Y za vsak gumb, lahko s stavkom 'if' predvidimo, kje se je uporabnik dotaknil.
če (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidat 1");
Ko volivec pritisne gumb kandidata, bo pozvan, da skenira prst na senzorju prstnih odtisov. Če je dovoljena identifikacija prsta, lahko volivec voli. Če želi kateri koli neregistriran uporabnik glasovati, modul prstnih odtisov ne bo zaznal svojega ID-ja v sistemu, na zaslonu pa bo prikazano »Žal ne morete glasovati«.
if (fps. IsPressFinger ())
{
fps. CaptureFinger (false);
int id = fps. Identify1_N ();
če (id <200)
{
msg = "Kandidat 1";
glasovanje1 ++;
EEPROM.write (0, glasovanje1);
tft.setCursor (42, 170);
tft.print ("Hvala");
zamuda (3000);
drawHome ();
3. Rezultat:
Zadnji korak je pridobivanje števila glasov iz pomnilnika EEPROM in primerjava glasov vseh treh kandidatov. Zmaga kandidat z največ glasovi. Do rezultata lahko dostopate samo iz serijskega monitorja in ne bo prikazan na zaslonu TFT.
vote1 = EEPROM.preberi (0);
vote2 = EEPROM.preberi (1);
vote3 = EEPROM.preberi (2);
če (glasovanje)
{
če ((glasovanje1> glasovanje2 && glasovanje1> glasovanje3))
{
Serial.print ("Can1 zmaga");
zamuda (2000);
}
4. korak: Preizkus sistema glasovanja s prstnimi odtisi z uporabo Arduina
Če želite preizkusiti projekt, priključite Arduino Uno na prenosni računalnik in naložite podano kodo. Ko je koda naložena, mora na zaslonu TFT prikazati ime kandidata. Ko se nekdo dotakne imena kandidata, bo naprava zahtevala skeniranje bralnika prstnih odtisov. Če je prstni odtis veljaven, se bo glasovanje uporabnika štelo, če pa se vzorec ne ujema z zapisi baze podatkov, bo dostop do glasovanja zavrnjen. Skupno število glasov za vsakega kandidata bo shranjeno v EEPROM -u, zmagal pa bo kandidat z največjim številom glasov.
Upam, da ste uživali v vadnici in se naučili kaj koristnega. Če imate kakršna koli vprašanja, nam to sporočite v spodnjem razdelku za komentarje in nas spremljajte na Instructable za več takšnih zanimivih projektov.
Priporočena:
Identifikacija prstnih odtisov: 4 koraki
Identifikacija prstnih odtisov: aplikacijo za prstne odtise lahko vidimo v vsakdanjem življenju. Z razvojem industrije mobilnih telefonov ima skoraj vsak mobilni telefon funkcijo odklepanja prstnih odtisov. Danes bom predstavil napravo za odklepanje prstnih odtisov, ki jo lahko uporabimo za
Modul prstnih odtisov + STONE TFT-LCD: 3 koraki
Modul prstnih odtisov + STONE TFT-LCD: Ta mesec sem nameraval razviti projekt zaklepanja vrat s prstnimi odtisi. Ko sem izbral modul za identifikacijo prstnih odtisov, je bil projekt ustavljen. Vendar sem mislil, da si bom, odkar je bil kupljen modul za identifikacijo prstnih odtisov, poenostavil
Sistem prisotnosti na podlagi prstnih odtisov in RFID z uporabo baze podatkov Raspberry Pi in MySQL: 5 korakov
Sistem prisotnosti na podlagi prstnih odtisov in RFID z uporabo baze podatkov Raspberry Pi in MySQL: videoposnetek tega projekta
Električna ključavnica za vrata s skenerjem prstnih odtisov in bralnikom RFID: 11 korakov (s slikami)
Električna ključavnica za vrata s čitalnikom prstnih odtisov in bralnikom RFID: Projekt je bil zasnovan tako, da se izogne nujnosti uporabe ključev, za dosego cilja pa smo uporabili optični senzor prstnih odtisov in Arduino. Vendar pa obstajajo posamezniki, ki imajo nečitljiv prstni odtis in ga senzor ne prepozna. Potem pomislite na
Uporaba senzorja prstnih odtisov za časovno udeležbo v kombinaciji z rešitvijo XAMP: 6 korakov (s slikami)
Uporaba senzorja prstnih odtisov za časovno udeležbo v kombinaciji z rešitvijo XAMP: Za šolski projekt smo iskali rešitev, kako slediti udeležbi učencev. Veliko naših študentov pride pozno. Preverjanje njihove prisotnosti je dolgočasno delo. Po drugi strani pa je veliko razprav, ker bodo študentje pogosto rekli