Sadržaj:
- Korak 1: Komponente potrebne za izradu biometrijske glasačke mašine
- Korak 2: Dijagram kola za biometrijsku glasačku mašinu pomoću Arduina
- Korak 3: Izvorni kôd i objašnjenje koda po korak
- Korak 4: Testiranje sistema glasanja o otiscima prstiju pomoću Arduina
Video: Biometrijska mašina za glasanje zasnovana na otiscima prstiju koristeći Arduino: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Svi smo svjesni postojeće elektronske mašine za glasanje u kojoj korisnik mora pritisnuti dugme za glasanje. Ali ove mašine su od početka kritikovane zbog kaljenja. Stoga vlada planira uvesti mašinu za glasanje zasnovanu na otiscima prstiju gdje korisnici mogu glasati na osnovu njegovog/njenog otiska prsta. Ovaj sistem neće samo ukloniti mogućnost dupliciranja glasova, već će i spriječiti bilo kakvu manipulaciju.
Tako ćemo u ovom projektu izgraditi prototip biometrijske mašine za glasanje koristeći Arduino Uno, TFT ekran i senzor otiska prsta. Ranije smo koristili senzor otiska prsta R305 sa NodeMCU za izgradnju biometrijskog sistema praćenja, ali ovdje ćemo koristiti napredni senzor otiska prsta GT-511C3 sa Arduinom.
Korak 1: Komponente potrebne za izradu biometrijske glasačke mašine
- Arduino Uno
- 2,4”TFT LCD ekran
- GT-511C3 Senzor otiska prsta
Ovaj 2,4 -inčni TFT ekran ranije se koristio s Arduinom za izgradnju IoT sistema za naručivanje jelovnika.
Korak 2: Dijagram kola za biometrijsku glasačku mašinu pomoću Arduina
Shema kola za ovaj projekt je vrlo jednostavna jer povezujemo samo TFT zaslon i modul senzora otiska prsta s Arduino Uno. VCC i GND pinovi senzora otiska prsta povezani su na 5V i GND pinove Arduina, dok su TX i RX pinovi povezani na digitalni pin 11 i 12 Arduino Uno.
2.4 -inčni TFT LCD ekran je Arduino štit i može se direktno 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 kôd i objašnjenje koda po korak
Potpuni kôd za ovaj projekt sistema glasovanja o otiscima prstiju koji koristi Arduino dat je na kraju članka; ovdje objašnjavamo neke važne funkcije koda.
Kod koristi biblioteke SPFD5408, Software Serial i FPS_GT511C3. Biblioteka SPFD5408 je izmijenjena verzija originalne biblioteke Adafruit. Ove bibliotečke datoteke možete preuzeti sa donjih veza:
- Biblioteka SPFD5408
- Softverski serijski broj
- FPS_GT511C3
Nakon uključivanja biblioteka i definiranja nekih važnih parametara, možemo ući u programski dio. U ovom programu postoje tri odjeljka. Jedan je stvaranje korisničkog interfejsa mašine za glasanje, drugi je dobijanje dodirnih tačaka za dugmad i otkrivanje dugmadi na osnovu dodira i na kraju izračunavanje rezultata i njihovo čuvanje u Arduinovo pamćenje.
1. Kreiranje korisničkog sučelja:
Napravio sam jednostavan korisnički interfejs sa tri dugmeta i imenom projekta. Biblioteka TFT ekrana 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 tačke pravougaonika
y0 = Y koordinata početne tačke pravougaonika
w = Širina pravokutnika
h = Visina pravokutnika
radius = poluprečnik okruglog ugla
color = Boja rekta.
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); // Glasajte
tft.fillRoundRect (10, 160, 220, 50, 8, ZLATO);
tft.drawRoundRect (10, 160, 220, 50, 8, BIJELO); // Upis
tft.fillRoundRect (10, 250, 220, 50, 8, ZLATO); // Rezultat
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. Dobijanje dodirnih točaka i tipki za otkrivanje:
Sada ćemo u drugom odjeljku koda otkriti dodirne točke gumba, a zatim ih upotrijebiti za predviđanje gumba. Funkcija ts.getPoint () koristi se za detekciju dodira korisnika na TFT ekranu. ts.getPoint daje sirove ADC vrijednosti za dodirnuto područje. Ove RAW ADC vrijednosti se zatim konvertiraju u Pixel Coordinates pomoću funkcije map.
TSPoint p = ts.getPoint ();
if (p.z> ts.pregresni prag)
{
p.x = mapa (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = mapa (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
Sada, budući da znamo koordinate X i Y za svako dugme, možemo predvidjeti gdje je korisnik dodirnuo pomoću naredbe 'if'.
if (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidat 1");
Kada birač pritisne dugme kandidata, od njega će se tražiti da skenira prst na senzoru otiska prsta. Ako je identifikovana identifikacija prsta, glasaču je dozvoljeno da glasa. Ako bilo koji neregistrirani korisnik želi glasovati, modul otiska prsta neće otkriti svoj ID u sistemu, a na ekranu ć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";
vote1 ++;
EEPROM.write (0, glas 1);
tft.setCursor (42, 170);
tft.print ("Hvala");
kašnjenje (3000);
drawHome ();
3. Rezultat:
Poslednji korak je prikupljanje glasova iz memorije EEPROM -a i upoređivanje glasova sva tri kandidata. Pobjeđuje kandidat sa 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.čitano (1);
vote3 = EEPROM.čitano (2);
ako (glasaj)
{
if ((glas1> glas2 && glas1> glas3))
{
Serial.print ("Can1 pobjeđuje");
kašnjenje (2000);
}
Korak 4: Testiranje sistema glasanja o otiscima prstiju pomoću Arduina
Da biste testirali projekat, povežite Arduino Uno sa laptopom i prenesite dati kod. Nakon što se kôd učita, na TFT ekranu bi trebalo biti prikazano ime kandidata. Kada neko dodirne ime kandidata, mašina će zatražiti da skenira skener otiska prsta. Ako je otisak prsta valjan, korisnički glas će se prebrojavati, ali u slučaju da se uzorak ne podudara sa zapisima baze podataka, pristup glasanju bit će odbijen. Ukupan broj glasova za svakog kandidata bit će pohranjen u EEPROM -u, a kandidat s najvećim brojem glasova će pobijediti.
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 odjeljku za komentare ispod, a također nas pratite na Instructable -u za još takvih zanimljivih projekata.
Preporučuje se:
Sistem prisustva zasnovanog na otiscima prstiju i RFID -u koji koristi Raspberry Pi i MySQL bazu podataka: 5 koraka
Sistem prisustva zasnovanog na otiscima prstiju i RFID -u koji koristi Raspberry Pi i MySQL bazu podataka: Video ovog projekta
Mrežni sistem glasanja o otiscima prstiju (FVOS): 5 koraka
Mrežni sistem glasanja o otiscima prstiju (FVOS): Mrežni sistem glasanja o otiscima prstiju omogućava glasačima da daju svoj glas na potpuno digitalizovan način prikupljanjem i potvrđivanjem svojih podataka skeniranjem otiska prsta kroz uređaj i spremanjem podataka na server. Ima user-friendly G
Mašina za svirače flaute zasnovana na Arduinu: 10 koraka (sa slikama)
Mašina za svirače flaute zasnovana na Arduinu: U ovom uputstvu pokušavam predstaviti projekt koji kombinira umjetnost s inženjeringom. Mašina koja svira flautu. Kontrolira bilješke pomoću Arduina. Na Arduinu se mogu programirati različite melodije ili pjesme koje Arduino svira na flauti. Nema
Svjetlo prstiju: 7 koraka (sa slikama)
Svjetlo prstiju: Prilaženje svjetla na prst može biti izuzetno korisno pri radu u uskim prostorima. Ovo uputstvo će pokazati kako napraviti jeftino svjetlo za prste koristeći uobičajeno dostupne dijelove. Popis dijelova: Županijska zajednica ARES SO-LED Velcro Qwi
Osetljivi vrhovi prstiju: 10 koraka (sa slikama)
Osetljivi vrhovi prstiju: Rukavica sa senzorima pritiska od tkanine na svakom vrhu prsta. Ideja je došla od nekoga drugog koji je to želio iskoristiti kao učitelj klavira s djecom kako bi vizualizirao razliku između " p " klavir (meki) i " f " forte (teško). P