Talaan ng mga Nilalaman:

Fingerprint Batay sa Biometric Voting Machine Gamit ang Arduino: 4 na Hakbang (na may Mga Larawan)
Fingerprint Batay sa Biometric Voting Machine Gamit ang Arduino: 4 na Hakbang (na may Mga Larawan)

Video: Fingerprint Batay sa Biometric Voting Machine Gamit ang Arduino: 4 na Hakbang (na may Mga Larawan)

Video: Fingerprint Batay sa Biometric Voting Machine Gamit ang Arduino: 4 na Hakbang (na may Mga Larawan)
Video: MGA IBA'T IBANG URI O KULAY NG REGLA NA DAPAT MONG MALAMAN#menstration#mgaiba't-ibangkulayngmens 2024, Hulyo
Anonim
Batay sa Fingerprint Biometric Voting Machine Gamit ang Arduino
Batay sa Fingerprint Biometric Voting Machine Gamit ang Arduino

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

Circuit Diagram para sa Biometric Voting Machine Gamit ang Arduino
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: