Talaan ng mga Nilalaman:
- Hakbang 1: Kinakailangan ang Mga Bahagi upang Bumuo ng Biometric Voting Machine
- Hakbang 2: Circuit Diagram para sa Biometric Voting Machine Gamit ang Arduino
- Hakbang 3: Source Code at Hakbang sa Hakbang sa Pagpapaliwanag ng Code
- Hakbang 4: Pagsubok sa Fingerprint Voting System Gamit ang Arduino
Video: Fingerprint Batay sa Biometric Voting Machine Gamit ang Arduino: 4 na Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Alam nating lahat ang mayroon nang electronic voting machine kung saan kailangang pindutin ng gumagamit ang isang pindutan upang iboto ang boto. Ngunit ang mga makina na ito ay pinintasan para sa pag-ulo mula pa noong una. Kaya't pinaplano ng gobyerno na ipakilala ang isang voting machine na nakabatay sa fingerprint kung saan maaaring iboto ng mga gumagamit batay sa kanyang impression sa fingerprint. Hindi lamang aalisin ng sistemang ito ang posibilidad ng mga duplicate na boto ngunit pipigilan din ang anumang uri ng pagmamanipula.
Kaya sa proyektong ito, magtatayo kami ng isang prototype ng isang Biometric voting machine gamit ang Arduino Uno, display TFT, at Fingerprint Sensor. Ginamit namin dati ang R305 Fingerprint Sensor sa NodeMCU upang bumuo ng isang Biometric based Attendance System ngunit dito ay gagamitin namin ang advanced na sensor ng fingerprint ng GT-511C3 kasama si Arduino.
Hakbang 1: Kinakailangan ang Mga Bahagi upang Bumuo ng Biometric Voting Machine
- Arduino Uno
- 2.4 "TFT LCD Display Shield
- GT-511C3 Fingerprint Sensor
Ang 2.4 inch TFT display na ito ay dating ginamit kasama ng Arduino upang maitayo ang IoT Base Restaurant Menu Ordering System.
Hakbang 2: Circuit Diagram para sa Biometric Voting Machine Gamit ang Arduino
Ang Circuit Diagram para sa proyektong ito ay napaka-simple dahil kumokonekta lamang kami sa TFT display at module ng sensor ng fingerprint sa Arduino Uno. Ang mga VCC at GND na pin ng fingerprint sensor ay konektado sa 5V at GND na pin ng Arduino habang ang mga pin ng TX at RX ay konektado sa digital pin 11 & 12 ng Arduino Uno.
Ang 2.4 TFT LCD screen ay isang Arduino Shield at maaaring direktang mai-mount sa Arduino Uno, tulad ng ipinakita sa imaheng nasa ibaba. Ang display ng TFT ay may 28 pin na perpektong akma sa Arduino Uno, kaya kinailangan kong panghinang ang sensor ng fingerprint sa likuran ng Arduino.
Hakbang 3: Source Code at Hakbang sa Hakbang sa Pagpapaliwanag ng Code
Ang kumpletong code para sa Fingerprint Voting System Project na ito na gumagamit ng Arduino ay ibinigay sa dulo ng artikulo; dito namin ipinapaliwanag ang ilang mahahalagang pag-andar ng code.
Gumagamit ang code ng mga aklatan ng SPFD5408, Serial ng Software, at FPS_GT511C3. Ang SPFD5408 library ay ang binagong bersyon ng orihinal na Adafruit Library. Maaaring mai-download ang mga file ng library mula sa mga link na ibinigay sa ibaba:
- SPFD5408 Library
- Serial ng Software
- FPS_GT511C3
Matapos isama ang mga aklatan at tukuyin ang ilang mahahalagang parameter, makakapasok tayo sa bahagi ng programa. Mayroong tatlong mga seksyon na kasangkot sa program na ito. Ang isa ay lumilikha ng isang UI ng isang voting machine, pangalawa ay ang pagkuha ng mga touch-point para sa mga pindutan at pagtuklas ng mga pindutan batay sa ugnayan at sa wakas ay kinakalkula ang mga resulta at i-save ang mga ito sa memorya ng Arduino.
1. Lumilikha ng UI:
Lumikha ako ng isang simpleng UI na may tatlong mga pindutan at ang pangalan ng proyekto. Pinapayagan ka ng TFT display library na gumuhit ng mga Linya, Parihaba, Bilog, Chars, Strings at marami pang ibang ginustong kulay at laki. Narito ang dalawang mga hugis-parihaba na mga pindutan ay nilikha gamit ang mga function ng fillRoundRect at drawRoundRect. Ang Syntax para sa tft.drawRoundRect function ay ibinibigay sa ibaba:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Kung saan:
x0 = X co-ordinate ng panimulang punto ng hugis-parihaba
y0 = Y coordinate ng panimulang punto ng parihaba
w = Lapad ng parihaba
h = Taas ng Parihabang
radius = Radius ng bilog na sulok
kulay = Kulay ng Rect.
walang bisa drawHome ()
{
tft.fillScreen (PUTI);
tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // Hangganan ng pahina
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, WHITE); // Vote
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, WHITE); // Mag-enrol
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Resulta
tft.drawRoundRect (10, 250, 220, 50, 8, WHITE);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Pagboto");
tft.setCursor (57, 29);
tft.print ("Machine");
tft.setTextSize (3);
tft.setTextColor (PUTI);
tft.setCursor (25, 82);
tft.print ("Kandidato 1");
tft.setCursor (25, 172);
tft.print ("Kandidato 2");
tft.setCursor (25, 262);
tft.print ("Kandidato 3");
}
2. Pagkuha ng mga Touch-Point at Pagtuklas ng Mga Pindutan:
Ngayon sa pangalawang seksyon ng code, matutukoy namin ang mga touchpoint ng pindutan at pagkatapos ay gamitin ang mga puntong ito upang hulaan ang pindutan. Ginagamit ang pagpapaandar na ts.getPoint () upang makita ang ugnay ng gumagamit sa display na TFT. ts.getPoint ay nagbibigay ng mga halagang Raw ADC para sa hinawakan na lugar. Ang mga halagang RAW ADC na ito ay nai-convert sa Pixel Coordinates gamit ang pagpapaandar ng mapa.
TSPoint p = ts.getPoint ();
kung (p.z> ts.pressureThreshhold)
{
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);
Ngayon, dahil alam namin ang koordinasyon ng X at Y para sa bawat pindutan, mahuhulaan natin kung saan hinawakan ng gumagamit ang paggamit ng pahayag na 'kung'.
kung (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidato 1");
Kapag pinindot ng isang botante ang pindutan ng kandidato, hihilingin sa kanya na i-scan ang daliri sa sensor ng fingerprint. Kung pinahintulutan ang daliri ng ID pagkatapos ay pinapayagan ang botante na bumoto. Kung ang sinumang gumagamit na Hindi nakarehistro ay nais na bumoto kung gayon ang module ng fingerprint ay hindi makakakita ng ID nito sa system at ipapakita ang display na 'Paumanhin Hindi ka Maaaring Bumoto'.
kung (fps. IsPressFinger ())
{
fps. CaptureFinger (false);
int id = fps. Identify1_N ();
kung (id <200)
{
msg = "Kandidato 1";
vote1 ++;
EEPROM.write (0, vote1);
tft.setCursor (42, 170);
tft.print ("Salamat");
pagkaantala (3000);
drawHome ();
3. Resulta:
Ang huling hakbang ay ang pagkuha ng bilang ng boto mula sa memorya ng EEPROM at paghahambing ng mga boto ng lahat ng tatlong mga kandidato. Ang isang Kandidato na may pinakamataas na boto ay nanalo. Ang resulta ay maa-access lamang mula sa serial monitor at hindi ipapakita sa TFT screen.
vote1 = EEPROM.read (0);
vote2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
kung (bumoto)
{
kung ((vote1> vote2 && vote1> vote3))
{
Serial.print ("Can1 Wins");
pagkaantala (2000);
}
Hakbang 4: Pagsubok sa Fingerprint Voting System Gamit ang Arduino
Upang subukan ang proyekto, ikonekta ang Arduino Uno sa laptop at i-upload ang ibinigay na code. Kapag na-upload na ang code, dapat ipakita ng display na TFT ang pangalan ng kandidato. Kapag may nag-tap sa isang pangalan ng kandidato, hihilingin ng makina na i-scan ang scanner ng fingerprint. Kung wasto ang fingerprint, mabibilang ang boto ng gumagamit, ngunit kung sakali, hindi tumutugma ang pattern sa mga talaan ng database, tatanggihan ang pag-access sa pagboto. Ang kabuuang bilang ng mga boto para sa bawat kandidato ay itatago sa EEPROM at ang isang kandidato na mayroong pinakamataas na bilang ng mga boto ay mananalo.
Inaasahan kong nasiyahan ka sa tutorial at natutunan ang isang bagay na kapaki-pakinabang. Kung mayroon kang anumang mga query, mangyaring ipaalam sa amin sa seksyon ng komento sa ibaba, at sundin din kami sa Masusukat para sa mas maraming kagiliw-giliw na mga proyekto.
Inirerekumendang:
Pamamahala ng Tanim na Batay sa Batay sa Solar Na May ESP32: 7 Mga Hakbang (na may Mga Larawan)
Pamamahala ng Tanim na Batay sa Batay ng Solar Sa ESP32: Ang paglaki ng mga halaman ay masaya at pagtutubig at pag-aalaga sa kanila ay hindi talaga isang abala. Ang mga aplikasyon ng Microcontroller upang subaybayan ang kanilang kalusugan ay nasa buong internet at ang inspirasyon para sa kanilang disenyo ay nagmula sa static na katangian ng halaman at ang kadalian ng moni
Batay sa Arduino Humanoid Robot Gamit ang Mga Servo Motors: 7 Mga Hakbang (na may Mga Larawan)
Batay sa Arduino Humanoid Robot Paggamit ng Servo Motors: Kamusta sa lahat, Ito ang aking unang robot na humanoid, na ginawa ng sheet ng foam ng PVC. Magagamit ito sa iba't ibang kapal. Dito, gumamit ako ng 0.5mm. Sa ngayon ang robot na ito ay maaaring maglakad lamang kapag ako ay nagbukas. Ngayon ay nagtatrabaho ako sa pagkonekta sa Arduino at Mobile sa pamamagitan ng Bluetooth
Paano Makokontrol ang ESP8266 Batay sa Sonoff Basic na Smart Switch Gamit ang isang Smartphone: 4 na Hakbang (na may Mga Larawan)
Paano Makokontrol ang ESP8266 Batay sa Sonoff Pangunahing Smart Switch Sa Isang Smartphone: Ang Sonoff ay isang linya ng aparato para sa Smart Home na binuo ng ITEAD. Ang isa sa mga pinaka-nababaluktot at murang mga aparato mula sa linyang iyon ay Sonoff Basic. Ito ay isang switch na pinagana ng Wi-Fi batay sa isang mahusay na maliit na tilad, ESP8266. Inilalarawan ng artikulong ito kung paano i-set up ang Cl
Batay sa Autonomous na Batay ng Arduino Gamit ang Ultrasonic Sensor: 5 Mga Hakbang (na may Mga Larawan)
Batay ng Autonomous na Batay ng Arduino Paggamit ng Ultrasonic Sensor: Lumikha ng iyong sariling Arduino based Autonomous Bot gamit ang Ultrasonic Sensor. Ang bot na ito ay maaaring lumipat sa sarili nitong walang pag-crash ng anumang mga hadlang. Karaniwan kung ano ang ginagawa nito ay nakita nito ang anumang uri ng mga hadlang sa paraan nito at nagpapasya ang pinakamahusay na pa
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c