- ఉపయోగించిన భాగాలు:
- మల్టీప్లెక్సింగ్ ఉపయోగించి రాస్ప్బెర్రీ పైతో 4x4 కీప్యాడ్ను కనెక్ట్ చేస్తోంది:
- సర్క్యూట్ వివరణ:
- పని వివరణ:
- ప్రోగ్రామింగ్ వివరణ:
మన రోజువారీ జీవితంలో భద్రత ఒక ప్రధాన ఆందోళన, మరియు ఈ భద్రతా వ్యవస్థలలో డిజిటల్ తాళాలు ఒక ముఖ్యమైన భాగంగా మారాయి. పిఐఆర్ బేస్డ్ సెక్యూరిటీ సిస్టమ్స్, ఆర్ఎఫ్ఐడి ఆధారిత సెక్యూరిటీ సిస్టమ్, లేజర్ సెక్యూరిటీ అలారాలు, బయో మ్యాట్రిక్స్ సిస్టమ్స్ వంటి అనేక రకాల సాంకేతికతలు అందుబాటులో ఉన్నాయి.
మేము ఇంతకుముందు ఆర్డునో ఉపయోగించి మరియు 8051 ను ఉపయోగించి పాస్వర్డ్తో డిజిటల్ లాక్ని నిర్మించాము, ఇక్కడ మేము ఈ డిజిటల్ లాక్ని యూజర్ డిఫైన్డ్ పాస్వర్డ్తో రాస్ప్బెర్రీ పై ఉపయోగించి నిర్మించబోతున్నాము . పాస్వర్డ్ సెట్ చేయబడిన తర్వాత, వినియోగదారు సరైన పాస్వర్డ్తో మాత్రమే తలుపును యాక్సెస్ చేయవచ్చు.
మీకు రాస్ప్బెర్రీ పై గురించి తెలియకపోతే, రాస్ప్బెర్రీ పై నేర్చుకోవడానికి మేము వరుస ట్యుటోరియల్స్ సృష్టించాము, అన్ని ప్రాథమిక భాగాలతో మరియు కొన్ని సాధారణ ప్రాజెక్టులతో ఇంటర్ఫేసింగ్తో తనిఖీ చేయండి.
ఉపయోగించిన భాగాలు:
- రాస్ప్బెర్రీ పై (బూట్ చేసిన SD కార్డుతో)
- కీప్యాడ్ మాడ్యూల్
- బజర్
- 16x2 LCD
- 10 కే కుండ
- 10 కె రెసిస్టర్ ప్యాక్ (పుల్-అప్)
- LED
- 1 కె రెసిస్టర్
- బ్రెడ్ బోర్డు
- గేట్ గా సిడి / డివిడి ట్రాలీ
- పవర్ 5 వోల్ట్
- మోటార్ డ్రైవర్ ఎల్ 293 డి
- 12 వోల్ట్ బ్యాటరీ
- వైర్లను కనెక్ట్ చేస్తోంది
మల్టీప్లెక్సింగ్ ఉపయోగించి రాస్ప్బెర్రీ పైతో 4x4 కీప్యాడ్ను కనెక్ట్ చేస్తోంది:
ఈ సర్క్యూట్లో, సిస్టమ్లో పాస్వర్డ్ను నమోదు చేయడానికి కీప్యాడ్ను ఇంటర్ఫేస్ చేయడానికి మేము మల్టీప్లెక్సింగ్ టెక్నిక్ని ఉపయోగించాము. ఇక్కడ మేము 16 కీలతో 4x4 మల్టీప్లెక్స్ కీప్యాడ్ను ఉపయోగిస్తున్నాము. సాధారణంగా మేము 16 కీలను ఉపయోగించాలనుకుంటే, ఆర్డునోకు కనెక్షన్ కోసం మాకు 16 పిన్స్ అవసరం, కాని మల్టీప్లెక్సింగ్ టెక్నిక్లో 16 కీలను ఇంటర్ఫేస్ చేయడానికి 8 పిన్స్ మాత్రమే అవసరం. కనుక ఇది కీప్యాడ్ మాడ్యూల్ను ఇంటర్ఫేస్ చేయడానికి ఒక మంచి మార్గం. 8051 ఉపయోగించి మల్టీప్లెక్సింగ్ టెక్నిక్ మరియు ఈ డిజిటల్ లాక్లో దాని పని గురించి మరింత తెలుసుకోండి.
ఇన్పుట్ లేదా పాస్వర్డ్ లేదా సంఖ్యలను అందించడానికి మైక్రోకంట్రోలర్తో ఉపయోగించే పిన్స్ సంఖ్యను తగ్గించడానికి మల్టీప్లెక్సింగ్ టెక్నిక్ చాలా సమర్థవంతమైన మార్గం. ప్రాథమికంగా ఈ సాంకేతికత రెండు విధాలుగా ఉపయోగించబడుతుంది - ఒకటి వరుస స్కానింగ్ మరియు మరొకటి కాలమ్ స్కానింగ్. మేము కీప్యాడ్ లైబ్రరీని ఉపయోగిస్తే (# చేర్చండి
కానీ ఇక్కడ ఈ ప్రాజెక్ట్లో, కీప్యాడ్ లైబ్రరీని ఉపయోగించకుండా, అదే కీప్యాడ్ కోసం కోడింగ్ యొక్క చిన్న మార్గాన్ని అమలు చేసాము. దయచేసి దిగువ ప్రోగ్రామింగ్ విభాగంలో చూడండి.
సర్క్యూట్ వివరణ:
ఈ రాస్ప్బెర్రీ పై డిజిటల్ డోర్ లాక్ యొక్క సర్క్యూట్ చాలా సులభం, ఇందులో రాస్ప్బెర్రీ పై 3, కీప్యాడ్ మాడ్యూల్, బజర్, డివిడి / సిడి ట్రాలీ గేట్ మరియు ఎల్సిడి ఉన్నాయి. పాస్వర్డ్ ఫారమ్ కీప్యాడ్ మాడ్యూల్ తీసుకోవడం, పాస్వర్డ్లను పోల్చడం, బజర్ డ్రైవింగ్, గేట్ తెరవడం / మూసివేయడం మరియు ఎల్సిడి డిస్ప్లేకి స్థితిని పంపడం వంటి పూర్తి ప్రక్రియను ఇక్కడ రాస్ప్బెర్రీ పై నియంత్రిస్తుంది. పాస్వర్డ్ను నమోదు చేయడానికి కీప్యాడ్ ఉపయోగించబడుతుంది. సూచనలు కోసం బజర్ ఉపయోగించబడుతుంది మరియు ఇన్బిల్ట్ NPN ట్రాన్సిస్టర్ చేత నడపబడుతుంది. దానిపై స్థితి లేదా సందేశాలను ప్రదర్శించడానికి LCD ఉపయోగించబడుతుంది.
కీప్యాడ్ మాడ్యూల్ యొక్క కాలమ్ పిన్స్ నేరుగా GPIO పిన్ 22, 23, 24, 25 కి అనుసంధానించబడి ఉంటాయి మరియు రో పిన్స్ రాస్ప్బెర్రీ పై యొక్క రింగ్పి పిన్స్ యొక్క 21, 14, 13, 12 కి అనుసంధానించబడి ఉన్నాయి. ఒక 16x2 LCD 4-బిట్ మోడ్ కోరిందకాయ Pi తో అనుసంధానించబడి ఉంది. LCD యొక్క కంట్రోల్ పిన్ RS, RW మరియు En నేరుగా GPIO పిన్ 11, GND మరియు 10 కి అనుసంధానించబడి ఉన్నాయి. డేటా పిన్స్ D4-D7 GPIO పిన్స్ 6, 15, 4 మరియు 1 లకు అనుసంధానించబడి ఉంది. GPIO పిన్ 8 వద్ద ఒక బజర్ కనెక్ట్ చేయబడింది. మరియు మోటార్ డ్రైవర్ L293D GPIO పిన్ 28 రాస్ప్బెర్రీ Pi యొక్క 29 వద్ద అనుసంధానించబడి ఉంది. ఒక 12 వోల్ట్ బ్యాటరీ భూమికి సంబంధించి L293D పిన్ 8 వద్ద అనుసంధానించబడి ఉంది.
పని వివరణ:
ఈ ప్రాజెక్ట్ యొక్క పని చాలా సులభం. వినియోగదారు రాస్ప్బెర్రీ పైలో కోడ్ను నడుపుతున్నప్పుడు, ఎల్సిడి కొన్ని స్వాగత సందేశాన్ని చూపిస్తుంది మరియు అది “ఎ-ఇన్పుట్ పాస్వర్డ్” మరియు రెండవ వరుసలో బి- పాస్కీని మార్చండి ”. ఇప్పుడు వినియోగదారు కీప్యాడ్ వద్ద A మరియు B ని నొక్కడం ద్వారా వారి ఎంపికను ఎంచుకోవచ్చు.
ఇప్పుడు వినియోగదారు గేట్ తెరవాలనుకుంటే, అతను కీప్యాడ్ వద్ద 'A' నొక్కాలి, ఆపై సిస్టమ్ పాస్వర్డ్ అడుగుతుంది. డిఫాల్ట్ పాస్వర్డ్ “1234”. ఇప్పుడు యూజర్ పాస్వర్డ్ను ఇన్పుట్ చేయాలి మరియు ఈ సిస్టమ్ పాస్వర్డ్ చెల్లుబాటు అవుతుందో లేదో తనిఖీ చేస్తుంది:
1. వినియోగదారు కుడి పాస్వర్డ్లోకి ప్రవేశిస్తే సిస్టమ్ గేట్ తెరుస్తుంది.
2. వినియోగదారు తప్పు పాస్వర్డ్లోకి ప్రవేశిస్తే సిస్టమ్ బీజర్కు బజర్కు ఆదేశాన్ని పంపుతుంది మరియు LCD లో “యాక్సెస్ నిరాకరించబడింది” చూపిస్తుంది.
ఇప్పుడు వినియోగదారు పాస్వర్డ్ను మార్చాలనుకుంటున్నారని అనుకుందాం, అప్పుడు అతను / ఆమె కీప్యాడ్ వద్ద 'B' నొక్కాలి, ఆపై వినియోగదారు "ప్రస్తుత పాస్వర్డ్" లేదా "ప్రస్తుత పాస్కీ" కోసం అడుగుతారు. ఇప్పుడు వినియోగదారు ప్రస్తుత పాస్వర్డ్ను ఇన్పుట్ చేయాలి, ఆపై సిస్టమ్ దాని ఖచ్చితత్వాన్ని తనిఖీ చేసి, ఇచ్చిన పనుల్లో ఒకదాన్ని చేయండి.
1. వినియోగదారు సరైన పాస్వర్డ్లోకి ప్రవేశిస్తే సిస్టమ్ “క్రొత్త పాస్వర్డ్” కోసం అడుగుతుంది మరియు ఇప్పుడు వినియోగదారు క్రొత్త పాస్వర్డ్ను నమోదు చేయడం ద్వారా పాస్వర్డ్ను మార్చవచ్చు.
2. మరియు వినియోగదారు తప్పు పాస్వర్డ్లోకి ప్రవేశిస్తే సిస్టమ్ బజర్ను డ్రైవ్ చేస్తుంది మరియు LCD లో “తప్పు పాస్వర్డ్: చూపిస్తుంది.
పాస్వర్డ్ మార్చడానికి ఇప్పుడు యూజర్ మొత్తం ప్రక్రియను మళ్ళీ పునరావృతం చేయాలి.
సాధారణంగా, గేట్ తెరవడం మరియు మూసివేయడం అనేది తలుపు తెరిచి మూసివేయడానికి మోటారు గడియారం వారీగా మరియు యాంటీ-సవ్యదిశలో తిప్పడం తప్ప మరొకటి కాదు. ఒక చిన్న ప్రాజెక్ట్ కోసం మీరు తలుపు తెరిచి మూసివేయడానికి DC మోటారును జోడించవచ్చు. మేము సర్వో లేదా స్టెప్పర్ మోటారును కూడా ఉపయోగించవచ్చు, కాని దానికి అనుగుణంగా కోడ్ను మార్చాలి.
ఇంకా మీరు సిడి ట్రాలీ స్థానంలో సరైన ఎలక్ట్రానిక్ డోర్ లాక్ (ఆన్లైన్లో సులభంగా లభిస్తుంది) ఉపయోగించవచ్చు. ఇది ఎలక్ట్రో మాగ్నెట్ కలిగి ఉంది, ఇది లాక్ (ఓపెన్ సర్క్యూట్) గుండా కరెంట్ లేనప్పుడు డోర్ లాక్ చేయబడి ఉంటుంది మరియు కొంత కరెంట్ దాని గుండా వెళ్ళినప్పుడు, లాక్ అన్లాక్ అవుతుంది మరియు తలుపు తెరవబడుతుంది. కోడ్ తదనుగుణంగా మార్చబడుతుంది, ఈ భాగస్వామ్య ప్రాజెక్ట్ సమీక్షను కూడా తనిఖీ చేయండి: Arduino RFID డోర్ లాక్
ప్రోగ్రామింగ్ వివరణ:
ప్రోగ్రామింగ్ అర్డునోతో సమానంగా ఉంటుంది. Arduino ఫంక్షన్ తరగతులను ఉపయోగిస్తుంది కాని ఇక్కడ మేము ఈ కోడ్ను సి ప్రోగ్రామింగ్ ఉపయోగించి క్లాసులు లేకుండా చేసాము. మేము GPIO ల కోసం వైరింగ్పి లైబ్రరీని కూడా ఇన్స్టాల్ చేసాము.
ఇప్పుడు మొదట మనం అవసరమైన లైబ్రరీలను చేర్చాలి, ఆపై ఎల్సిడి, బజర్, ఎల్ఇడి మరియు మోటర్ కోసం పిన్లను నిర్వచించాలి.
# చేర్చండి
కీప్యాడ్ యొక్క అడ్డు వరుస & నిలువు వరుసల కోసం పిన్లను నిర్వచించిన తరువాత మరియు పాస్వర్డ్ మరియు కీప్యాడ్ సంఖ్యలను నిల్వ చేయడానికి శ్రేణిని నిర్వచించిన తరువాత.
చార్ పాస్; చార్ పాస్ 1 = {'1', '2', '3', '4'}; int n = 0; చార్ వరుస = {21, 14, 13, 12}; చార్ కోల్ = {22, 23, 24, 25}; చార్ సంఖ్య = {1 '1', '2', '3', 'ఎ'}, {'4', '5', '6', 'బి'}, {'7', '8', ' 9 ',' సి '}, {' * ',' 0 ',' # ',' డి '}};
దాని తరువాత మేము LCD డ్రైవింగ్ కోసం కొన్ని ఫంక్షన్లను వ్రాసాము:
ఫంక్షన్ void lcdcmd LCD కి ఆదేశాన్ని పంపడానికి ఉపయోగించబడుతుంది మరియు LCD కి డేటాను పంపడానికి void write function ఉపయోగించబడుతుంది.
LCD కి స్ట్రింగ్ పంపడానికి ఫంక్షన్ శూన్య ముద్రణ ఉపయోగించబడుతుంది.
void print (char * str) {అయితే (* str) {వ్రాయండి (* str); str ++; }}
LCD లో కర్సర్ స్థానాన్ని సెట్ చేయడానికి ఫంక్షన్ శూన్య సెట్ కర్సర్ ఉపయోగించబడుతుంది.
void setCursor (int x, int y) {int set = 0; if (y == 0) సెట్ = 128 + x; if (y == 1) సెట్ = 192 + x; lcdcmd (సెట్); }
ఫంక్షన్ శూన్య క్లియర్ () ను ఎల్సిడిని క్లియర్ చేయడానికి ఉపయోగిస్తారు మరియు బజర్ను బీప్ చేయడానికి శూన్య బజర్ () ఉపయోగించబడుతుంది.
గేట్ (సిడి ట్రాలీ) ను నడపడానికి ఫంక్షన్ శూన్యమైన గేట్_పెన్ (), శూన్యమైన గేట్_స్టాప్ () మరియు శూన్యమైన గేట్_క్లోస్ () ఉపయోగించబడతాయి.
void gate_open () {DigitalWrite (m1, LOW); డిజిటల్ రైట్ (m2, HIGH); ఆలస్యం (2000); } శూన్యమైన గేట్_స్టాప్ () {డిజిటల్ రైట్ (m1, LOW); డిజిటల్ రైట్ (m2, LOW); ఆలస్యం (2000); } శూన్యమైన గేట్_క్లోస్ () {డిజిటల్ రైట్ (m1, HIGH); డిజిటల్ రైట్ (m2, LOW); ఆలస్యం (2000); }
4-బిట్ మోడ్లో ఎల్సిడిని ప్రారంభించడానికి ఇచ్చిన ఫంక్షన్ ఉపయోగించబడుతుంది.
శూన్య ప్రారంభం (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
కీప్యాడ్ మాడ్యూల్ను రాస్ప్బెర్రీ పైతో 'షార్ట్ మెథడ్'తో ఇంటర్ఫేస్ చేయడానికి ఇచ్చిన శూన్య కీప్యాడ్ () ఫంక్షన్ ఉపయోగించబడుతుంది.
శూన్య కీప్యాడ్ () {int i, j; int x = 0, k = 0; ఆలస్యం (2000); (k <4) {(i = 0; i <4; i ++) {DigitalWrite (col, LOW); (j = 0; j <4; j ++) {if (DigitalRead (row) == 0) {setCursor (x, 1);…………………
దిగువ పూర్తి కోడ్లోని అన్ని విధులను తనిఖీ చేయండి, కోడ్ సులభం మరియు స్వీయ వివరణాత్మకమైనది.