Sadržaj:
- Korak 1: Komponente potrebne za izradu biometrijskog glasačkog stroja
- Korak 2: Dijagram kruga za biometrijski glasački stroj pomoću Arduina
- Korak 3: Izvorni kod i Korak po korak objašnjenje koda
- Korak 4: Testiranje sustava glasovanja o otiscima prstiju pomoću Arduina
Video: Biometrijski glasački stroj na temelju otisaka prstiju koji koristi Arduino: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Svi smo svjesni postojećeg elektroničkog glasačkog stroja gdje korisnik mora pritisnuti gumb za glasovanje. No ti su strojevi od početka kritizirani zbog kaljenja. Stoga vlada planira uvesti glasački stroj temeljen na otiscima prstiju gdje korisnici mogu glasovati na temelju njegova/njezinog otiska otiska prsta. Ovaj sustav neće samo ukloniti mogućnost dupliciranja glasova, već će i spriječiti bilo kakve manipulacije.
Tako ćemo u ovom projektu izgraditi prototip biometrijskog glasačkog stroja koristeći Arduino Uno, TFT zaslon i senzor otiska prsta. Ranije smo koristili senzor otiska prsta R305 s NodeMCU za izgradnju biometrijskog sustava praćenja, ali ovdje ćemo koristiti napredni senzor otiska prsta GT-511C3 s Arduinom.
Korak 1: Komponente potrebne za izradu biometrijskog glasačkog stroja
- Arduino Uno
- 2,4”TFT LCD zaslon
- Senzor otiska prsta GT-511C3
Ovaj 2,4 -inčni TFT zaslon prethodno se koristio s Arduinom za izgradnju sustava naručivanja jelovnika na temelju IoT -a.
Korak 2: Dijagram kruga za biometrijski glasački stroj pomoću Arduina
Dijagram kruga za ovaj projekt vrlo je jednostavan jer povezujemo samo TFT zaslon i modul senzora otiska prsta s Arduino Uno. VCC i GND pinovi senzora otiska prsta spojeni su na 5V i GND pinove Arduina, dok su TX i RX pinovi spojeni na digitalni pin 11 i 12 Arduino Uno.
2.4 -inčni TFT LCD zaslon je Arduino štit i može se izravno montirati na Arduino Uno, kao što je prikazano na donjoj slici. TFT zaslon ima 28 pinova koji se savršeno uklapaju u Arduino Uno, pa sam morao lemiti senzor otiska prsta na stražnjoj strani Arduina.
Korak 3: Izvorni kod i Korak po korak objašnjenje koda
Cjeloviti kôd za ovaj projekt sustava glasovanja o otiscima prstiju koji koristi Arduino dan je na kraju članka; ovdje objašnjavamo neke važne funkcije koda.
Kôd koristi biblioteke SPFD5408, Software Serial i FPS_GT511C3. Knjižnica SPFD5408 je izmijenjena verzija izvorne biblioteke Adafruit. Ove datoteke knjižnice mogu se preuzeti s donjih veza:
- Knjižnica SPFD5408
- Softverski serijski broj
- FPS_GT511C3
Nakon uključivanja knjižnica i definiranja nekih važnih parametara, možemo ući u programski dio. U ovom programu postoje tri odjeljka. Jedan je stvaranje korisničkog sučelja stroja za glasovanje, drugi je dobivanje dodirnih točaka za gumbe i otkrivanje gumba na temelju dodira te konačno izračunavanje rezultata i njihovo spremanje u Arduinovu memoriju.
1. Stvaranje korisničkog sučelja:
Napravio sam jednostavno korisničko sučelje s tri gumba i nazivom projekta. Knjižnica TFT zaslona omogućuje vam crtanje linija, pravokutnika, krugova, znakova, nizova i još mnogo toga bilo koje željene boje i veličine. Ovdje se stvaraju dva pravokutna gumba pomoću funkcija fillRoundRect i drawRoundRect. Sintaksa za funkciju tft.drawRoundRect navedena je u nastavku:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radijus, uint16_t boja)
Gdje:
x0 = X koordinata početne točke pravokutnika
y0 = Y koordinata početne točke pravokutnika
w = Širina pravokutnika
h = Visina pravokutnika
radius = Polumjer okruglog ugla
boja = Boja Prave.
void drawHome ()
{
tft.fillScreen (BIJELO);
tft.drawRoundRect (0, 0, 319, 240, 8, BIJELO); // Granica stranice
tft.fillRoundRect (10, 70, 220, 50, 8, ZLATO);
tft.drawRoundRect (10, 70, 220, 50, 8, BIJELO); //Glasanje
tft.fillRoundRect (10, 160, 220, 50, 8, ZLATO);
tft.drawRoundRect (10, 160, 220, 50, 8, BIJELO); //Upisati
tft.fillRoundRect (10, 250, 220, 50, 8, ZLATO); //Proizlaziti
tft.drawRoundRect (10, 250, 220, 50, 8, BIJELO);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Glasanje");
tft.setCursor (57, 29);
tft.print ("Stroj");
tft.setTextSize (3);
tft.setTextColor (BIJELO);
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. Dobivanje dodirnih točaka i gumba za otkrivanje:
Sada ćemo u drugom odjeljku koda otkriti dodirne točke gumba, a zatim koristiti te točke za predviđanje gumba. Funkcija ts.getPoint () koristi se za otkrivanje dodira korisnika na TFT zaslonu. ts.getPoint daje sirove ADC vrijednosti za dodirnuto područje. Ove se vrijednosti RAW ADC -a zatim pretvaraju u koordinate piksela pomoću funkcije karte.
TSPoint p = ts.getPoint ();
if (p.z> ts.prag praga)
{
p.x = karta (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = karta (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serijski.tisak(p.x);
//Serial.print("Y: ");
//Serijski.tisak(p.y);
Sada, budući da znamo koordinate X i Y za svaki gumb, možemo predvidjeti gdje je korisnik dodirnuo pomoću naredbe 'if'.
if (p.x> 70 && p.x 10 && p.y MINPRISAK && p.z <MAXPRESSURE)
{
Serial.println ("Kandidat 1");
Kad birač pritisne gumb kandidata, od njega će se tražiti da skenira prst na senzoru otiska prsta. Ako je ID prsta odobren, biraču je dozvoljeno glasovanje. Ako bilo koji neregistrirani korisnik želi glasovati, modul otiska prsta neće otkriti svoj ID u sustavu, a na zaslonu će se prikazati 'Žao mi je što ne možete glasovati'.
if (fps. IsPressFinger ())
{
fps. CaptureFinger (false);
int id = fps. Identify1_N ();
ako (id <200)
{
msg = "Kandidat 1";
glasati1 ++;
EEPROM.write (0, glas1);
tft.setCursor (42, 170);
tft.print ("Hvala");
kašnjenje (3000);
drawHome ();
3. Rezultat:
Posljednji korak je prikupljanje glasova iz memorije EEPROM -a i usporedba glasova sva tri kandidata. Pobjeđuje kandidat s najvećim brojem glasova. Rezultatu se može pristupiti samo sa serijskog monitora i neće biti prikazan na TFT ekranu.
vote1 = EEPROM.čitano (0);
vote2 = EEPROM.čitaj (1);
vote3 = EEPROM.čitaj (2);
ako (glasovanje)
{
ako ((glasaj1> glasaj2 && glasaj1> glasaj3))
{
Serial.print ("Can1 pobjeđuje");
odgoda (2000);
}
Korak 4: Testiranje sustava glasovanja o otiscima prstiju pomoću Arduina
Da biste testirali projekt, povežite Arduino Uno s prijenosnim računalom i prenesite zadani kod. Nakon što se kôd učita, na TFT zaslonu bi se trebalo prikazati ime kandidata. Kad netko dodirne ime kandidata, stroj će zatražiti skeniranje skenera otiska prsta. Ako je otisak prsta valjan, korisnički glas će se prebrojati, ali u slučaju da se uzorak ne podudara sa zapisima baze podataka, pristup glasovanju bit će odbijen. Ukupan broj glasova za svakog kandidata bit će pohranjen u EEPROM -u, a pobijedit će kandidat koji ima najveći broj glasova.
Nadam se da ste uživali u vodiču i naučili nešto korisno. Ako imate bilo kakvih pitanja, molimo vas da nas obavijestite u donjem odjeljku komentara, a također nas pratite na Instructable za još takvih zanimljivih projekata.
Preporučeni:
Sustav prisutnosti na temelju otiska prsta i RFID -a koji koristi Raspberry Pi i MySQL bazu podataka: 5 koraka
Sustav prisutnosti na temelju otisaka prstiju i RFID -a koji koristi Raspberry Pi i MySQL bazu podataka: video ovog projekta
Automatski model željezničkog rasporeda koji vozi s dva vlaka (V2.0) - Na temelju Arduina: 15 koraka (sa slikama)
Automatski model željezničkog rasporeda koji vozi s dva vlaka (V2.0) | Na temelju Arduina: Automatiziranje rasporeda željezničkih modela pomoću Arduino mikrokontrolera izvrstan je način spajanja mikrokontrolera, programiranja i željezničkog modela u jedan hobi. Dostupno je nekoliko projekata o autonomnom voženju vlaka na modelu railroa
Arduino sustav za praćenje otisaka prstiju sa pohranom podataka u oblaku: 8 koraka
Arduino sustav za praćenje otisaka prstiju sa pohranom podataka u oblaku: ovaj i druge nevjerojatne vodiče možete pročitati na službenoj web stranici ElectroPeak -aPregled Danas je učenje o radu i implementaciji IoT uređaja toliko bitno zbog sve veće upotrebe IoT sustava. U ovom vodiču ćemo napraviti
Stolni stroj za fliper koji koristi ugrađenu platformu zasnovanu na Evive-u- Arduino: 18 koraka (sa slikama)
Stolni stroj za fliper koristeći Evive- Arduino ugrađenu platformu: Još jedan vikend, još jedna uzbudljiva igra! Ovoga puta, to je nitko drugi do svačija omiljena arkadna igra - Pinball! Ovaj će vam projekt pokazati kako lako napraviti vlastiti stroj za fliper kod kuće. Sve što trebate su komponente iz evivea
Biometrijski osobni dnevnik: 5 koraka (sa slikama)
Biometrijski osobni dnevnik: Ovaj zgodni mali gadget ima senzor otiska prsta tako da svoje hladne stvari možete osigurati u prilagođenoj prijenosnoj torbici. Držim dnevnik i olovku te dizajniram svoje nove projekte. Sadrži 3D tiskano kućište i koristi Arduino nano. Odlična ideja za poklon