- అవసరమైన భాగాలు:
- ఓటింగ్ యంత్రంలో ఫింగర్ ప్రింట్ సెన్సార్ మాడ్యూల్:
- పని వివరణ:
- సర్క్యూట్ వివరణ:
- ప్రోగ్రామ్ వివరణ:
మీ ఓటు ఎలక్ట్రానిక్ ఓటింగ్ యంత్రాలతో మాకు బాగా తెలుసు, ఇక్కడ మీ ఓటు ఎలక్ట్రానిక్గా నమోదు అవుతుంది మరియు మీరు ఎన్నికలలో ఓటు వేయడానికి బ్యాలెట్ పేపర్ను ఉపయోగించాల్సిన అవసరం లేదు. ఈ రోజు భద్రత అనేది ఒక ప్రధాన ఆందోళన మరియు ఎవరైనా రెండుసార్లు ఓటు వేయలేరని కూడా నిర్ధారించాల్సిన అవసరం ఉంది, కాబట్టి ఫింగర్ ప్రింట్ బేస్డ్ ఓటింగ్ను ప్రవేశపెట్టడం ద్వారా ఈ సమస్యను పరిష్కరించవచ్చు, ఇక్కడ ఒక వ్యక్తి తన వేలి ముద్రణ ఆధారంగా అధికారం పొందవచ్చు. ఇది నకిలీ ఓటింగ్ను కూడా నిలిపివేస్తుంది. కాబట్టి ఈ రోజు మనం ఆర్డునో ఉపయోగించి ఫింగర్ ప్రింట్ బేస్డ్ బయోమెట్రిక్ ఓటింగ్ మెషీన్ను నిర్మిస్తున్నాము.
వేర్వేరు మైక్రోకంట్రోలర్లను ఉపయోగించి మా మునుపటి ఎలక్ట్రానిక్ ఓటింగ్ మెషిన్ ప్రాజెక్ట్లను కూడా తనిఖీ చేయండి:
- రాస్ప్బెర్రీ పై ఉపయోగించి ఎలక్ట్రానిక్ ఓటింగ్ మెషిన్
- RFID ఆధారిత ఓటింగ్ యంత్రం
- AVR మైక్రోకంట్రోలర్ బేస్డ్ ఎలక్ట్రానిక్ ఓటింగ్ మెషిన్ ప్రాజెక్ట్
- ఆర్డునో ఉపయోగించి ఎలక్ట్రానిక్ ఓటింగ్ మెషిన్
అవసరమైన భాగాలు:
- ఆర్డునో యునో
- ఫింగర్ ప్రింట్ సెన్సార్ మాడ్యూల్
- పుష్ బటన్లు
- LED లు -2
- 1 కె రెసిస్టర్ -3
- 2.2 కె రెసిస్టర్
- శక్తి
- వైర్లను కనెక్ట్ చేస్తోంది
- బజర్
- 16x2 LCD
- బ్రెడ్ బోర్డు
ఓటింగ్ యంత్రంలో ఫింగర్ ప్రింట్ సెన్సార్ మాడ్యూల్:
ఫింగర్ ప్రింట్ సెన్సార్ మాడ్యూల్ లేదా ఫింగర్ ప్రింట్ స్కానర్ అనేది మాడ్యూల్, ఇది వేలు యొక్క ముద్రణ చిత్రాన్ని సంగ్రహిస్తుంది మరియు తరువాత దానిని సమానమైన టెంప్లేట్గా మారుస్తుంది మరియు ఆర్డునో చేత ఎంచుకున్న ID (లొకేషన్) లో దాని మెమరీలో వాటిని సేవ్ చేస్తుంది. ఇక్కడ అన్ని ప్రక్రియలను ఫింగర్ ప్రింట్ యొక్క చిత్రాన్ని తీయడం, టెంప్లేట్లుగా మార్చడం మరియు స్థానాన్ని నిల్వ చేయడం వంటి ఆర్డునో ఆదేశిస్తారు.
ఈ ఫింగర్ ప్రింట్ ఓటింగ్ మెషిన్ సర్క్యూట్లో, నిజమైన ఓటరును సిస్టమ్లో వేలి ఇన్పుట్ తీసుకొని ప్రామాణీకరించడానికి మేము ఫింగర్ ప్రింట్ సెన్సార్ మాడ్యూల్ని ఉపయోగించాము. ఇక్కడ మనం సరిపోలడానికి, నమోదు / వెనుకకు, తొలగించు / సరే, యుపి మరియు డౌన్ చేయడానికి 5 పుష్ బటన్లను ఉపయోగిస్తున్నాము. నమోదు మరియు డెల్ కీ ఇక్కడ డబుల్ లక్షణాలను కలిగి ఉన్నాయి. సిస్టమ్ మరియు బ్యాక్ ఫంక్షన్లో కొత్త వేలు ముద్రను నమోదు చేయడానికి నమోదు కీ ఉపయోగించబడుతుంది. వినియోగదారు కొత్త వేలిని నమోదు చేయాలనుకున్నప్పుడు అతను / ఆమె నమోదు కీని నొక్కాలి, అప్పుడు వినియోగదారు వేలు ముద్రణ అవుట్పుట్ను నిల్వ చేయాలనుకునే ID లేదా స్థానాన్ని LCD అడుగుతుంది. ఇప్పుడు ఈ సమయంలో వినియోగదారు మరింత ముందుకు వెళ్లకూడదనుకుంటే, అతడు / ఆమె తిరిగి వెళ్ళడానికి ఎన్రోల్ కీని మళ్లీ నొక్కవచ్చు (ఈసారి నమోదు కీ బ్యాక్ కీ వలె ప్రవర్తిస్తుంది). మీన్స్ నమోదు కీ నమోదు మరియు వెనుక ఫంక్షన్ రెండింటినీ కలిగి ఉంది. DEL / OK కీ వినియోగదారు కొత్త వేలిని నమోదు చేసినప్పుడు అదే డబుల్ ఫంక్షన్ కూడా ఉంటుంది, అప్పుడు అతను / ఆమె వేలి ID లేదా స్థానాన్ని ఎంచుకోవాలి, అవి UP మరియు DOWN అనే మరో రెండు కీని ఉపయోగించడం ద్వారా వినియోగదారు ఇప్పుడు DEL / OK కీని నొక్కాలి (ఈసారి ఈ కీ సరే అనిపిస్తుంది) ఎంచుకున్న ID లేదా స్థానంతో కొనసాగండి. ఓటరు ఓటు వేయాలనుకున్నప్పుడల్లా మ్యాచ్ కీ ఉపయోగించబడుతుంది, అప్పుడు అతను / ఆమె ఫింగర్ ప్రింట్ సెన్సార్పై వేలు పెట్టడం ద్వారా నిజమైన ఓటరు కోసం మొదట ప్రామాణీకరించాలి, అతను / ఆమె ఈ ప్రామాణీకరణలో ఉత్తీర్ణత సాధించినట్లయితే అతను / ఆమె ఓటు వేయవచ్చు.
వేలి ముద్రలు మరియు ఇతర విషయాలను నమోదు చేయడం గురించి మరింత తెలుసుకోవడానికి, ఫింగర్ ప్రింట్ సెన్సార్ను ఆర్డునోతో ఇంటర్ఫేస్ చేయడంపై మా మునుపటి ట్యుటోరియల్ని తనిఖీ చేయండి మరియు ఈ ట్యుటోరియల్ చివరిలో మా డెమో వీడియోను కూడా తనిఖీ చేయండి.
పని వివరణ:
ఎన్నికల కోసం ఈ బయోమెట్రిక్ ఓటింగ్ వ్యవస్థ యొక్క పని ప్రారంభకులకు కొద్దిగా క్లిష్టంగా ఉంటుంది. అన్నింటిలో మొదటిది, వినియోగదారు పుష్ బటన్లు / కీల సహాయంతో వేలు లేదా ఓటర్లను నమోదు చేయాలి (ఈ కోడ్లో ఓటరు గరిష్ట పరిమితి 25). ఈ యూజర్ చేయడానికి ENROLL కీని నొక్కాలి, ఆపై LCD స్థానం / ID ని ఎంటర్ చేయమని అడుగుతుంది, అక్కడ వేలు స్టోర్ అవుతుంది. కాబట్టి ఇప్పుడు యూజర్ UP / DOWN కీలను ఉపయోగించి ID (Location) ను నమోదు చేయాలి. స్థానం / ఐడి ఎంచుకున్న తరువాత యూజర్ సరే కీని (డెల్ కీ) నొక్కాలి. ఇప్పుడు ఎల్సిడి ఫింగర్ ప్రింట్ మాడ్యూల్పై వేలు పెట్టమని అడుగుతుంది. ఇప్పుడు వినియోగదారు వేలు ముద్రణ మాడ్యూల్పై వేలు పెట్టాలి. అప్పుడు ఎల్సిడి వేలి ముద్రణ మాడ్యూల్ నుండి వేలిని తీసివేసి, వేలిని ఉంచమని అడుగుతుంది. ఇప్పుడు వినియోగదారు వేలి ముద్రణ మాడ్యూల్పై మళ్లీ వేలు పెట్టాలి. ఇప్పుడు ఫింగర్ ప్రింట్ మాడ్యూల్ ఒక చిత్రాన్ని తీసుకొని దానిని టెంప్లేట్లుగా మార్చి, ఎంచుకున్న ID ద్వారా ఫింగర్ ప్రింట్ మాడ్యూల్ యొక్క మెమరీలో నిల్వ చేస్తుంది.ఇప్పుడు ఓటరు నమోదు చేయబడతారు మరియు అతను / ఆమె ఓటు వేయవచ్చు. అదే పద్ధతి ద్వారా ఓటరులందరినీ వ్యవస్థలో నమోదు చేసుకోవచ్చు.
ఇప్పుడు వినియోగదారుడు నిల్వ చేసిన ఏదైనా ఐడిని తొలగించాలని లేదా తొలగించాలని కోరుకుంటే, అతడు / ఆమె DEL కీని నొక్కాలి, DEL కీని నొక్కిన తరువాత, LCD ఎంచుకున్న స్థానాన్ని అడుగుతుంది అంటే తొలగించాల్సిన ID ని ఎంచుకోండి. ఇప్పుడు యూజర్ ఐడిని ఎన్నుకోవాలి మరియు సరే కీని నొక్కాలి (అదే డెల్ కీ). వేలు విజయవంతంగా తొలగించబడిందని ఇప్పుడు LCD మీకు తెలియజేస్తుంది.
ఓటింగ్ ప్రక్రియ:
ఇప్పుడు యూజర్ ఓటు వేయాలనుకున్నప్పుడు అతను / ఆమె మ్యాచ్ కీని నొక్కాలి, ఆపై బజర్ బీప్ అవుతుంది మరియు LED కూడా మెరుస్తుంది మరియు LCD వేలిముద్ర మాడ్యూల్ మీద వేలు పెట్టమని అడుగుతుంది. ఇప్పుడు Arduino మీ వేలు పెట్టడానికి మూడు ప్రయత్నాలు ఇస్తుంది. వేలిముద్ర మాడ్యూల్ మీద వేలు ఉంచిన తరువాత వేలిముద్ర మాడ్యూల్ వేలి చిత్రాన్ని సంగ్రహిస్తుంది, దాని ID లు సిస్టమ్లో ఉన్నాయని కనుగొనండి. ఫింగర్ ఐడి కనుగొనబడితే, ఎల్సిడి అధీకృత ఓటరును చూపుతుంది. దీని అర్థం వినియోగదారుకు ఓటు వేయడానికి అధికారం ఉంది. ఆపై ఓటింగ్ కోసం వ్యవస్థ తదుపరి దశకు వెళుతుంది. ఇప్పుడు గ్రీన్ ఎల్ఈడి మెరుస్తుంది అంటే ఇప్పుడు ఓటరు ఎంచుకున్న కీని నొక్కడం ద్వారా తమ అభ్యర్థులకు ఓటు వేయవచ్చు (ఈ ప్రదర్శనలో RED బ్రెడ్ బోర్డు నుండి). ఇప్పుడు అదే ఓటరు మళ్లీ ఓటు వేయాలనుకుంటే, వ్యవస్థ దానిని 'ఇప్పటికే ఓటు వేసింది' చూపిస్తుంది . అదే ఓటరు మళ్లీ ఓటు వేయలేరు మరియు బజర్ 5 సెకన్ల పాటు బీప్ అవుతుంది. నమోదు కాని యూజర్ ఎవరైనా ఓటు వేయాలనుకుంటే, వేలి ముద్రణ మాడ్యూల్ దాని ఐడిని సిస్టమ్లోకి గుర్తించదు మరియు ఎల్సిడి ' వేలిముద్ర కనుగొనబడలేదు' చూపిస్తుంది .
ఇక్కడ CAN1, CAN2, CAN3 ఎన్నికలకు నిలబడిన అభ్యర్థి 1, అభ్యర్థి 2 మరియు అభ్యర్థి 3 ను సూచిస్తుంది.
సర్క్యూట్ వివరణ:
ఈ ఫింగర్ ప్రింట్ బేస్డ్ ఓటింగ్ మెషిన్ ప్రాజెక్ట్ యొక్క సర్క్యూట్ చాలా సులభం, దీనిలో ప్రాజెక్ట్ యొక్క మొత్తం ప్రక్రియను నియంత్రించడానికి ఆర్డునో, నమోదు, తొలగించడం, ఐడిలను ఎన్నుకోవడం మరియు ఓటింగ్ ప్రయోజనం కోసం పుష్ బటన్, హెచ్చరిక కోసం ఒక బజర్, సూచిక కోసం LED లు మరియు సూచనల కోసం 16x2 LCD ఓటరు మరియు ఫలితాన్ని కూడా చూపిస్తుంది. పసుపు ఎల్ఈడీ వేలి ముద్రణ మాడ్యూల్ వేలు యొక్క చిత్రాన్ని తీయడానికి సిద్ధంగా ఉందని సూచిస్తుంది మరియు గ్రీన్ ఎల్ఈడీ ఓటు వేయడానికి లేదా ఫలితాలను చూడటానికి సిస్టమ్ సిద్ధంగా ఉందని సూచిస్తుంది.
పుష్ బటన్ నేరుగా పిన్ A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) మరియు A4 (మ్యాచ్), D5 (Can1), D4 (Can2), D3 (Can3), D2 (ఫలితం) భూమికి సంబంధించి ఆర్డునో. 1 కె రెసిస్టర్ ద్వారా భూమికి సంబంధించి పసుపు ఎల్ఇడి ఆర్డునో యొక్క డిజిటల్ పిన్ డి 7 వద్ద అనుసంధానించబడి ఉంది మరియు గ్రీన్ ఎల్ఇడి అదే పద్ధతిలో ఆర్డునో యొక్క డి 6 కి అనుసంధానించబడి ఉంది. వేలిముద్ర మాడ్యూల్ యొక్క Rx మరియు Tx నేరుగా సీరియల్ పిన్ Tx మరియు ఆర్డునో యొక్క Rx వద్ద కనెక్ట్ చేయబడ్డాయి. Arduino బోర్డు నుండి తీసిన వేలి ముద్రణ మాడ్యూల్ను శక్తివంతం చేయడానికి 5v సరఫరా ఉపయోగించబడుతుంది. A5 వద్ద బజర్ కూడా కనెక్ట్ చేయబడింది. 16x2 LCD 4-బిట్ మోడ్లో కాన్ఫిగర్ చేయబడింది మరియు దాని RS, EN, D4, D5, D6 మరియు D7 నేరుగా డిజిటల్ పిన్ D13, D12, D11, D10, D9 మరియు D8 వద్ద ఆర్డునోతో అనుసంధానించబడి ఉన్నాయి.
ప్రోగ్రామ్ వివరణ:
ఒక ప్రోగ్రామ్లో, వేలిముద్ర మాడ్యూల్ను ఆర్డునో బోర్డుతో ఇంటర్ఫేస్ చేయడానికి మేము అడాఫ్రూట్ ఫింగర్ ప్రింట్ సెన్సార్ లైబ్రరీని ఉపయోగించాము. మీరు పూర్తి కోడ్ను క్రింద తనిఖీ చేయవచ్చు. ఇక్కడ మేము ఆర్డునో ప్రోగ్రామ్ యొక్క ప్రధాన విధులను వివరిస్తున్నాము.
సెటప్ ఫంక్షన్లో, మేము నిర్వచించిన పిన్లకు ఆదేశాలు ఇచ్చాము మరియు LCD మరియు వేలిముద్ర మాడ్యూల్ను ప్రారంభించాము.
దాని తరువాత, శూన్య లూప్ () ఫంక్షన్లో, మేము చెక్ కీ కోసం ఎదురుచూశాము మరియు ఇన్పుట్ తీసుకోవడానికి వేలు ముద్రణను ప్రారంభించడానికి మ్యాచ్ కీని నొక్కండి మరియు నిల్వ చేసిన ఐడిలతో సంగ్రహించిన ఇమేజ్ ఐడిని పోల్చండి. మ్యాచ్ జరిగితే తదుపరి దశతో కొనసాగండి.
void loop () {lcd.setCursor (0,0); lcd.print ("మ్యాచ్ కీని నొక్కండి"); lcd.setCursor (0,1); lcd.print ("వ్యవస్థను ప్రారంభించడానికి"); డిజిటల్ రైట్ (indVote, LOW); డిజిటల్ రైట్ (indFinger, LOW); if (DigitalRead (match) == 0) {DigitalWrite (బజర్, HIGH); ఆలస్యం (200); డిజిటల్ రైట్ (బజర్, తక్కువ); డిజిటల్ రైట్ (indFinger, HIGH); (int i = 0; i <3; i ++)…………………
ఇచ్చిన శూన్యమైన చెక్కీస్ () ఫంక్షన్ ఎన్రోల్ లేదా DEL కీని నొక్కినప్పుడు లేదా నొక్కినప్పుడు తనిఖీ చేయబడుతుంది మరియు నొక్కితే ఏమి చేయాలి. ENROLL కీని నొక్కితే ఎన్రోల్ () ఫంక్షన్ అంటారు మరియు DEL కీ ప్రెస్ చేస్తే డిలీట్ () ఫంక్షన్ అంటారు.
void checkKeys () {if (DigitalRead (నమోదు) == 0) {lcd.clear (); lcd.print ("దయచేసి వేచి ఉండండి"); ఆలస్యం (1000); అయితే (డిజిటల్ రీడ్ (నమోదు) == 0); నమోదు (); } else if (DigitalRead (del) == 0) {lcd.clear (); lcd.print ("దయచేసి వేచి ఉండండి"); ఆలస్యం (1000); తొలగించు (); }}
తొలగించబడిన ID ని నమోదు చేయడానికి మరియు రికార్డుల నుండి వేలిని తొలగించే uint8_t deleteFingerprint (uint8_t id) ఫంక్షన్కు కాల్ చేయడానికి ఇచ్చిన ఫంక్షన్ ఉపయోగించబడుతుంది.
void delet () {int count = 0; lcd.clear (); lcd.print ("వేలిని తొలగించు"); lcd.setCursor (0,1); lcd.print ("స్థానం:"); (1) {lcd.setCursor (9,1); lcd.print (కౌంట్); if (DigitalRead (పైకి) == 0) {count ++; if (కౌంట్> 25) కౌంట్ = 0; ఆలస్యం (500); }……………….
ఎంచుకున్న ID యొక్క రికార్డ్ నుండి వేలి ముద్రణను తొలగించడానికి ఇచ్చిన ఫంక్షన్ ఉపయోగించబడుతుంది.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("దయచేసి వేచి ఉండండి"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("తొలగించబడింది!"); lcd.clear (); lcd.print ("ఫిగర్ తొలగించబడింది"); lcd.setCursor (0,1); lcd.print ("విజయవంతంగా"); ఆలస్యం (1000); } else {Serial.print ("సమ్థింగ్ రాంగ్"); lcd.clear (); lcd.print ("సమ్థింగ్ రాంగ్"); lcd.setCursor (0,1); lcd.print ("తరువాత మళ్లీ ప్రయత్నించండి"); ఆలస్యం (2000); తిరిగి p; }}
ఇచ్చిన ఫంక్షన్ వేలి ముద్రణ చిత్రాన్ని తీయడానికి మరియు వాటిని మూసగా మార్చడానికి మరియు ఎంచుకున్న 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 ();…………………
ఇచ్చిన ఫంక్షన్ ఓటింగ్ మరియు ప్రదర్శన ఫలితాల కోసం ఉపయోగించబడుతుంది:
void Vote () {lcd.clear (); lcd.print ("దయచేసి ఉంచండి"); lcd.setCursor (0,1); lcd.print ("మీ ఓటు"); డిజిటల్ రైట్ (indVote, HIGH); డిజిటల్ రైట్ (indFinger, LOW); డిజిటల్ రైట్ (బజర్, హై); ఆలస్యం (500); డిజిటల్ రైట్ (బజర్, తక్కువ); ఆలస్యం (1000); అయితే (1) {if (DigitalRead (sw1) == 0)…………………
క్రింద పూర్తి కోడ్ మరియు ప్రదర్శన వీడియోను తనిఖీ చేయండి.