- Mga Kinakailangan na Bahagi
- Paglalarawan ng Proyekto:
- Module ng FingerPrint:
- Paggawa ng Fingerprint Batay sa Attendance System
- Circuit Diagram at Paglalarawan para sa Fingerprint Attendance System Project
- Paliwanag sa Code:
Ang mga sistema ng pagdalo ay karaniwang ginagamit na mga system upang markahan ang pagkakaroon sa mga tanggapan at paaralan. Mula sa manu-manong pagmamarka ng pagdalo ng mga rehistro ng pagdalo hanggang sa paggamit ng mga high-tech na application at biometric system, ang mga sistemang ito ay napabuti nang malaki. Sa aming mga nakaraang proyekto, nasasakop namin ang ilang iba pang mga proyekto sa elektronikong sistema ng pagdalo gamit ang RFID at AVR microcontroller, 8051 at raspberry Pi. Sa proyektong ito, ginamit namin ang fingerprint Module at Arduino upang kunin at mapanatili ang data at mga tala ng pagdalo. Sa pamamagitan ng paggamit ng fingerprint sensor, ang system ay magiging mas ligtas para sa mga gumagamit. Ang mga sumusunod na seksyon ay nagpapaliwanag ng mga teknikal na detalye ng paggawa ng isang daliri batay sa biometric na sistema ng pagdalo gamit ang Arduino.
Mga Kinakailangan na Bahagi
- Arduino -1
- Module ng print ng daliri -1
- Pindutan ng Push - 4
- Mga LED -1
- 1K Resistor -2
- 2.2K risistor -1
- Lakas
- Mga kumokonekta na mga wire
- Kahon
- Buzzer -1
- 16x2 LCD -1
- Lupon ng Tinapay -1
- RTC Modyul -1
Paglalarawan ng Proyekto:
Sa circuit ng system ng pagdalo ng fingerprint na ito, ginamit namin ang module ng Fingerprint Sensorupang mapatunayan ang isang tunay na tao o empleyado sa pamamagitan ng pagkuha ng kanilang daliri sa system. Narito ginagamit namin ang 4 na mga pindutan ng push upang magpatala, Tanggalin, UP / Down. Ang ENROLL at DEL key ay may tatlong tampok. Ginamit ang ENROLL key para sa pagpapatala ng isang bagong tao sa system. Kaya't kapag nais ng gumagamit na magpatala ng bagong daliri kung gayon kailangan niyang pindutin ang ENROLL key pagkatapos ay hihilingin ng LCD ang ID, kung saan nais iimbak ng gumagamit ang imahe ng pag-print ng daliri. Ngayon kung sa oras na ito ang gumagamit ay hindi nais na magpatuloy sa karagdagang pagkatapos ay maaari niyang pindutin muli ang ENROLL key upang bumalik. Sa oras na ito ang ENROLL key ay kumilos bilang Back key, ie ENROLL key ay may parehong pagpapatala at pagpapaandar sa likod. Bukod sa pag-enrol key ay ginagamit din upang mag-download ng data ng pagdalo sa serial monitor. Katulad nito, ang DEL / OK key ay mayroon ding parehong dobleng pag-andar tulad ng kapag nagpatala ng bagong daliri ang gumagamit,pagkatapos ay kailangan niyang pumili ng daliri ng ID sa pamamagitan ng paggamit ng isa pang dalawang key na UP at Down. Ngayon ang gumagamit ay kailangang pindutin ang DEL / OK key (oras na ito ang key na ito ay kumilos tulad ng OK) upang magpatuloy sa napiling ID. At ang Del key ay ginagamit para i-reset o tanggalin ang data mula sa EEPROM ng Arduino.
Module ng FingerPrint:
Kinukuha ng module ng sensor ng daliri ang naka-print na imahe ng daliri at pagkatapos ay i-convert ito sa katumbas na template at nai-save ang mga ito sa memorya nito ayon sa bawat napiling ID ni Arduino. 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 bilang ID atbp. Maaari mong suriin ang ilang higit pang mga proyekto gamit ang module ng fingerprint:
Sistema ng seguridad batay sa daliri
Batay sa fingerprint biometric voting machine
Dito naidagdag namin ang isang Yellow LED na nagsasaad na ang module ng fingerprint ay handa nang kumuha ng isang imahe ng daliri. Ginagamit din ang isang buzzer para sa iba't ibang mga indikasyon. Ang Arduino ay ang pangunahing bahagi ng sistemang ito responsable para sa kontrol ng buong system.
Paggawa ng Fingerprint Batay sa Attendance System
Paggawa ng proyekto ng system ng pagdalo ng fingerprint na itoay medyo simple. Una sa lahat, kailangang magpatala ang gumagamit ng mga fingerprint ng gumagamit sa tulong ng mga push button. Upang magawa ito, kailangang pindutin ng gumagamit ang ENROLL key at pagkatapos ay hihilingin ng LCD ang pagpasok ng ID para sa fingerprint upang mai-save ito sa memorya ng pangalan ng ID. Kaya't kailangan ng gumagamit na magpasok ng ID sa pamamagitan ng paggamit ng mga UP / Down key. Matapos piliin ang ID, kailangang pindutin ng gumagamit ang OK key (pindutan ng DEL). Hilingin ngayon ng LCD na ilagay ang daliri sa module ng fingerprint. Ngayon ay kailangang ilagay ng gumagamit ang kanyang daliri sa module ng pag-print ng daliri at pagkatapos ang module ay tumatagal ng imahe ng daliri. Ngayon sasabihin ng LCD na alisin ang daliri mula sa module ng fingerprint, at muling hilinging ilagay muli ang daliri. Ngayon ang gumagamit ay kailangang ilagay muli ang kanyang daliri at ang module ay kukuha ng isang imahe at i-convert ito sa mga template at iimbak ito sa pamamagitan ng napiling ID sa memorya ng module ng daliri ng pag-print.Ngayon ang gumagamit ay nakarehistro at maaari niyang pakainin ang pagdalo sa pamamagitan ng paglalagay ng kanilang daliri sa module ng fingerprint. Sa parehong pamamaraan, ang lahat ng mga gumagamit ay nakarehistro sa system.
Ngayon kung nais ng gumagamit na alisin o tanggalin ang alinman sa nakaimbak na ID o fingerprint, kailangan niyang pindutin ang DEL key. Sa sandaling pinindot ang delete key ay hihilingin sa LCD na pumili ng ID na kailangang tanggalin. 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 fingerprint ay matagumpay na na-delete.
Paano gumagana ang Attendance sa Fingerprint Attendance System Project na ito:
Kailan man mailagay ng gumagamit ang kanyang daliri sa module ng fingerprint pagkatapos makukuha ng module ng fingerprint ang imahe ng daliri, at maghanap kung ang anumang ID ay naiugnay sa fingerprint na ito sa system. Kung nakita ang fingerprint ID pagkatapos ay ipapakita ng LCD ang rehistro ng Attendance at sa parehong oras ay tutunog ang buzzer nang isang beses at papatayin ang LED hanggang handa ang system na muling kumuha ng input.
Kasama ang module ng fingerprint, gumamit din kami ng module ng RTC para sa Oras at petsa. Patuloy na tumatakbo ang oras at petsa sa system. Kaya't ang Arduino ay tumatagal ng oras at petsa tuwing inilalagay ng isang tunay na gumagamit ang kanyang daliri sa paglipas ng fingerprint at nai-save ang mga ito sa EEPROM sa inilaang puwang ng memorya.
Dito nilikha namin ang 5 puwang ng gumagamit sa sistemang ito sa loob ng 30 araw. Sa pamamagitan ng pagpindot sa pindutang I-RESET sa Arduino at pagkatapos ay agad na mag-enrol key ay mananagot para sa pag-download ng data ng pagdalo sa serial monitor mula sa Arduino EEPROM Memory.
Pamamahala ng kaisipan:
Mayroon kaming 1023 byte memory sa Arduino UNO kung saan mayroon kaming 1018 byte upang mag-imbak ng data at kumuha kami ng 5 data ng pagdalo ng gumagamit sa loob ng 30 araw. At ang bawat pagdalo ay magtatala ng oras at petsa kaya't ito ay nagiging 7-byte data.
Kaya't ang kabuuang memorya na kinakailangan ay
5 * 30 * 7 = 1050 kaya dito kailangan natin ng higit pang 32 bytes
Ngunit kung gagamit kami ng 4 na mga gumagamit kung gayon kinakailangan namin
4 * 30 * 7 = 840
Dito nagawa namin ang demonstrasyong ito ng proyekto sa pamamagitan ng pagkuha ng memorya ng 5 mga gumagamit. Sa pamamagitan nito, hindi namin maiimbak ang 32 byte o 5 tala ng pagdalo ng ika- 5 gumagamit.
Maaari mong subukan ito ng 4 na mga gumagamit sa pamamagitan ng pagbabago ng ilang mga linya sa code. Ginawa ko ang mga komento sa code kung saan kinakailangan ang mga pagbabago.
Circuit Diagram at Paglalarawan para sa Fingerprint Attendance System Project
Ang circuit ng proyekto ng sistema ng pagdalo na batay sa daliri ng daliri, tulad ng ipinakita sa diagram sa itaas ay medyo simple. Mayroon itong Arduino para sa pagkontrol sa lahat ng proseso ng proyekto, pindutan ng push para sa pagpapatala, pagtanggal, pagpili ng mga ID at para sa pagdalo, isang buzzer para sa pag-alerto, mga LED para sa pahiwatig at LCD upang turuan ang gumagamit at ipakita ang mga resulta ng mensahe.
Tulad ng ipinakita sa circuit diagram, ang isang pindutan ng push ay direktang konektado sa pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (PABABA) ng Arduino patungkol sa lupa At ang Yellow LED ay konektado sa Digital pin D7 ng Arduino na may paggalang sa lupa sa pamamagitan ng isang 1k risistor. Ang Rx at Tx module ng fingerprint na direktang konektado sa Serial pin D2 at D3 (Software Serial) 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 pin 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 sa Code:
Ang code ng system ng pagdalo ng fingerprint para sa arduino ay ibinibigay sa mga kasunod na seksyon. Kahit na ang code ay ipinaliwanag nang maayos sa mga komento, tinatalakay namin dito ang ilang mahahalagang bahagi ng code. Gumamit kami ng library ng fingerprint para sa interface ng pag-print ng daliri sa Arduino board.
Una sa lahat, isinasama namin ang file ng header at tinutukoy ang input at output pin at tukuyin ang mga macro at idineklarang variable. Pagkatapos nito, sa pag-andar ng pag-setup, nagbibigay kami ng direksyon sa tinukoy na pin at simulan ang LCD at module ng pag-print ng daliri
Pagkatapos nito, kailangan naming magsulat ng code para sa pag-download ng data ng pagdalo.
walang bisa ang pag-setup () {pagkaantala (1000); lcd.begin (16,2); Serial.begin (9600); pinMode (magpatala, INPUT_PullUP); pinMode (pataas, INPUT_PULLUP); pinMode (pababa, INPUT_PULLUP); pinMode (del, INPUT_PULLUP); pinMode (tugma, INPUT_PULLUP); pinMode (buzzer, OUTPUT); pinMode (indFinger, OUTPUT); digitalWrite (buzzer, LOW); kung (digitalRead (magpatala) == 0) {digitalWrite (buzzer, HIGH); pagkaantala (500); digitalWrite (buzzer, LOW); lcd.clear (); lcd.print ("Mangyaring maghintay"); lcd.setCursor (0,1); lcd.print ("Downloding Data");
Pagkatapos nito, kailangan naming magsulat ng code para sa pag-clear ng data ng pagdalo mula sa EEPROM.
kung (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Mangyaring Maghintay"); lcd.setCursor (0,1); lcd.print ("Nire-reset….."); para sa (int i = 1000; i <1005; i ++) EEPROM.write (i, 0); para sa (int i = 0; i <841; i ++) EEPROM.write (i, 0xff); lcd.clear (); lcd.print ("System Reset"); pagkaantala (1000); }
Pagkatapos nito, pinasimulan namin ang module ng pag-print ng daliri, ipinapakita ang maligayang mensahe sa paglipas ng LCD at din na initeiated na module ng RTC.
Pagkatapos nito, sa pag-andar ng loop, nabasa namin ang oras ng RTC at ipinakita ito sa LCD
void loop () {now = rtc.now (); lcd.setCursor (0,0); lcd.print ("Oras->"); lcd.print (now.hour (), DEC); lcd.print (':'); lcd.print (now.minute (), DEC); lcd.print (':'); lcd.print (now.second (), DEC); lcd.print (""); lcd.setCursor (0,1); lcd.print ("Petsa->"); lcd.print (now.day (), DEC); lcd.print ('/'); lcd.print (now.month (), DEC); lcd.print ('/'); lcd.print (now.year (), DEC);
Pagkatapos nito, naghihintay para sa pag-print ng daliri upang kumuha ng input at ihambing ang nakunan ng imaheng ID sa mga nakaimbak na ID. Kung nangyayari ang amatch pagkatapos ay magpatuloy sa susunod na hakbang. At ang pagcheck ng mga enroll del key din
int resulta = getFingerprintIDez (); kung (resulta> 0) {digitalWrite (indFinger, LOW); digitalWrite (buzzer, TAAS); pagkaantala (100); digitalWrite (buzzer, LOW); lcd.clear (); lcd.print ("ID:"); lcd.print (resulta); lcd.setCursor (0,1); lcd.print ("Mangyaring Maghintay…."); pagkaantala (1000); pagdalo (resulta); lcd.clear (); lcd.print ("Attendance"); lcd.setCursor (0,1); lcd.print ("Registed"); pagkaantala (1000); digitalWrite (indFinger, HIGH); bumalik; }
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 delet () function ay ginagamit 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.
Ginagamit ang Pag-andar upang makuha ang imahe ng pag-print ng daliri at i-convert ang mga ito sa template at i-save din 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 na pagpapaandar ay ginagamit para sa pagtatago ng oras ng pagdalo at petsa sa inilaang slot ng EEPROM
walang bisa ang pagdalo (int id) {int user = 0, eepLoc = 0; kung (id == 1) {eepLoc = 0; gumagamit = gumagamit1 ++; } iba pa kung (id == 2) {eepLoc = 210; gumagamit = gumagamit2 ++; } iba pa kung (id == 3)………….
Ang ibinigay na pagpapaandar ay ginagamit upang makuha ang data mula sa EEPROM at ipadala sa serial monitor
void download (int eepIndex) {if (EEPROM.read (eepIndex)! = 0xff) {Serial.print ("T->"); kung (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++)); Serial.print (':'); kung (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++));………….