Obsah:
- Krok 1: Komponenty potrebné na stavbu biometrického hlasovacieho zariadenia
- Krok 2: Schéma zapojenia biometrického hlasovacieho zariadenia pomocou Arduina
- Krok 3: Zdrojový kód a vysvetlenie kódu krok za krokom
- Krok 4: Testovanie hlasovacieho systému pomocou odtlačkov prstov pomocou Arduina
Video: Biometrický hlasovací prístroj založený na odtlačkoch prstov pomocou Arduina: 4 kroky (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Všetci vieme o existujúcom elektronickom hlasovacom zariadení, kde musí používateľ hlasovať stlačením tlačidla. Tieto stroje sú však od začiatku kritizované kvôli temperovaniu. Vláda preto plánuje zavedenie hlasovacieho zariadenia založeného na odtlačkoch prstov, kde budú môcť používatelia hlasovať na základe svojho odtlačku prsta. Tento systém nielenže odstráni možnosť duplicitných hlasov, ale tiež zabráni akejkoľvek manipulácii.
V tomto projekte teda postavíme prototyp biometrického hlasovacieho zariadenia s použitím Arduino Uno, TFT displeja a snímača odtlačkov prstov. Predtým sme použili snímač odtlačkov prstov R305 s NodeMCU na vybudovanie biometrického dochádzkového systému, ale tu použijeme pokročilý snímač odtlačkov prstov GT-511C3 s Arduino.
Krok 1: Komponenty potrebné na stavbu biometrického hlasovacieho zariadenia
- Arduino Uno
- 2,4 "TFT LCD displej
- Snímač odtlačkov prstov GT-511C3
Tento 2,4 -palcový TFT displej sa v minulosti používal s Arduinom na zostavenie systému objednávania jedál v reštaurácii založenom na IoT.
Krok 2: Schéma zapojenia biometrického hlasovacieho zariadenia pomocou Arduina
Schéma zapojenia pre tento projekt je veľmi jednoduchá, pretože pripájame iba modul TFT displeja a snímača odtlačkov prstov k Arduino Uno. VCC a GND piny snímača odtlačkov prstov sú pripojené k 5V a GND pinom Arduina, zatiaľ čo TX a RX piny sú pripojené k digitálnym pinom 11 a 12 Arduino Uno.
2,4 palcový TFT LCD displej je štít Arduino a je možné ho priamo namontovať na Arduino Uno, ako je znázornené na obrázku nižšie. TFT displej má 28 pinov, ktoré sa perfektne hodia do Arduino Uno, takže som musel spájkovať snímač odtlačkov prstov na zadnej strane Arduina.
Krok 3: Zdrojový kód a vysvetlenie kódu krok za krokom
Úplný kód tohto projektu systému hlasovania pomocou odtlačkov prstov pomocou Arduina je uvedený na konci článku; Tu vysvetľujeme niektoré dôležité funkcie kódu.
Kód používa knižnice SPFD5408, Software Serial a FPS_GT511C3. Knižnica SPFD5408 je upravenou verziou pôvodnej knižnice Adafruit. Tieto súbory knižnice je možné stiahnuť z nižšie uvedených odkazov:
- Knižnica SPFD5408
- Sériový softvér
- FPS_GT511C3
Po zahrnutí knižníc a definovaní niektorých dôležitých parametrov sa môžeme dostať do programovacej časti. Do tohto programu sú zapojené tri sekcie. Prvým je vytvorenie používateľského rozhrania hlasovacieho zariadenia, druhým je získanie dotykových bodov pre tlačidlá a detekcia tlačidiel na základe dotyku a nakoniec výpočet výsledkov a ich uloženie do pamäte Arduina.
1. Vytvorenie používateľského rozhrania:
Vytvoril som jednoduché používateľské rozhranie s tromi tlačidlami a názvom projektu. Knižnica displeja TFT vám umožňuje kresliť čiary, obdĺžniky, kruhy, znaky, reťazce a oveľa viac ľubovoľnej preferovanej farby a veľkosti. Tu sa pomocou funkcií fillRoundRect a drawRoundRect vytvoria dve obdĺžnikové tlačidlá. Syntax pre funkciu tft.drawRoundRect je uvedená nižšie:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t farba)
Kde:
x0 = X súradnica východiskového bodu obdĺžnika
y0 = súradnica Y východiskového bodu obdĺžnika
w = Šírka obdĺžnika
h = výška obdĺžnika
polomer = polomer zaobleného rohu
farba = farba obd.
prázdne kreslenieHome ()
{
tft.fillScreen (BIELY);
tft.drawRoundRect (0, 0, 319, 240, 8, BIELY); // Okraj stránky
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, BIELY); // Hlasujte
tft.fillRoundRect (10, 160, 220, 50, 8, ZLATO);
tft.drawRoundRect (10, 160, 220, 50, 8, BIELY); // Zaregistrujte sa
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Výsledok
tft.drawRoundRect (10, 250, 220, 50, 8, BIELY);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print („hlasovanie“);
tft.setCursor (57, 29);
tft.print („stroj“);
tft.setTextSize (3);
tft.setTextColor (BIELY);
tft.setCursor (25, 82);
tft.print ("Kandidát 1");
tft.setCursor (25, 172);
tft.print („kandidát 2“);
tft.setCursor (25, 262);
tft.print („kandidát 3“);
}
2. Získanie dotykových bodov a detekčných tlačidiel:
Teraz v druhej časti kódu zistíme dotykové body tlačidiel a potom ich použijeme na predpovedanie tlačidla. Funkcia ts.getPoint () sa používa na detekciu dotyku používateľa na TFT displeji. ts.getPoint uvádza nespracované hodnoty ADC pre dotknutú oblasť. Tieto hodnoty RAW ADC sa potom pomocou funkcie mapy prevedú na súradnice pixelov.
TSPoint p = ts.getPoint ();
ak (p.z> ts.pressureThreshhold)
{
p.x = mapa (s.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);
Keďže poznáme súradnice X a Y pre každé tlačidlo, pomocou príkazu „ak“môžeme predpovedať, kde sa používateľ dotkol.
ak (s.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("kandidát 1");
Keď volič stlačí tlačidlo kandidáta, požiada ho, aby naskenoval prst na snímači odtlačkov prstov. Ak je autorizovaný identifikátor prsta, volič môže hlasovať. Ak chce neregistrovaný používateľ hlasovať, modul odtlačkov prstov nezistí v systéme svoje ID a na displeji sa zobrazí „Prepáčte, nemôžete hlasovať“.
ak (fps. IsPressFinger ())
{
fps. CaptureFinger (false);
int id = fps. Identify1_N ();
ak (id <200)
{
msg = "Kandidát 1";
hlasujte1 ++;
EEPROM.write (0, hlas1);
tft.setCursor (42, 170);
tft.print („Ďakujem“);
oneskorenie (3000);
drawHome ();
3. Výsledok:
Posledným krokom je načítanie hlasov z pamäte EEPROM a porovnanie hlasov všetkých troch kandidátov. Vyhráva kandidát s najvyšším počtom hlasov. K výsledku je možné získať prístup iba zo sériového monitora a nezobrazí sa na obrazovke TFT.
vote1 = EEPROM.read (0);
vote2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
ak (hlasujte)
{
ak ((hlasujte1> hlasujte2 && hlasujte1> hlasujte3))
{
Serial.print („Can1 vyhráva“);
oneskorenie (2000);
}
Krok 4: Testovanie hlasovacieho systému pomocou odtlačkov prstov pomocou Arduina
Na otestovanie projektu pripojte Arduino Uno k notebooku a nahrajte daný kód. Po nahraní kódu by mal displej TFT zobrazovať meno kandidáta. Keď niekto klepne na meno kandidáta, zariadenie požiada o skenovanie skenera odtlačkov prstov. Ak je odtlačok prsta platný, hlas používateľa sa započíta, ale v prípade, že sa vzor nezhoduje so záznamami databázy, prístup k odovzdaniu hlasu bude odmietnutý. Celkový počet hlasov pre každého kandidáta bude uložený v EEPROM a kandidát s najvyšším počtom hlasov vyhrá.
Dúfam, že sa vám návod páčil a naučili ste sa niečo užitočné. Ak máte akékoľvek otázky, dajte nám vedieť v sekcii komentárov nižšie a tiež nás sledujte na stránke Instructable, kde nájdete ďalšie zaujímavé projekty.
Odporúča:
Dochádzkový systém založený na odtlačkoch prstov a RFID využívajúci databázu Raspberry Pi a MySQL: 5 krokov
Dochádzkový systém založený na odtlačkoch prstov a RFID pomocou databázy Raspberry Pi a MySQL: Video z tohto projektu
Biometrický vstup do auta - pravé bezkľúčové auto: 4 kroky
Biometrický vstup do auta - pravé bezkľúčové auto: Pred niekoľkými mesiacmi sa ma moja dcéra pýtala, prečo moderné autá nie sú vybavené biometrickým vstupným systémom, keď ho má dokonca aj mobilný telefón. Od tej doby pracoval na implementácii toho istého a nakoniec sa mi podarilo niečo nainštalovať a otestovať na mojom T
Prístroj na meranie výšky SONAR 2: 3 kroky (s obrázkami)
Nástroj na meranie výšky SONAR 2: verzia 1.0: https://www.instructables.com/id/SONAR-Height-Meas…Chcete postaviť počítač: http://howtobuildpcr8india.weebly.com/ Úvod: Tento projekt je nástroj na meranie výšky, ktorý je založený na arduine a ultra sonickom snímaní. Meranie
Biometrický osobný denník: 5 krokov (s obrázkami)
Biometrický osobný denník: Tento úhľadný malý gadget má snímač odtlačkov prstov, takže si môžete uložiť svoje skvelé veci do prenosného puzdra na mieru. Držím diár a pero a navrhujem svoje nové projekty. Má 3D tlačené puzdro a používa nano Arduino. Skvelý tip na darček
Ultrazvukový inteligentný prístroj: 4 kroky (s obrázkami)
Ultrazvukový inteligentný prístroj: Účel Toto je nástroj, ktorý používa ultrazvukový snímač na meranie vzdialenosti objektu (môže to byť vaša ruka). S týmto je vybraná nota na hranie, v rôznych režimoch nástroj hrá na rôzne veci. Mohla by to byť jediná poznámka (