Satura rādītājs:
- 1. darbība. Biometriskās balsošanas iekārtas izveidei nepieciešamās sastāvdaļas
- 2. darbība. Biometriskās balsošanas iekārtas shēma, izmantojot Arduino
- 3. darbība: avota kods un soli pa solim koda skaidrojums
- 4. darbība: pirkstu nospiedumu balsošanas sistēmas pārbaude, izmantojot Arduino
Video: Uz pirkstu nospiedumiem balstīta biometriskā balsošanas iekārta, izmantojot Arduino: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Mēs visi zinām par esošo elektronisko balsošanas iekārtu, kurā lietotājam jānospiež poga, lai nodotu balsi. Bet šīs mašīnas jau no paša sākuma ir kritizētas par rūdīšanu. Tātad valdība plāno ieviest uz pirkstu nospiedumiem balstītu balsošanas iekārtu, kurā lietotāji var balsot, pamatojoties uz viņa/viņas pirkstu nospiedumu nospiedumu. Šī sistēma ne tikai novērsīs iespēju dublēt balsojumus, bet arī novērsīs jebkāda veida manipulācijas.
Tātad šajā projektā mēs izveidosim biometriskās balsošanas iekārtas prototipu, izmantojot Arduino Uno, TFT displeju un pirkstu nospiedumu sensoru. Mēs iepriekš izmantojām R305 pirkstu nospiedumu sensoru ar NodeMCU, lai izveidotu uz biometriju balstītu apmeklējuma sistēmu, bet šeit mēs izmantosim uzlaboto GT-511C3 pirkstu nospiedumu sensoru ar Arduino.
1. darbība. Biometriskās balsošanas iekārtas izveidei nepieciešamās sastāvdaļas
- Arduino Uno
- 2,4 collu TFT LCD displeja vairogs
- GT-511C3 pirkstu nospiedumu sensors
Šis 2,4 collu TFT displejs iepriekš tika izmantots kopā ar Arduino, lai izveidotu uz IoT balstītu restorānu izvēlņu pasūtīšanas sistēmu.
2. darbība. Biometriskās balsošanas iekārtas shēma, izmantojot Arduino
Šī projekta shēma ir ļoti vienkārša, jo mēs tikai savienojam TFT displeju un pirkstu nospiedumu sensora moduli ar Arduino Uno. Pirkstu nospiedumu sensora VCC un GND tapas ir savienotas ar Arduino 5V un GND tapām, bet TX un RX tapas ir pievienotas Arduino Uno digitālajām tapām 11 un 12.
2,4 collu TFT LCD ekrāns ir Arduino vairogs, un to var tieši uzstādīt uz Arduino Uno, kā parādīts zemāk esošajā attēlā. TFT displejam ir 28 tapas, kas lieliski iederas Arduino Uno, tāpēc man nācās lodēt pirkstu nospiedumu sensoru Arduino aizmugurē.
3. darbība: avota kods un soli pa solim koda skaidrojums
Pilns šī pirkstu nospiedumu balsošanas sistēmas projekta kods, izmantojot Arduino, ir norādīts raksta beigās; šeit mēs izskaidrojam dažas svarīgas koda funkcijas.
Kods izmanto bibliotēkas SPFD5408, programmatūras sērijas un FPS_GT511C3. SPFD5408 bibliotēka ir sākotnējās Adafruit bibliotēkas modificētā versija. Šos bibliotēkas failus var lejupielādēt no tālāk norādītajām saitēm:
- SPFD5408 bibliotēka
- Programmatūras sērija
- FPS_GT511C3
Pēc bibliotēku iekļaušanas un dažu svarīgu parametru noteikšanas mēs varam iekļūt programmēšanas daļā. Šajā programmā ir iesaistītas trīs sadaļas. Viens no tiem ir balsošanas iekārtas lietotāja saskarnes izveide, otrs-pogas pieskārienu punktu iegūšana un pogu noteikšana, pamatojoties uz pieskārienu, un visbeidzot rezultātu aprēķināšana un saglabāšana Arduino atmiņā.
1. UI izveide:
Esmu izveidojis vienkāršu lietotāja interfeisu ar trim pogām un projekta nosaukumu. TFT displeja bibliotēka ļauj zīmēt līnijas, taisnstūri, apļus, rakstzīmes, stīgas un daudz ko citu no jebkuras vēlamās krāsas un izmēra. Šeit tiek izveidotas divas taisnstūrveida pogas, izmantojot funkcijas fillRoundRect un drawRoundRect. Funkcijas tft.drawRoundRect sintakse ir parādīta zemāk:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t rādiuss, uint16_t krāsa)
Kur:
x0 = taisnstūra sākuma punkta X koordināta
y0 = taisnstūra sākuma punkta Y koordināta
w = taisnstūra platums
h = taisnstūra augstums
rādiuss = apaļā stūra rādiuss
krāsa = taisnīguma krāsa.
void drawHome ()
{
tft.fillScreen (BALTS);
tft.drawRoundRect (0, 0, 319, 240, 8, BALTS); // Lapas apmale
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, BALTS); // Balsošana
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, BALTS); // Reģistrēties
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Rezultāts
tft.drawRoundRect (10, 250, 220, 50, 8, BALTS);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Balsošana");
tft.setCursor (57, 29);
tft.print ("Mašīna");
tft.setTextSize (3);
tft.setTextColor (BALTS);
tft.setCursor (25, 82);
tft.print ("1. kandidāts");
tft.setCursor (25, 172);
tft.print ("2. kandidāts");
tft.setCursor (25, 262);
tft.print ("3. kandidāts");
}
2. Kontaktpunktu iegūšana un pogu noteikšana:
Tagad koda otrajā sadaļā mēs noteiksim pogas pieskāriena punktus un pēc tam izmantosim šos punktus, lai prognozētu pogu. ts.getPoint () funkcija tiek izmantota, lai noteiktu lietotāja pieskārienu TFT displejā. ts.getPoint dod neapstrādātas ADC vērtības pieskartajai zonai. Pēc tam šīs RAW ADC vērtības tiek pārveidotas par pikseļu koordinātām, izmantojot kartes funkciju.
TSPoint p = ts.getPoint ();
ja (p.z> ts.pressureThreshhold)
{
p.x = karte (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = karte (p.y, TS_MAXY, TS_MINY, 0, 240);
//Sērijas.print ("X: ");
//Sērijas.druka(p.x);
//Sērijas.print ("Y: ");
//Sērijas.druka(p.y);
Tā kā mēs zinām katras pogas X un Y koordinātas, mēs varam paredzēt, kur lietotājs ir pieskāries, izmantojot paziņojumu “ja”.
ja (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("1. kandidāts");
Kad vēlētājs nospiež kandidāta pogu, viņam tiks lūgts skenēt pirkstu uz pirkstu nospiedumu sensora. Ja pirksta ID ir atļauts, vēlētājam ir atļauts balsot. Ja kāds nereģistrēts lietotājs vēlas balsot, tad pirkstu nospiedumu modulis sistēmā neatpazīs savu ID, un displejā parādīsies uzraksts “Atvainojiet, ka nevarat balsot”.
ja (fps. IsPressFinger ())
{
fps. CaptureFinger (nepatiess);
int id = fps. Identificēt1_N ();
ja (id <200)
{
msg = "1. kandidāts";
balsojums1 ++;
EEPROM.write (0, balsojums1);
tft.setCursor (42, 170);
tft.print ("Paldies");
kavēšanās (3000);
drawHome ();
3. Rezultāts:
Pēdējais solis ir iegūt balsu skaitu no EEPROM atmiņas un salīdzināt visu trīs kandidātu balsis. Uzvar kandidāts ar lielāko balsu skaitu. Rezultātam var piekļūt tikai no seriālā monitora, un tas netiks parādīts TFT ekrānā.
balsojums1 = EEPROM.lasījums (0);
balsojums2 = EEPROM.lasījums (1);
balsojums3 = EEPROM.lasījums (2);
ja (balsošana)
{
ja ((balsojums1> balsojums2 &&balss1> balsojums3))
{
Serial.print ("Can1 uzvar");
kavēšanās (2000);
}
4. darbība: pirkstu nospiedumu balsošanas sistēmas pārbaude, izmantojot Arduino
Lai pārbaudītu projektu, pievienojiet Arduino Uno klēpjdatoram un augšupielādējiet norādīto kodu. Kad kods ir augšupielādēts, TFT displejā jāparāda kandidāta vārds. Kad kāds pieskaras kandidāta vārdam, iekārta lūgs skenēt pirkstu nospiedumu skeneri. Ja pirkstu nospiedums ir derīgs, tad lietotāja balss tiks ieskaitīta, bet gadījumā, ja modelis neatbilst datu bāzes ierakstiem, piekļuve balsošanai tiks liegta. Katra kandidāta kopējais balsu skaits tiks saglabāts EEPROM, un uzvarēs kandidāts ar lielāko balsu skaitu.
Es ceru, ka jums patika apmācība un uzzinājāt kaut ko noderīgu. Ja jums ir kādi jautājumi, lūdzu, informējiet mūs zemāk esošajā komentāru sadaļā, kā arī sekojiet mums vietnē Instructable, lai iegūtu vairāk šādu interesantu projektu.
Ieteicams:
Uz Alexa balstīta balss kontrolēta raķešu palaišanas iekārta: 9 soļi (ar attēliem)
Alexa Balss kontrolēts raķešu palaidējs: Tuvojoties ziemas sezonai; pienāk gada laiks, kad tiek svinēti gaismas svētki. Jā, mēs runājam par Diwali, kas ir patiess Indijas festivāls, ko svin visā pasaulē. Šogad Diwali jau ir beidzies, un redzot cilvēkus
Pirkstu nospiedumu un uz RFID balstīta apmeklējuma sistēma, izmantojot Raspberry Pi un MySQL datu bāzi: 5 soļi
Uz pirkstu nospiedumiem un RFID balstīta apmeklējuma sistēma, izmantojot Raspberry Pi un MySQL datubāzi: šī projekta video
Pirkstu nospiedumu tiešsaistes balsošanas sistēma (FVOS): 5 soļi
Pirkstu nospiedumu tiešsaistes balsošanas sistēma (FVOS): tiešsaistes pirkstu nospiedumu balsošanas sistēma ļauj vēlētājiem balsot pilnīgi digitalizētā veidā, savācot un apstiprinot savu informāciju, skenējot pirkstu nospiedumu caur ierīci un saglabājot datus serverī. Tam ir lietotājam draudzīga G
ARUPI - zemu izmaksu automatizēta ierakstīšanas iekārta/autonomā ierakstīšanas iekārta (ARU) skaņu ainavu ekologiem: 8 soļi (ar attēliem)
ARUPI - zemu izmaksu automatizēta ierakstīšanas iekārta/autonomā ierakstīšanas iekārta (ARU) skaņu ainavu ekologiem: šo pamācību uzrakstīja Entonijs Tērners. Projekts tika izstrādāts ar lielu palīdzību no Kentas Universitātes Datoru skolas nojumes (Daniels Nokss bija lielisks palīgs!). Tas parādīs, kā izveidot automatizētu audio ierakstu
Bankomāts, izmantojot Arduino (pirkstu nospiedums+RFID karte): 4 soļi (ar attēliem)
Bankomāts, izmantojot Arduino (pirkstu nospiedums+RFID karte): Sveiki draugi, es atgriežos ar jaunu ideju par bankomātu, izmantojot Arduino. Tas var būt noderīgi lauku apvidos, kur bezskaidras naudas pakalpojumi nav iespējami. Tā ir neliela ideja. Es ceru jums patika. Sāksim darbu