हमारे दैनिक जीवन में सुरक्षा एक प्रमुख चिंता का विषय है, और डिजिटल ताले इन सुरक्षा प्रणालियों का एक महत्वपूर्ण हिस्सा बन गए हैं। इस तरह के एक डिजिटल कोड लॉक का उपयोग इस परियोजना में arduino बोर्ड और एक मैट्रिक्स कीपैड का उपयोग करके किया जाता है।
अवयव
- Arduino
- कीपैड मॉड्यूल
- बजर
- 16x2 एलसीडी
- BC547 ट्रांजिस्टर
- रेसिस्टर (1k)
- ब्रेड बोर्ड
- शक्ति
- तारों को जोड़ना
इस सर्किट में हमने सिस्टम में पासवर्ड के इनपुट के लिए मल्टीप्लेक्सिंग तकनीक का इस्तेमाल किया है। यहां हम 4x4 कीपैड का उपयोग कर रहे हैं जिसमें 16 कुंजी हैं। अगर हम 16 चाबियों का उपयोग करना चाहते हैं तो हमें arduino के कनेक्शन के लिए 16 पिन की आवश्यकता होती है लेकिन मल्टीप्लेक्सिंग तकनीक में हमें 16 चाबियों को रखने के लिए केवल 8 पिन का उपयोग करने की आवश्यकता होती है। ताकि यह कीपैड मॉड्यूल को इंटरफ़ेस करने का एक स्मार्ट तरीका है।
मल्टीप्लेक्सिंग तकनीक: इनपुट या पासवर्ड या नंबर प्रदान करने के लिए माइक्रोकंट्रोलर के साथ उपयोग किए जाने वाले पिन की संख्या को कम करने के लिए मल्टीप्लेक्सिंग तकनीक एक बहुत ही कुशल तरीका है। मूल रूप से इस तकनीक का उपयोग दो तरीकों से किया जाता है - एक पंक्ति स्कैनिंग और अन्य एक कोलन स्कैनिंग है। लेकिन इस arduino आधारित परियोजना में हमने कीपैड लाइब्रेरी का उपयोग किया है, इसलिए हमें इस प्रणाली के लिए किसी भी मल्टीप्लेक्स कोड को बनाने की आवश्यकता नहीं है। हमें केवल इनपुट प्रदान करने के लिए कीपैड लाइब्रेरी का उपयोग करने की आवश्यकता है।
सर्किट विवरण
इस परियोजना का सर्किट बहुत सरल है जिसमें Arduino, कीपैड मॉड्यूल, बजर और एलसीडी शामिल हैं। Arduino पासवर्ड फॉर्म कीपैड मॉड्यूल लेने, पासवर्ड की तुलना करने, बजर ड्राइविंग और एलसीडी डिस्प्ले को स्थिति भेजने जैसी पूरी प्रक्रियाओं को नियंत्रित करता है। पासवर्ड लेने के लिए कीपैड का उपयोग किया जाता है। बजर का उपयोग संकेतों के लिए किया जाता है और एलसीडी का उपयोग स्थिति या संदेशों को प्रदर्शित करने के लिए किया जाता है। बजर NPN ट्रांजिस्टर का उपयोग करके संचालित होता है।
कीपैड मॉड्यूल के कॉलम पिन पिन से सीधे जुड़े हुए हैं 4, 5, 6, 7 और आरओ पिन को 3, 2, 1, 0 के अर्दीनो यूनो से जोड़ा जाता है। 4x बिट मोड में एक 16x2 एलसीडी आर्डिनो के साथ जुड़ा हुआ है। कंट्रोल पिन RS, RW और En सीधे Arduino Pin 13, GND और 12. से जुड़े होते हैं और डेटा पिन D4-D7 पिन से 11, 10, 9 और 8 से जुड़े होते हैं। और एक बजर एक BC547 NPN ट्रांजिस्टर के माध्यम से arduino के पिन 14 (A1) से जुड़ा हुआ है।
काम कर रहे
हमने पासवर्ड को बचाने के लिए इनबिल्ट आर्दीनो के EEPROM का उपयोग किया है, इसलिए जब हम पहली बार इस सर्किट को चलाते हैं तो इनबिल्ट arduino के EEPROM से एक कचरा डेटा पढ़ते हैं और इनपुट पासवर्ड से इसकी तुलना करते हैं और एलसीडी पर एक संदेश देते हैं जो एक्सेस अस्वीकृत है क्योंकि पासवर्ड मेल नहीं खाता है। इस समस्या को हल करने के लिए हमें नीचे दिए गए प्रोग्रामिंग का उपयोग करके पहली बार एक डिफ़ॉल्ट पासवर्ड सेट करना होगा:
for (int j = 0; j <4; j ++) EEPROM.write (j, j + 49);
lcd.print ("उर पासकी दर्ज करें:"); lcd.setCursor (0,1); for (int j = 0; j <4; j ++) पास = EEPROM.read (j);
यह Arduino के EEPROM को "1234" पासवर्ड सेट करेगा।
इसे पहली बार चलाने के बाद हमें इसे प्रोग्राम से हटाने और फिर से कोड को अरडूइनो में लिखकर चलाने की आवश्यकता है। अब आपका सिस्टम ठीक चलेगा। और आपके दूसरी बार उपयोग किया गया पासवर्ड अब "1234" है। अब आप इसे # बटन दबाकर बदल सकते हैं और फिर अपना वर्तमान पासवर्ड डालें और फिर अपना नया पासवर्ड दर्ज करें।
जब आप अपना पासवर्ड दर्ज करेंगे, तो सिस्टम आपके द्वारा दर्ज किए गए पासवर्ड की तुलना उस पासवर्ड से करेगा जो कि Arduino के EEPROM में संग्रहीत है। अगर मैच होता है, तो एलसीडी "एक्सेस दी गई" दिखाएगा और यदि पासवर्ड गलत है, तो एलसीडी "एक्सेस अस्वीकृत" और बजर लगातार कुछ समय के लिए बीप करेगा। और बजर भी एक बार बीप करता है जब भी उपयोगकर्ता कीपैड से किसी भी बटन को दबाएगा।
प्रोग्रामिंग विवरण
कोड में हमने कीपैड के लिए arduino के साथ इंटरफेस करने के लिए कीपैड लाइब्रेरी का उपयोग किया है।
#शामिल
const बाइट ROWS = 4; // चार पंक्तियाँ const बाइट COLS = 4; // चार कॉलम चार हेक्सकैयर्स = {{, 1’,, 2’, char 3’, 'ए’},'} 4’,, 5’, '6’,' बी’}, {’7’,’ 8 ',' 9 ',' सी '}, {' * ',' 0 ',' # ',' डी '}}; बाइट पंक्तिपिन = {3, 2, 1, 0}; // कीपैड बाइट colPins की पंक्ति पिनआउट से कनेक्ट करें = {4, 5, 6, 7}; // कीपैड के कॉलम पिनआउट से कनेक्ट करें // क्लास का एक उदाहरण प्रारंभ करें NewKeypad कीपैड customKeypad = कीपैड (MakeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);
हमने एलसीडी लाइब्रेरी को एलसीडी इंटरफेसिंग के लिए शामिल किया है और EEPROM को इंटरलेस करने के लिए हमने लाइब्रेरी EEPROM.h को शामिल किया है, और फिर घटकों के लिए शुरुआती चर और परिभाषित पिंस को शामिल किया है।
# डेफिन बजर 15 लिक्विडकल्चर एलसीडी (13,12,11,10,9,8); चार पासवर्ड; चार पास, पास 1; int i = 0; char customKey = 0;
और फिर हमने एलसीडी को इनिशियलाइज़ किया और सेटअप फंक्शन में पिंस को दिशा दी
शून्य सेटअप () {lcd.begin (16,2); पिनमोड (एलईडी, OUTPUT); पिनमोड (बजर, OUTPUT); पिनमोड (m11, OUTPUT); पिनमोड (m12, OUTPUT); lcd.print ("इलेक्ट्रॉनिक"); lcd.setCursor (0,1); lcd.print ("कीपैड लॉक"); देरी (2000); lcd.clear (); lcd.print ("उर पासकी दर्ज करें:"); lcd.setCursor (0,1);
इसके बाद हम लूप फंक्शन में कीपैड पढ़ते हैं
customKey = customKeypad.getKey (); if (customKey == '#') परिवर्तन (); if (customKey) {पासवर्ड = customKey; lcd.print (customKey); बीप (); }
और फिर स्ट्रिंग तुलना विधि का उपयोग करके पासवर्ड को बचाने के साथ तुलना करें
if (i == 4) {विलंब (200); for (int j = 0; j <4; j ++) पास = EEPROM.read (j); अगर ((strncmp (पासवर्ड, पास, 4))) {digitalWrite (led, HIGH); बीप (); lcd.clear (); lcd.print ("पासकी स्वीकृत"); देरी (2000); lcd.setCursor (0,1); lcd.print ("#। पासकी बदलें"); देरी (2000); lcd.clear (); lcd.print ("पासकी दर्ज करें:"); lcd.setCursor (0,1); i = 0; digitalWrite (एलईडी, कम); }
यह पासवर्ड चेंज फंक्शन और बजर बीप फंक्शन है
शून्य परिवर्तन () {int j = 0; lcd.clear (); lcd.print ("यूआर करंट पासक"); lcd.setCursor (0,1); जबकि (j <4) {char key = customKeypad.getKey (); if (की) {pass1 = key; lcd.print (की); शून्य बीप () {डिजिटलविराइट (बजर, हाई); देरी (20); digitalWrite (बजर, LOW); }