- అవసరమైన భాగాలు
- ప్రాజెక్ట్ వివరణ:
- ఫింగర్ ప్రింట్ మాడ్యూల్:
- వేలిముద్ర ఆధారిత అటెండెన్స్ సిస్టమ్ యొక్క పని
- ఫింగర్ ప్రింట్ అటెండెన్స్ సిస్టమ్ ప్రాజెక్ట్ కోసం సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
- కోడ్ వివరణ:
హాజరు వ్యవస్థలు సాధారణంగా కార్యాలయాలు మరియు పాఠశాలల్లో ఉనికిని గుర్తించడానికి ఉపయోగించే వ్యవస్థలు. హాజరు రిజిస్టర్లలో హాజరును మానవీయంగా గుర్తించడం నుండి హైటెక్ అనువర్తనాలు మరియు బయోమెట్రిక్ వ్యవస్థలను ఉపయోగించడం వరకు, ఈ వ్యవస్థలు గణనీయంగా మెరుగుపడ్డాయి. మా మునుపటి ప్రాజెక్టులలో, మేము RFID మరియు AVR మైక్రోకంట్రోలర్, 8051 మరియు కోరిందకాయ పై ఉపయోగించి కొన్ని ఇతర ఎలక్ట్రానిక్ హాజరు వ్యవస్థ ప్రాజెక్టులను కవర్ చేసాము. ఈ ప్రాజెక్ట్లో, హాజరు డేటా మరియు రికార్డులను తీసుకోవడానికి మరియు ఉంచడానికి మేము వేలిముద్ర మాడ్యూల్ మరియు ఆర్డునోలను ఉపయోగించాము. వేలిముద్ర సెన్సార్ను ఉపయోగించడం ద్వారా, సిస్టమ్ వినియోగదారులకు మరింత సురక్షితంగా మారుతుంది. ఆర్డునో ఉపయోగించి వేలిముద్ర ఆధారిత బయోమెట్రిక్ హాజరు వ్యవస్థను తయారుచేసే సాంకేతిక వివరాలను క్రింది విభాగాలు వివరిస్తాయి.
అవసరమైన భాగాలు
- ఆర్డునో -1
- ఫింగర్ ప్రింట్ మాడ్యూల్ -1
- పుష్ బటన్ - 4
- LED లు -1
- 1 కె రెసిస్టర్ -2
- 2.2 కె రెసిస్టర్ -1
- శక్తి
- వైర్లను కనెక్ట్ చేస్తోంది
- బాక్స్
- బజర్ -1
- 16x2 LCD -1
- బ్రెడ్ బోర్డు -1
- ఆర్టీసీ మాడ్యూల్ -1
ప్రాజెక్ట్ వివరణ:
ఈ వేలిముద్ర హాజరు సిస్టమ్ సర్క్యూట్లో, మేము వేలిముద్ర సెన్సార్ మాడ్యూల్ను ఉపయోగించామువ్యవస్థలో వేలు ఇన్పుట్ తీసుకొని నిజమైన వ్యక్తి లేదా ఉద్యోగిని ప్రామాణీకరించడానికి. ఇక్కడ మనం నమోదు చేయడానికి, తొలగించడానికి, యుపి / డౌన్ చేయడానికి 4 పుష్ బటన్లను ఉపయోగిస్తున్నాము. ENROLL మరియు DEL కీ ట్రిపుల్ లక్షణాలను కలిగి ఉంది. సిస్టమ్లోకి కొత్త వ్యక్తిని నమోదు చేయడానికి ENROLL కీ ఉపయోగించబడుతుంది. కాబట్టి వినియోగదారు కొత్త వేలిని నమోదు చేయాలనుకున్నప్పుడు అతను / ఆమె ENROLL కీని నొక్కాలి, అప్పుడు LCD ID ని అడుగుతుంది, ఇక్కడ వినియోగదారు వేలి ముద్రణ చిత్రాన్ని నిల్వ చేయాలనుకుంటున్నారు. ఇప్పుడు ఈ సమయంలో వినియోగదారు మరింత ముందుకు వెళ్లకూడదనుకుంటే, అతను / ఆమె తిరిగి వెళ్ళడానికి మళ్ళీ ENROLL కీని నొక్కవచ్చు. ఈసారి ENROLL కీ బ్యాక్ కీ వలె ప్రవర్తిస్తుంది, అనగా ENROLL కీ నమోదు మరియు వెనుక ఫంక్షన్ రెండింటినీ కలిగి ఉంటుంది. సీరియల్ మానిటర్ ద్వారా హాజరు డేటాను డౌన్లోడ్ చేయడానికి నమోదు కీ కూడా ఉపయోగించబడుతుంది. అదేవిధంగా, వినియోగదారు కొత్త వేలిని నమోదు చేసినప్పుడు DEL / OK కీ కూడా అదే డబుల్ ఫంక్షన్ను కలిగి ఉంటుంది,అప్పుడు అతను / ఆమె UP మరియు DOWN అనే మరో రెండు కీని ఉపయోగించి వేలి ID ని ఎంచుకోవాలి. ఎంచుకున్న ID తో కొనసాగడానికి ఇప్పుడు యూజర్ DEL / OK కీని నొక్కాలి (ఈసారి ఈ కీ సరే అనిపిస్తుంది). Arduino యొక్క EEPROM నుండి డేటాను రీసెట్ చేయడానికి లేదా తొలగించడానికి డెల్ కీ ఉపయోగించబడుతుంది.
ఫింగర్ ప్రింట్ మాడ్యూల్:
వేలిముద్ర సెన్సార్ మాడ్యూల్ వేలు యొక్క ముద్రణ చిత్రాన్ని సంగ్రహిస్తుంది మరియు తరువాత దానిని సమానమైన మూసగా మారుస్తుంది మరియు ఆర్డునో ఎంచుకున్న ID ప్రకారం వాటిని దాని మెమరీలో సేవ్ చేస్తుంది. వేలు ముద్రణ యొక్క చిత్రాన్ని తీయడం, టెంప్లేట్లుగా మార్చడం మరియు ID గా నిల్వ చేయడం వంటి అన్ని ప్రక్రియలను ఆర్డునో ఆదేశిస్తారు. మీరు వేలిముద్ర మాడ్యూల్ ఉపయోగించి మరికొన్ని ప్రాజెక్టులను తనిఖీ చేయవచ్చు:
వేలిముద్ర ఆధారిత భద్రతా వ్యవస్థ
వేలిముద్ర ఆధారిత బయోమెట్రిక్ ఓటింగ్ యంత్రం
ఇక్కడ మేము ఎల్లో LED ని జోడించాము, ఇది వేలిముద్ర మాడ్యూల్ వేలు యొక్క చిత్రాన్ని తీయడానికి సిద్ధంగా ఉందని సూచిస్తుంది. వివిధ సూచనలు కోసం బజర్ కూడా ఉపయోగించబడుతుంది. ఈ వ్యవస్థ యొక్క ప్రధాన భాగం ఆర్డునో మొత్తం వ్యవస్థ యొక్క నియంత్రణకు బాధ్యత వహిస్తుంది.
వేలిముద్ర ఆధారిత అటెండెన్స్ సిస్టమ్ యొక్క పని
ఈ వేలిముద్ర హాజరు వ్యవస్థ ప్రాజెక్ట్ యొక్క పనిచాలా సులభం. అన్నింటిలో మొదటిది, వినియోగదారు పుష్ బటన్ల సహాయంతో వినియోగదారు వేలిముద్రలను నమోదు చేయాలి. ఇది చేయుటకు, వినియోగదారు ENROLL కీని నొక్కాలి, ఆపై LCD వేలిముద్ర కొరకు ID ని ఎండి చేయమని అడుగుతుంది. కాబట్టి ఇప్పుడు యూజర్ UP / DOWN కీలను ఉపయోగించి ID ని నమోదు చేయాలి. ID ని ఎంచుకున్న తరువాత, వినియోగదారు సరే కీని (DEL కీ) నొక్కాలి. ఇప్పుడు ఎల్సిడి వేలిముద్ర మాడ్యూల్పై వేలు పెట్టమని అడుగుతుంది. ఇప్పుడు వినియోగదారు తన వేలిని వేలి ముద్రణ మాడ్యూల్పై ఉంచాలి, ఆపై మాడ్యూల్ వేలు చిత్రాన్ని తీసుకుంటుంది. ఇప్పుడు ఎల్సిడి వేలిముద్ర మాడ్యూల్ నుండి వేలిని తొలగించమని చెబుతుంది, మళ్ళీ వేలు పెట్టమని అడుగుతుంది. ఇప్పుడు యూజర్ మళ్ళీ తన వేలు పెట్టాలి మరియు మాడ్యూల్ ఒక చిత్రాన్ని తీసుకొని దానిని టెంప్లేట్లుగా మార్చి ఎంచుకున్న ఐడి ద్వారా ఫింగర్ ప్రింట్ మాడ్యూల్ మెమరీలో నిల్వ చేస్తుంది.ఇప్పుడు వినియోగదారు నమోదు చేయబడతారు మరియు అతను / ఆమె వేలిముద్ర మాడ్యూల్పై వేలు పెట్టడం ద్వారా హాజరును ఇవ్వవచ్చు. అదే పద్ధతి ద్వారా, వినియోగదారులందరూ సిస్టమ్లోకి నమోదు చేయబడతారు.
ఇప్పుడు వినియోగదారు నిల్వ చేసిన ఐడి లేదా వేలిముద్రను తొలగించాలని లేదా తొలగించాలని కోరుకుంటే, అతడు / ఆమె DEL కీని నొక్కాలి. డిలీట్ కీని నొక్కిన తర్వాత ఎల్సిడి తొలగించాల్సిన ఐడిని ఎన్నుకోమని అడుగుతుంది. ఇప్పుడు యూజర్ ఐడిని ఎన్నుకోవాలి మరియు సరే కీని నొక్కాలి (అదే డెల్ కీ). వేలిముద్ర విజయవంతంగా తొలగించబడిందని ఇప్పుడు LCD మీకు తెలియజేస్తుంది.
ఈ వేలిముద్ర అటెండెన్స్ సిస్టమ్ ప్రాజెక్ట్లో హాజరు ఎలా పనిచేస్తుంది:
వినియోగదారు వేలిముద్ర మాడ్యూల్పై వేలు పెట్టినప్పుడల్లా వేలిముద్ర మాడ్యూల్ వేలి చిత్రాన్ని సంగ్రహిస్తుంది మరియు సిస్టమ్లోని ఈ వేలిముద్రతో ఏదైనా ID సంబంధం ఉందా అని శోధించండి. వేలిముద్ర ఐడి కనుగొనబడితే, ఎల్సిడి అటెండెన్స్ రిజిస్టర్ చేయబడిందని చూపిస్తుంది మరియు అదే సమయంలో బజర్ ఒకసారి బీప్ అవుతుంది మరియు సిస్టమ్ మళ్లీ ఇన్పుట్ తీసుకోవడానికి సిద్ధంగా ఉండే వరకు ఎల్ఇడి ఆపివేయబడుతుంది.
వేలిముద్ర మాడ్యూల్తో పాటు, మేము సమయం మరియు తేదీ కోసం RTC మాడ్యూల్ను కూడా ఉపయోగించాము. వ్యవస్థలో సమయం మరియు తేదీ నిరంతరం నడుస్తున్నాయి. కాబట్టి నిజమైన వినియోగదారు వేలిముద్రపై వేలు పెట్టి, కేటాయించిన స్లాట్ వద్ద EEPROM లో సేవ్ చేసినప్పుడల్లా Arduino సమయం మరియు తేదీని తీసుకుంటాడు.
ఇక్కడ మేము ఈ వ్యవస్థలో 5 వినియోగదారు స్థలాన్ని 30 రోజులు సృష్టించాము. Arduino లోని RESET బటన్ను నొక్కడం ద్వారా Arduino EEPROM మెమరీ నుండి సీరియల్ మానిటర్ ద్వారా హాజరు డేటాను డౌన్లోడ్ చేయడానికి వెంటనే నమోదు కీ బాధ్యత వహిస్తుంది.
మెమరీ నిర్వహణ:
Arduino UNO లో మనకు 1023 బైట్ మెమరీ ఉంది, వీటిలో డేటాను నిల్వ చేయడానికి 1018 బైట్ ఉంది మరియు మేము 30 రోజుల పాటు 5 యూజర్ హాజరు డేటాను తీసుకున్నాము. మరియు ప్రతి హాజరు సమయం మరియు తేదీని రికార్డ్ చేస్తుంది కాబట్టి ఇది 7-బైట్ డేటా అవుతుంది.
కాబట్టి మొత్తం మెమరీ అవసరం
5 * 30 * 7 = 1050 కాబట్టి ఇక్కడ మనకు 32 బైట్లు ఎక్కువ కావాలి
మేము 4 వినియోగదారులను ఉపయోగిస్తే అప్పుడు మాకు అవసరం
4 * 30 * 7 = 840
ఇక్కడ మేము 5 వినియోగదారుల మెమరీని తీసుకొని ఈ ప్రాజెక్ట్ ప్రదర్శన చేసాము. దీని ద్వారా, మేము 5 వ వినియోగదారు యొక్క 32 బైట్ లేదా 5 హాజరు రికార్డులను నిల్వ చేయలేము.
కోడ్లోని కొన్ని పంక్తులను మార్చడం ద్వారా మీరు దీన్ని 4 మంది వినియోగదారులు ప్రయత్నించవచ్చు. మార్పులు అవసరమయ్యే కోడ్లో వ్యాఖ్యలు చేశాను.
ఫింగర్ ప్రింట్ అటెండెన్స్ సిస్టమ్ ప్రాజెక్ట్ కోసం సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
పై రేఖాచిత్రంలో చూపిన విధంగా ఈ వేలిముద్ర ఆధారిత హాజరు వ్యవస్థ ప్రాజెక్ట్ యొక్క సర్క్యూట్ చాలా సులభం. ఇది ప్రాజెక్ట్ యొక్క అన్ని ప్రక్రియలను నియంత్రించడానికి ఆర్డునోను కలిగి ఉంది, నమోదు చేయడానికి, తొలగించడానికి, ఐడిలను ఎంచుకోవడానికి మరియు హాజరు కోసం పుష్ బటన్, హెచ్చరిక కోసం ఒక బజర్, సూచిక కోసం ఎల్ఇడిలు మరియు వినియోగదారుకు సూచించడానికి ఎల్సిడి మరియు ఫలిత సందేశాలను చూపించడం.
సర్క్యూట్ రేఖాచిత్రంలో చూపినట్లుగా, పుష్ బటన్ నేరుగా భూమికి సంబంధించి ఆర్డునో యొక్క పిన్ A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) కు అనుసంధానించబడి ఉంది మరియు పసుపు LED డిజిటల్ పిన్ D7 వద్ద అనుసంధానించబడి ఉంది 1 కె రెసిస్టర్ ద్వారా భూమికి సంబంధించి ఆర్డునో. ఫింగర్ ప్రింట్ మాడ్యూల్ యొక్క Rx మరియు Tx నేరుగా ఆర్డునో యొక్క సీరియల్ పిన్ D2 మరియు D3 (సాఫ్ట్వేర్ సీరియల్) వద్ద కనెక్ట్ చేయబడ్డాయి. Arduino బోర్డు నుండి తీసిన వేలి ముద్రణ మాడ్యూల్ను శక్తివంతం చేయడానికి 5v సరఫరా ఉపయోగించబడుతుంది. పిన్ A5 వద్ద బజర్ కూడా కనెక్ట్ చేయబడింది. 16x2 LCD 4-బిట్ మోడ్లో కాన్ఫిగర్ చేయబడింది మరియు దాని RS, EN, D4, D5, D6 మరియు D7 నేరుగా డిజిటల్ పిన్ D13, D12, D11, D10, D9 మరియు D8 వద్ద ఆర్డునోతో అనుసంధానించబడి ఉన్నాయి.
కోడ్ వివరణ:
Arduino కోసం వేలిముద్ర హాజరు వ్యవస్థ కోడ్ తదుపరి విభాగాలలో ఇవ్వబడుతుంది. కోడ్ వ్యాఖ్యలతో చక్కగా వివరించబడినప్పటికీ, మేము ఇక్కడ కోడ్ యొక్క కొన్ని ముఖ్యమైన భాగాలను చర్చిస్తున్నాము. ఆర్డునో బోర్డ్తో ఫింగర్ ప్రింట్ మాడ్యూల్ను ఇంటర్ఫేస్ చేయడానికి మేము వేలిముద్ర లైబ్రరీని ఉపయోగించాము.
అన్నింటిలో మొదటిది, మేము హెడర్ ఫైల్ను చేర్చుతాము మరియు ఇన్పుట్ మరియు అవుట్పుట్ పిన్ను నిర్వచిస్తాము మరియు స్థూల మరియు డిక్లేర్డ్ వేరియబుల్స్ ను నిర్వచిస్తాము. దీని తరువాత, సెటప్ ఫంక్షన్లో, మేము నిర్వచించిన పిన్కు దిశను ఇస్తాము మరియు LCD మరియు ఫింగర్ ప్రింట్ మాడ్యూల్ను ప్రారంభిస్తాము
దాని తరువాత, హాజరు డేటాను డౌన్లోడ్ చేయడానికి మేము కోడ్ రాయాలి.
శూన్య సెటప్ () {ఆలస్యం (1000); lcd.begin (16,2); సీరియల్.బెగిన్ (9600); పిన్మోడ్ (నమోదు, INPUT_PULLUP); పిన్మోడ్ (పైకి, INPUT_PULLUP); పిన్మోడ్ (డౌన్, INPUT_PULLUP); పిన్మోడ్ (డెల్, INPUT_PULLUP); పిన్మోడ్ (మ్యాచ్, INPUT_PULLUP); పిన్ మోడ్ (బజర్, U ట్పుట్); పిన్మోడ్ (indFinger, OUTPUT); డిజిటల్ రైట్ (బజర్, తక్కువ); if (DigitalRead (నమోదు) == 0) {DigitalWrite (బజర్, HIGH); ఆలస్యం (500); డిజిటల్ రైట్ (బజర్, తక్కువ); lcd.clear (); lcd.print ("దయచేసి వేచి ఉండండి"); lcd.setCursor (0,1); lcd.print ("డౌన్లోడింగ్ డేటా");
తరువాత, మేము EEPROM నుండి హాజరు డేటాను క్లియర్ చేయడానికి కోడ్ రాయాలి.
if (DigitalRead (del) == 0) {lcd.clear (); lcd.print ("దయచేసి వేచి ఉండండి"); lcd.setCursor (0,1); lcd.print ("రీసెట్….."); (int i = 1000; i <1005; i ++) EEPROM.write (i, 0); (int i = 0; i <841; i ++) EEPROM.write (i, 0xff); lcd.clear (); lcd.print ("సిస్టమ్ రీసెట్"); ఆలస్యం (1000); }
దాని తరువాత, మేము ఫింగర్ ప్రింట్ మాడ్యూల్ను ప్రారంభిస్తాము, ఎల్సిడి ద్వారా స్వాగత సందేశాన్ని చూపిస్తుంది మరియు ఆర్టిసి మాడ్యూల్ను కూడా ప్రారంభించాము.
దాని తరువాత, లూప్ ఫంక్షన్లో, మేము RTC సమయాన్ని చదివి LCD లో ప్రదర్శించాము
void loop () {now = rtc.now (); lcd.setCursor (0,0); lcd.print ("సమయం->"); 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 ("తేదీ->"); lcd.print (now.day (), DEC); lcd.print ('/'); lcd.print (now.month (), DEC); lcd.print ('/'); lcd.print (now.year (), DEC);
దాని తరువాత, వేలి ముద్రణ ఇన్పుట్ తీసుకోవటానికి మరియు స్వాధీనం చేసుకున్న చిత్ర ID ని నిల్వ చేసిన ID లతో పోల్చడానికి వేచి ఉంది. అమాచ్ సంభవించినట్లయితే తదుపరి దశతో కొనసాగండి. మరియు నమోదు డెల్ కీలను కూడా తనిఖీ చేస్తుంది
int ఫలితం = getFingerprintIDez (); if (result> 0) {DigitalWrite (indFinger, LOW); డిజిటల్ రైట్ (బజర్, హై); ఆలస్యం (100); డిజిటల్ రైట్ (బజర్, తక్కువ); lcd.clear (); lcd.print ("ID:"); lcd.print (ఫలితం); lcd.setCursor (0,1); lcd.print ("దయచేసి వేచి ఉండండి…."); ఆలస్యం (1000); హాజరు (ఫలితం); lcd.clear (); lcd.print ("హాజరు"); lcd.setCursor (0,1); lcd.print ("రిజిస్టర్డ్"); ఆలస్యం (1000); డిజిటల్ రైట్ (indFinger, HIGH); తిరిగి; }
ఇచ్చిన శూన్యమైన చెక్కీస్ () ఫంక్షన్ ఎన్రోల్ లేదా DEL కీని నొక్కినప్పుడు లేదా నొక్కినప్పుడు తనిఖీ చేయబడుతుంది మరియు నొక్కితే ఏమి చేయాలి. ENROLL కీని నొక్కితే ఎన్రోల్ () ఫంక్షన్ అంటారు మరియు DEL కీ ప్రెస్ చేస్తే డిలీట్ () ఫంక్షన్ అంటారు.
తొలగించాల్సిన ID ని ఎంటర్ చెయ్యడానికి మరియు రికార్డుల నుండి వేలిని తొలగించే uint8_t deleteFingerprint (uint8_t id) ఫంక్షన్కు కాల్ చేయడానికి void delet () ఫంక్షన్ ఉపయోగించబడుతుంది.
ఇచ్చిన ఫంక్షన్ వేలి ముద్రణ చిత్రాన్ని తీయడానికి మరియు వాటిని మూసగా మార్చడానికి మరియు ఎంచుకున్న ID ద్వారా వేలి ముద్రణ మాడ్యూల్ మెమరీలో సేవ్ చేయడానికి ఉపయోగించబడుతుంది.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("వేలు ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("ప్లేస్ ఫింగర్"); ఆలస్యం (2000); (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
ఇచ్చిన ఫంక్షన్ EEPROM యొక్క కేటాయించిన స్లాట్లో హాజరు సమయం మరియు తేదీని నిల్వ చేయడానికి ఉపయోగించబడుతుంది
రద్దు హాజరు (పూర్ణాంక ఐడి) {int వినియోగదారు = 0, eepLoc = 0; if (id == 1) {eepLoc = 0; వినియోగదారు = వినియోగదారు 1 ++; } else ఉంటే (id == 2) {eepLoc = 210; వినియోగదారు = వినియోగదారు 2 ++; } else ఉంటే (id == 3)………….
ఇచ్చిన ఫంక్షన్ EEPROM నుండి డేటాను పొందటానికి మరియు సీరియల్ మానిటర్కు పంపడానికి ఉపయోగించబడుతుంది
void download (int eepIndex) {if (EEPROM.read (eepIndex)! = 0xff) {Serial.print ("T->"); if (EEPROM.read (eepIndex) <10) సీరియల్.ప్రింట్ ('0'); సీరియల్.ప్రింట్ (EEPROM.read (eepIndex ++)); సీరియల్.ప్రింట్ (':'); if (EEPROM.read (eepIndex) <10) సీరియల్.ప్రింట్ ('0'); సీరియల్.ప్రింట్ (EEPROM.read (eepIndex ++));………….