Turinys:
- 1 žingsnis: komponentai, reikalingi norint sukurti biometrinį balsavimo aparatą
- 2 žingsnis: Biometrinio balsavimo aparato schema naudojant „Arduino“
- 3 žingsnis: šaltinio kodas ir žingsnis po žingsnio kodo paaiškinimas
- 4 žingsnis: Pirštų atspaudų balsavimo sistemos testavimas naudojant „Arduino“
Video: Pirštų atspaudų biometrinis balsavimo aparatas naudojant „Arduino“: 4 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Visi žinome apie esamą elektroninio balsavimo aparatą, kuriame vartotojas turi paspausti mygtuką balsuoti. Tačiau šios mašinos buvo kritikuojamos dėl grūdinimo nuo pat pradžių. Taigi vyriausybė planuoja įdiegti pirštų atspaudų balsavimo aparatą, kuriame vartotojai galėtų balsuoti pagal jo/jos pirštų atspaudų įspūdį. Ši sistema ne tik pašalins galimybę pakartotinai balsuoti, bet ir užkirs kelią bet kokioms manipuliacijoms.
Taigi šiame projekte mes ketiname sukurti biometrinio balsavimo aparato prototipą, naudodami „Arduino Uno“, TFT ekraną ir pirštų atspaudų jutiklį. Anksčiau naudojome R305 pirštų atspaudų jutiklį su „NodeMCU“, kad sukurtume biometrinę stebėjimo sistemą, tačiau čia naudosime pažangų GT-511C3 pirštų atspaudų jutiklį su „Arduino“.
1 žingsnis: komponentai, reikalingi norint sukurti biometrinį balsavimo aparatą
- Arduino Uno
- 2,4 colio TFT LCD ekranas
- GT-511C3 pirštų atspaudų jutiklis
Šis 2,4 colio TFT ekranas anksčiau buvo naudojamas su „Arduino“kuriant „IoT“pagrįstą restorano meniu užsakymo sistemą.
2 žingsnis: Biometrinio balsavimo aparato schema naudojant „Arduino“
Šio projekto grandinės schema yra labai paprasta, nes mes jungiame tik TFT ekraną ir pirštų atspaudų jutiklio modulį su „Arduino Uno“. Pirštų atspaudų jutiklio VCC ir GND kaiščiai yra prijungti prie „Arduino“5 V ir GND kaiščių, o TX ir RX kaiščiai yra prijungti prie „Arduino Uno“skaitmeninių kaiščių 11 ir 12.
2,4 colio TFT LCD ekranas yra „Arduino Shield“ir gali būti tiesiogiai pritvirtintas prie „Arduino Uno“, kaip parodyta paveikslėlyje žemiau. TFT ekranas turi 28 kaiščius, kurie puikiai tinka „Arduino Uno“, todėl turėjau lituoti pirštų atspaudų jutiklį „Arduino“gale.
3 žingsnis: šaltinio kodas ir žingsnis po žingsnio kodo paaiškinimas
Visas šio pirštų atspaudų balsavimo sistemos projekto, kuriame naudojama „Arduino“, kodas pateiktas straipsnio pabaigoje; čia paaiškiname keletą svarbių kodo funkcijų.
Kodas naudoja SPFD5408, programinės įrangos serijos ir FPS_GT511C3 bibliotekas. SPFD5408 biblioteka yra pakeista originalios „Adafruit“bibliotekos versija. Šiuos bibliotekos failus galima atsisiųsti iš toliau pateiktų nuorodų:
- SPFD5408 biblioteka
- Programinės įrangos serija
- FPS_GT511C3
Įtraukę bibliotekas ir apibrėžę kai kuriuos svarbius parametrus, galime patekti į programavimo dalį. Šioje programoje yra trys skyriai. Vienas iš jų yra balsavimo aparato vartotojo sąsajos sukūrimas, antrasis-mygtukų prisilietimo taškų nustatymas ir mygtukų aptikimas pagal prisilietimą, pagaliau rezultatų apskaičiavimas ir išsaugojimas „Arduino“atmintyje.
1. UI kūrimas:
Aš sukūriau paprastą vartotojo sąsają su trimis mygtukais ir projekto pavadinimu. TFT ekrano biblioteka leidžia piešti linijas, stačiakampius, apskritimus, simbolius, eilutes ir daug daugiau bet kokios spalvos ir dydžio. Čia sukuriami du stačiakampiai mygtukai, naudojant funkcijas fillRoundRect ir drawRoundRect. Funkcijos tft.drawRoundRect sintaksė pateikta žemiau:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t spindulys, uint16_t spalva)
Kur:
x0 = stačiakampio pradžios taško X koordinatė
y0 = stačiakampio pradžios taško Y koordinatė
w = stačiakampio plotis
h = stačiakampio aukštis
spindulys = apvalaus kampo spindulys
spalva = rektato spalva.
void drawHome ()
{
tft.fillScreen (BALTAS);
tft.drawRoundRect (0, 0, 319, 240, 8, BALTAS); // Puslapio kraštinė
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, BALTAS); //Balsas
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, BALTAS); // Užsiregistruoti
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //Rezultatas
tft.drawRoundRect (10, 250, 220, 50, 8, BALTAS);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print („Balsavimas“);
tft.setCursor (57, 29);
tft.print („Mašina“);
tft.setTextSize (3);
tft.setTextColor (BALTA);
tft.setCursor (25, 82);
tft.print („Kandidatas 1“);
tft.setCursor (25, 172);
tft.print („2 kandidatas“);
tft.setCursor (25, 262);
tft.print („3 kandidatas“);
}
2. Prisilietimo taškų ir aptikimo mygtukų gavimas:
Dabar antrame kodo skyriuje aptiksime mygtukų sąlyčio taškus ir tada panaudosime šiuos taškus mygtukui nuspėti. ts.getPoint () funkcija naudojama aptikti vartotojo prisilietimą TFT ekrane. ts.getPoint pateikia neapdorotas ADC reikšmes paliestai sričiai. Tada šios RAW ADC vertės konvertuojamos į pikselių koordinates naudojant žemėlapio funkciją.
TSPoint p = ts.getPoint ();
jei (p.z> ts.pressureThreshhold)
{
p.x = žemėlapis (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = žemėlapis (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serijinis.spaudas ("X: ");
// serijinis atspaudas (px);
//Serijinis.spaudas ("Y: ");
// serijinis atspaudas (p.y);
Dabar, kai žinome kiekvieno mygtuko X ir Y koordinates, galime nuspėti, kur naudotojas palietė, naudodami teiginį „jei“.
jei (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println („1 kandidatas“);
Kai rinkėjas paspaus kandidato mygtuką, jo bus paprašyta nuskaityti pirštą ant pirštų atspaudų jutiklio. Jei piršto ID yra įgaliotas, rinkėjui leidžiama balsuoti. Jei bet kuris neregistruotas vartotojas nori balsuoti, pirštų atspaudų modulis neaptiks savo ID sistemoje ir ekrane bus rodoma „Atsiprašome, kad negalite balsuoti“.
jei (fps. IsPressFinger ())
{
fps. CaptureFinger (klaidinga);
int id = fps. Identify1_N ();
jei (id <200)
{
msg = "1 kandidatas";
balsas1 ++;
EEPROM.write (0, balsas1);
tft.setCursor (42, 170);
tft.print („Ačiū“);
vėlavimas (3000);
drawHome ();
3. Rezultatas:
Paskutinis žingsnis yra surinkti balsų skaičių iš EEPROM atminties ir palyginti visų trijų kandidatų balsus. Laimi daugiausiai balsų surinkęs kandidatas. Rezultatą galima pasiekti tik iš serijinio monitoriaus ir jis nebus rodomas TFT ekrane.
balsas1 = EEPROM.read (0);
balsas2 = EEPROM.read (1);
balsas3 = EEPROM.read (2);
jei (balsuoti)
{
jei ((balsas1> balsas2 && balsas1> balsas3))
{
Serial.print („Can1 laimi“);
vėlavimas (2000 m.);
}
4 žingsnis: Pirštų atspaudų balsavimo sistemos testavimas naudojant „Arduino“
Norėdami išbandyti projektą, prijunkite „Arduino Uno“prie nešiojamojo kompiuterio ir įkelkite nurodytą kodą. Įkėlus kodą, TFT ekrane turėtų būti rodomas kandidato vardas. Kai kas nors paliečia kandidato vardą, aparatas paprašys nuskaityti pirštų atspaudų skaitytuvą. Jei piršto antspaudas galioja, vartotojo balsas bus skaičiuojamas, tačiau tuo atveju, jei modelis neatitinka duomenų bazės įrašų, prieiga balsuoti bus uždrausta. Bendras kiekvieno kandidato balsų skaičius bus saugomas EEPROM ir laimės daugiausiai balsų surinkęs kandidatas.
Tikiuosi, kad jums patiko pamoka ir sužinojote kažką naudingo. Jei turite klausimų, praneškite mums žemiau esančiame komentarų skyriuje, taip pat sekite mus „Instructable“, kad gautumėte daugiau tokių įdomių projektų.
Rekomenduojamas:
Sąsajos talpinis pirštų atspaudų jutiklis su „Arduino UNO“: 7 žingsniai
Sąsajos talpinis pirštų atspaudų jutiklis su „Arduino UNO“: Ei, kas vyksta, vaikinai! Akarsh čia iš CETech. Šiandien mes pridėsime apsauginį sluoksnį prie mūsų projektų. Nesijaudinkite, kad mes nesiruošiame paskirti jokių sargybinių. Tai bus mielas, gražiai atrodantis pirštų atspaudų jutiklis iš „DFRobot“. Taigi
Pirštų atspaudų ir RFID stebėjimo sistema naudojant „Raspberry Pi“ir „MySQL“duomenų bazę: 5 žingsniai
Pirštų atspaudų ir RFID pagrįsta dalyvavimo sistema naudojant „Raspberry Pi“ir „MySQL“duomenų bazę: šio projekto vaizdo įrašas
Pirštų atspaudų balsavimo internetinė sistema (FVOS): 5 žingsniai
Pirštų atspaudų balsavimo internetinė sistema (FVOS): internetinė pirštų atspaudų balsavimo sistema suteikia rinkėjams galimybę balsuoti visiškai skaitmenizuotai, rinkdama ir patvirtindama jo informaciją nuskaitydama piršto atspaudą per įrenginį ir išsaugodama duomenis serveryje. Jame yra patogi G
Pirštų atspaudų jutiklis su „Arduino“: 5 žingsniai
Pirštų atspaudų jutiklis su „Arduino“: Sveiki, šiame straipsnyje pamatysime, kaip naudoti pirštų atspaudų jutiklį su „Arduino“. Naudodami pirštų atspaudų jutiklį, galite apsaugoti ir užrakinti savo namus, biurą, garažą ir daugelį kitų. Ne tik apie saugumą, bet ir šį modulį galite naudoti ten, kur norite
„Arduino“pirštų atspaudų lankymo sistema su duomenų saugykla debesyje: 8 žingsniai
„Arduino“pirštų atspaudų lankymo sistema su debesies duomenų saugykla: šią ir kitas nuostabias pamokas galite perskaityti oficialioje „ElectroPeak“svetainėje. Šioje pamokoje mes padarysime