- Mga Kinakailangan na Bahagi:
- Module ng Sensor ng Finger Print sa Voting Machine:
- Paggawa ng Paliwanag:
- Paliwanag sa Circuit:
- Paliwanag ng Programa:
Tayong lahat ay pamilyar sa mga Electronic Voting Machine, kung saan ang iyong boto ay nakarehistro sa elektronikong paraan at hindi mo kailangang gumamit ng ballot paper upang bumoto sa halalan. Ngayon ang seguridad ay isang pangunahing alalahanin at kailangan ding tiyakin na ang isang tao ay hindi maaaring bumoto nang dalawang beses, kaya ang problemang ito ay malulutas sa pamamagitan ng pagpapakilala sa Finger Print Batay sa Pagboto, kung saan ang isang tao ay maaaring pahintulutan batay sa kanyang daliri na Pag-print. Ititigil din nito ang pekeng pagboto. Kaya't ngayon ay nagtatayo kami ng FingerPrint Batay Biometric Voting Machine gamit ang Arduino.
Suriin din ang aming nakaraang Mga Elektronikong Mga Proyekto ng Makina ng Pagboto na gumagamit ng iba't ibang mga Microcontroller:
- Electronic Voting Machine gamit ang Raspberry Pi
- Makina na Batay sa Pagboto ng RFID
- Proyekto ng Elektronikong Batong Elektronikong Bumoto ng AVR na Batay sa AVR
- Electronic Voting Machine gamit ang Arduino
Mga Kinakailangan na Bahagi:
- Arduino Uno
- Module ng Sensor ng Finger Print
- Mga Push Button
- Mga LED -2
- 1K Resistor -3
- 2.2K risistor
- Lakas
- Mga kumokonekta na mga wire
- Buzzer
- 16x2 LCD
- Lupon ng Tinapay
Module ng Sensor ng Finger Print sa Voting Machine:
Ang Finger Print Sensor Module o Finger Print Scanner ay isang module na kinukuha ang imahe ng pag-print ng daliri at pagkatapos ay i-convert ito sa katumbas na template at nai-save ang mga ito sa memorya nito sa napiling ID (lokasyon) ni Arduino. Narito ang lahat ng proseso ay iniutos ng Arduino tulad ng pagkuha ng isang imahe ng pag-print ng daliri, i-convert ito sa mga template at pag-iimbak ng lokasyon atbp.
Sa FingerPrint Voting Machine Circuit na ito, ginamit namin ang Finger Print Sensor Module upang patunayan ang totoong botante sa pamamagitan ng pagkuha ng input ng kanilang daliri sa system. Narito ginagamit namin ang 5 mga pindutan ng push upang Tumugma, Magpatala / bumalik, Tanggalin / OK, UP at Pababa. Ang pagpapatala at ang Del key ay mayroong dobleng tampok dito. Ginagamit ang enrol key para sa pag-enrol ng bagong impression sa daliri sa system at pagpapaandar din sa likod. Nangangahulugan kung nais ng gumagamit na magpatala ng bagong daliri kung gayon kailangan niyang pindutin ang enrol ng enrol pagkatapos ay hihilingin ng LCD ang ID o Lokasyon kung saan nais iimbak ng gumagamit ang output ng pag-print ng daliri. Ngayon kung sa oras na ito ang gumagamit ay hindi nais na magpatuloy nang higit pa pagkatapos ay maaari niyang pindutin muli ang key ng pagpapatala upang bumalik (sa oras na ito ang key sa pag-enrol ay kumilos bilang Back key). Ang ibig sabihin ng key sa pag-enrol ay may parehong pagpapatala at pagpapaandar sa likod. DEL / OK key mayroon ding parehong dobleng pag-andar tulad ng kapag nagpatala ng bagong daliri ang gumagamit kung gayon kailangan niyang pumili ng daliri ng ID o Lokasyon sa pamamagitan ng paggamit ng isa pang dalawang susi na UP AT HINDI ngayon ay kailangang pindutin ng gumagamit ang DEL / OK key (sa oras na ito ang key na ito ay kumilos tulad ng OK) magpatuloy sa napiling ID o Lokasyon. Ginagamit ang match key para sa tuwing nais ng botante na bumoto kung gayon kailangan niyang patunayan muna para sa totoong botante sa pamamagitan ng pagpatuloy ng daliri sa Finger Print Sensor, kung pumasa siya sa pagpapatotoo na ito pagkatapos ay makakaboto siya.
Upang matuto nang higit pa tungkol sa pag-enrol ng mga print ng daliri at iba pang mga bagay, suriin ang aming nakaraang tutorial sa pag-interfaces ng Finger Print Sensor sa Arduino, at suriin din ang aming Demo Video sa pagtatapos ng tutorial na ito.
Paggawa ng Paliwanag:
Paggawa ng Biometric Voting System na ito para sa Halalan ay isang maliit na bit kumplikado para sa mga nagsisimula. Una sa lahat, kailangan ng gumagamit na magpatala ng daliri o mga botante (sa code na maximum na limitasyon ng botante ay 25) sa tulong ng mga push button / key. Upang magawa ang gumagamit na ito ay kailangang pindutin ang ENROLL key at pagkatapos ay hihilingin ng LCD ang pagpasok sa lokasyon / ID kung saan ang isang daliri ay magiging isang tindahan. Kaya't kailangan ng gumagamit na magpasok ng ID (Lokasyon) sa pamamagitan ng paggamit ng mga UP / Down key. Matapos piliin ang Lokasyon / ID ay kailangang pindutin ng gumagamit ang isang OK key (DEL key). Ngayon hihilingin ng LCD ang paglalagay ng daliri sa module ng pag-print ng daliri. Ngayon ay kailangang ilagay ng gumagamit ang kanyang daliri sa module ng pag-print ng daliri. Pagkatapos hihilingin ng LCD na alisin ang daliri mula sa module ng pag-print ng daliri at muling hilingin para sa paglalagay ng daliri. Ngayon ay kailangang ilagay muli ng gumagamit ang kanyang daliri sa module ng pag-print ng daliri. Ngayon ang module ng pag-print ng daliri ay tumatagal ng isang imahe at ginawang ito sa mga template at iniimbak ito sa pamamagitan ng napiling ID sa memorya ng module ng daliri ng pag-print.Ngayon ay magpaparehistro ang botante at siya ay maaaring bumoto. Sa pamamagitan ng parehong pamamaraan ang lahat ng botante ay maaaring nakarehistro sa system.
Ngayon kung nais ng gumagamit na alisin o tanggalin ang alinman sa nakaimbak na ID kung gayon kailangan niyang pindutin ang DEL key, pagkatapos ng pagpindot sa pindutan ng DEL, hihilingin ng LCD ang napiling lokasyon ay nangangahulugang piliin ang ID na tatanggalin. Ngayon ang gumagamit ay kailangang pumili ng ID at pindutin ang OK key (parehong pindutan ng DEL). Ngayon ipaalam sa iyo ng LCD na ang daliri ay matagumpay na na-delete.
Proseso ng Pagboto:
Ngayon kapag ang gumagamit ay nais na bumoto pagkatapos ay kailangan niyang pindutin ang key ng tugma at pagkatapos ay ang buzzer ay beep at ang LED ay mamula-mula din at hihilingin ng LCD ang module ng finger finger. Ngayon ay bibigyan ka ng Arduino ng tatlong pagtatangka upang mailagay ang iyong daliri. Matapos ang paglalagay ng isang daliri sa module ng fingerprint module na fingerprint kinukuha ang imahe ng daliri hanapin ang mga ID nito ay naroroon sa system. Kung nakita ang daliri ng ID pagkatapos ay ipapakita ng LCD ang awtorisadong Botante. Nangangahulugan ito na ang gumagamit ay pinahintulutan na bumoto. At pagkatapos ay lilipat ang system sa susunod na yugto para sa pagboto. Ngayon ang berde ng LED ng LED nangangahulugan ito ngayon na ang botante ay maaaring bumoto para sa kanilang mga kandidato sa pamamagitan ng pagpindot sa isang relected key (mula sa RED bread board sa demonstrasyong ito). Ngayon kung ang parehong botante ay nais na bumoto muli pagkatapos ay ipapakita ito ng system na 'Naboto na' . Ibig sabihin hindi maaaring bumoto muli ang parehong botante at ang buzzer ay magbubunyi ng 5 segundo. Kung ang sinumang gumagamit na Hindi nakarehistro ay nais na bumoto kung gayon ang module ng pag-print ng daliri ay hindi makakakita ng ID nito sa system at ipapakita ng LCD na ' Walang Nahanap na Fingerprint' .
Ang CAN1, CAN2, CAN3 dito ay kumakatawan sa Kandidato 1, Kandidato 2 at Kandidato 3, na tumayo sa halalan.
Paliwanag sa Circuit:
Ang circuit ng Project ng Voting Machine na Batay sa FingerPrint na ito ay napaka-simple na naglalaman ng Arduino para sa pagkontrol ng buong proseso ng proyekto, pindutan ng push para sa pagpapatala, pagtanggal, pagpili ng mga ID at layunin ng pagboto, isang buzzer para sa alerto, mga LEDs para sa indikasyon at 16x2 LCD para magturo Botante at ipinapakita rin ang resulta. Ipinapahiwatig ng Yellow LED na ang module ng fingerprint ay handa na kumuha ng isang imahe ng daliri at ipinahiwatig ng Green LED na ang system ay handa nang kumuha ng isang boto o makita ang mga resulta.
Ang push button ay direktang konektado sa pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (Down) at A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Resulta) ng Arduino na may paggalang sa lupa. Ang Yellow LED ay konektado sa Digital pin D7 ng Arduino na patungkol sa lupa sa pamamagitan ng isang 1k risistor at ang Green LED ay konektado sa D6 ng Arduino na may parehong pamamaraan. Ang Rx at Tx module ng fingerprint na direktang konektado sa Serial pin Tx at Rx ng Arduino. Ginagamit ang 5v supply para sa powering module ng pag-print ng daliri na kinuha mula sa Arduino board. Ang isang buzzer ay konektado din sa A5. Ang isang 16x2 LCD ay naka-configure sa 4-bit mode at ang RS, EN, D4, D5, D6, at D7 ay direktang konektado sa Digital pin D13, D12, D11, D10, D9, at D8 ng Arduino.
Paliwanag ng Programa:
Sa isang programa, ginamit namin ang Adafruit Fingerprint Sensor Library para sa interfacing module ng fingerprint sa Arduino board. Maaari mong suriin ang kumpletong Code sa ibaba. Narito ipinapaliwanag namin ang mga pangunahing pag-andar ng Arduino Program.
Sa pag-andar ng pag-setup, nagbigay kami ng mga direksyon sa tinukoy na mga pin at pinasimulan ang LCD at Fingerprint module.
Pagkatapos nito, sa void loop () na pagpapaandar, naghintay kami para sa check key at pindutin ang Match key upang simulan ang pag-print ng daliri upang kumuha ng input at ihambing ang nakunan ng id ng imahe sa mga nakaimbak na mga ID. Kung nangyari ang isang tugma magpatuloy sa susunod na hakbang.
void loop () {lcd.setCursor (0,0); lcd.print ("Press Match Key"); lcd.setCursor (0,1); lcd.print ("upang simulan ang system"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); kung (digitalRead (match) == 0) {digitalWrite (buzzer, HIGH); pagkaantala (200); digitalWrite (buzzer, LOW); digitalWrite (indFinger, HIGH); para sa (int i = 0; i <3; i ++)…………………
Dahil sa walang bisa na checkKeys () na function ay ginagamit para sa pag-check sa Enrol o ang Del key ay pinindot o hindi at kung ano ang gagawin kung pinindot. Kung ang ENROLL key ay pinindot ang pagpapa - enroll () na function ay tinawag at ang DEL key pindutin pagkatapos ay tanggalin ang () function ay tinatawag.
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("Mangyaring Maghintay"); pagkaantala (1000); habang (digitalRead (magpatala) == 0); Mag-enrol (); } iba pa kung (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Mangyaring Maghintay"); pagkaantala (1000); burahin (); }}
Ginagamit ang pagpapaandar na function para sa pagpasok ng ID na tatanggalin at pagtawag sa uint8_t deleteFingerprint (uint8_t id) na function na tatanggalin ang daliri mula sa mga talaan.
void delet () {int count = 0; lcd.clear (); lcd.print ("Tanggalin ang Daliri"); lcd.setCursor (0,1); lcd.print ("Lokasyon:"); habang (1) {lcd.setCursor (9,1); lcd.print (count); kung (digitalRead (pataas) == 0) {count ++; kung (bilangin> 25) bilang = 0; pagkaantala (500); }……………….
Ginagamit ang pagpapaandar na function para sa pagtanggal ng pag-print ng daliri mula sa tala ng napiling ID.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Mangyaring maghintay"); p = daliri.deleteModel (id); kung (p == FINGERPRINT_OK) {Serial.println ("Tinanggal!"); lcd.clear (); lcd.print ("Tinanggal ang Figer"); lcd.setCursor (0,1); lcd.print ("Matagumpay"); pagkaantala (1000); } iba pa {Serial.print ("Something Wrong"); lcd.clear (); lcd.print ("Maling Bagay"); lcd.setCursor (0,1); lcd.print ("Subukang Muli"); pagkaantala (2000); ibalik p; }}
Ang Ginagamit na Pag-andar ay ginagamit upang kumuha ng imahe ng pag-print ng daliri at i-convert ang mga ito sa template at i-save ito sa pamamagitan ng napiling ID sa memorya ng module ng daliri ng pag-print.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("daliri ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Place Finger"); pagkaantala (2000); habang (p! = FINGERPRINT_OK) {p = daliri.getImage ();…………………
Ginagamit ang pagpapaandar na pag-andar para sa mga resulta sa Pagboto at pagpapakita:
walang bisa ang Pagboto () {lcd.clear (); lcd.print ("Mangyaring Ilagay"); lcd.setCursor (0,1); lcd.print ("Iyong Pagboto"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (buzzer, TAAS); pagkaantala (500); digitalWrite (buzzer, LOW); pagkaantala (1000); habang (1) {kung (digitalRead (sw1) == 0)…………………
Suriin ang Buong Code at pagpapakita ng Video sa ibaba.