- प्रयुक्त घटक:
- मल्टीप्लेक्सिंग का उपयोग करके रास्पबेरी पाई के साथ 4x4 कीपैड कनेक्ट करना:
- सर्किट विवरण:
- कार्य स्पष्टीकरण:
- प्रोग्रामिंग स्पष्टीकरण:
हमारे दैनिक जीवन में सुरक्षा एक प्रमुख चिंता का विषय है, और डिजिटल ताले इन सुरक्षा प्रणालियों का एक महत्वपूर्ण हिस्सा बन गए हैं। हमारी जगह को सुरक्षित करने के लिए कई प्रकार की तकनीकें उपलब्ध हैं, जैसे पीर आधारित सुरक्षा प्रणाली, आरएफआईडी आधारित सुरक्षा प्रणाली, लेजर सुरक्षा अलार्म, बायो-मैट्रिक्स सिस्टम आदि।
हमने पहले Arduino का उपयोग करके पासवर्ड के साथ डिजिटल लॉक का निर्माण किया है और 8051 का उपयोग कर रहे हैं, यहाँ हम उपयोगकर्ता परिभाषित पासवर्ड के साथ रास्पबेरी पाई का उपयोग करके इस डिजिटल लॉक का निर्माण करने जा रहे हैं । पासवर्ड सेट हो जाने के बाद, उपयोगकर्ता केवल सही पासवर्ड के साथ दरवाजे तक पहुंच सकता है।
यदि आप रास्पबेरी पाई से परिचित नहीं हैं, तो हमने रास्पबेरी पाई को सीखने के लिए ट्यूटोरियल की एक श्रृंखला बनाई है, जिसमें सभी बुनियादी घटकों और कुछ सरल परियोजनाओं के साथ हस्तक्षेप करने के लिए, जाँच करें।
प्रयुक्त घटक:
- रास्पबेरी पाई (बूट एसडी कार्ड के साथ)
- कीपैड मॉड्यूल
- बजर
- 16x2 एलसीडी
- 10k पॉट
- 10k रेजिस्टर पैक (पुल-अप)
- एलईडी
- 1k रेसिस्टर
- ब्रेड बोर्ड
- गेट के रूप में सीडी / डीवीडी ट्रॉली
- पावर 5 वोल्ट
- मोटर चालक L293D
- 12 वोल्ट की बैटरी
- तारों को जोड़ना
मल्टीप्लेक्सिंग का उपयोग करके रास्पबेरी पाई के साथ 4x4 कीपैड कनेक्ट करना:
इस सर्किट में, हमने सिस्टम में पासवर्ड दर्ज करने के लिए कीपैड को इंटरफ़ेस करने के लिए मल्टीप्लेक्सिंग तकनीक का उपयोग किया है। यहां हम 16 कुंजी के साथ 4x4 मल्टीप्लेक्स कीपैड का उपयोग कर रहे हैं । आम तौर पर अगर हम 16 चाबियों का उपयोग करना चाहते हैं तो हमें Arduino के कनेक्शन के लिए 16 पिनों की आवश्यकता होती है, लेकिन मल्टीप्लेक्सिंग तकनीक में हमें 16 चाबियों को रखने के लिए केवल 8 पिनों की आवश्यकता होती है। ताकि यह कीपैड मॉड्यूल को इंटरफ़ेस करने का एक स्मार्ट तरीका है। 8051 का उपयोग करके इस डिजिटल लॉक में मल्टीप्लेक्सिंग तकनीक और इसके काम के बारे में अधिक जानें।
इनपुट या पासवर्ड या नंबर प्रदान करने के लिए माइक्रोकंट्रोलर के साथ उपयोग किए जाने वाले पिन की संख्या को कम करने के लिए मल्टीप्लेक्सिंग तकनीक एक बहुत ही कुशल तरीका है। मूल रूप से इस तकनीक का उपयोग दो तरीकों से किया जाता है - एक पंक्ति स्कैनिंग और अन्य एक स्तंभ स्कैनिंग है। अगर हम कीपैड लाइब्रेरी (#include) का
उपयोग करते हैं
लेकिन यहां इस परियोजना में, हमने कीपैड लाइब्रेरी का उपयोग किए बिना, उसी कीपैड के लिए कोडिंग का एक छोटा तरीका लागू किया है । कृपया इसे नीचे प्रोग्रामिंग अनुभाग में देखें।
सर्किट विवरण:
इस रास्पबेरी पाई डिजिटल डोर लॉक का सर्किट बहुत सरल है जिसमें रास्पबेरी पाई 3, कीपैड मॉड्यूल, बजर, डीवीडी / सीडी ट्रॉली गेट और एलसीडी के रूप में है। यहां रास्पबेरी पाई पूरी प्रक्रिया को नियंत्रित करती है जैसे पासवर्ड फॉर्म कीपैड मॉड्यूल लेना, पासवर्ड की तुलना करना, बजर चलाना, गेट खोलना / बंद करना और एलसीडी डिस्प्ले को स्टेटस भेजना। पासवर्ड डालने के लिए कीपैड का उपयोग किया जाता है। बजर का उपयोग संकेतों के लिए किया जाता है और इनबिल्ट एनपीएन ट्रांजिस्टर द्वारा संचालित होता है। एलसीडी का उपयोग उस पर स्थिति या संदेश प्रदर्शित करने के लिए किया जाता है।
कीपैड मॉड्यूल के कॉलम पिन सीधे GPIO पिन 22, 23, 24, 25 से जुड़े होते हैं और रो पिन रास्पबेरी पाई के wringPi पिन के 21, 14, 13, 12 से जुड़े होते हैं। 4x बिट मोड में रास्पबेरी पाई के साथ एक 16x2 एलसीडी जुड़ा हुआ है। LCD का कंट्रोल पिन RS, RW और En सीधे GPIO पिन 11, GND से जुड़ा हुआ है। 10. डेटा पिन D4-D7 GPIO पिन 6, 15, 4 और 1. से जुड़ा है । एक बजर GPIO पिन 8 और मोटर ड्राइवर से जुड़ा है। L293D रास्पबेरी पाई के GPIO पिन 28 और 29 से जुड़ा है। जमीन के संबंध में L293D के पिन 8 पर एक 12 वोल्ट की बैटरी जुड़ी हुई है।
कार्य स्पष्टीकरण:
इस परियोजना का कार्य सरल है। जब उपयोगकर्ता रास्पबेरी पाई में कोड चलाता है, तो एलसीडी कुछ स्वागत संदेश दिखाता है और इसके बाद "ए- इनपुट पासवर्ड" और दूसरी पंक्ति में बी-चेंज पासकी दिखाता है। अब उपयोगकर्ता कीपैड पर ए और बी दबाकर अपनी पसंद का चयन कर सकते हैं।
अब अगर यूजर गेट खोलना चाहता है तो उसे कीपैड पर 'ए' प्रेस करना होगा और फिर सिस्टम पासवर्ड मांगेगा। डिफ़ॉल्ट पासवर्ड "1234" है। अब उपयोगकर्ता को पासवर्ड इनपुट करना होगा और इसके बाद यह सिस्टम पासवर्ड की जांच करेगा, कि यह वैध है या नहीं:
1. यदि उपयोगकर्ता सही पासवर्ड दर्ज करता है, तो सिस्टम गेट खोल देगा।
2. यदि उपयोगकर्ता गलत पासवर्ड दर्ज करता है तो सिस्टम बीजर को बीप करने के लिए कमांड भेजेगा और एलसीडी पर "एक्सेस अस्वीकृत" दिखाता है।
अब मान लें कि उपयोगकर्ता पासवर्ड बदलना चाहता है तो उसे कीपैड पर 'B' प्रेस करना होगा और फिर उपयोगकर्ता से "करंट पासवर्ड" या "करंट पासकी" मांगा जाएगा। अब उपयोगकर्ता को वर्तमान पासवर्ड को इनपुट करने की आवश्यकता है, फिर सिस्टम इसकी शुद्धता की जांच करेगा और दिए गए कार्यों में से एक कार्य करेगा।
1. यदि उपयोगकर्ता सही पासवर्ड दर्ज करता है तो सिस्टम "नया पासवर्ड" मांगेगा और अब उपयोगकर्ता नया पासवर्ड दर्ज करके पासवर्ड बदल सकता है।
2. और यदि उपयोगकर्ता गलत पासवर्ड दर्ज करता है, तो सिस्टम बजर ड्राइव करेगा और एलसीडी पर "गलत पासवर्ड: दिखाता है।"
अब उपयोगकर्ता को पासवर्ड बदलने के लिए पूरी प्रक्रिया को फिर से दोहराना होगा।
मूल रूप से, गेट को खोलना और बंद करना मोटर घड़ी को खोलने और बंद करने के लिए एक मोटर घड़ी वार और एंटी-क्लॉकवाइज को घुमाने के अलावा और कुछ नहीं है। एक छोटी सी परियोजना के लिए आप बस दरवाजे को खोलने और बंद करने के लिए एक डीसी मोटर जोड़ सकते हैं। हम सर्वो या स्टेपर मोटर का भी उपयोग कर सकते हैं, लेकिन हमें तदनुसार कोड को बदलने की आवश्यकता है।
इसके अलावा आप सीडी ट्रॉली के स्थान पर एक उचित इलेक्ट्रॉनिक डोर लॉक (आसानी से उपलब्ध ऑनलाइन) का उपयोग कर सकते हैं । इसमें एक इलेक्ट्रो मैग्नेट होता है जो लॉक (ओपन सर्किट) से गुजरा कोई करंट नहीं होने पर डोर को लॉक रखता है और जब कुछ करंट वहां से गुजरा तो लॉक अनलॉक हो जाता है और दरवाजा खोला जा सकता है। तदनुसार कोड बदल दिया जाएगा, इस साझा परियोजना की समीक्षा भी जांचें: Arduino RFID डोर लॉक
प्रोग्रामिंग स्पष्टीकरण:
प्रोग्रामिंग Arduino के समान है। Arduino फ़ंक्शन कक्षाओं का उपयोग करता है, लेकिन यहां हमने बिना कक्षाओं के c प्रोग्रामिंग का उपयोग करते हुए, इस कोड को किया है। हमने GPIO के लिए एक wiringPi लाइब्रेरी भी स्थापित की है ।
अब सबसे पहले हमें आवश्यक पुस्तकालयों को शामिल करना होगा और फिर एलसीडी, बजर, एलईडी और मोटर के लिए पिन को परिभाषित करना होगा।
#शामिल
इसके बाद कीपैड की पंक्ति और कॉलम के लिए पिन को परिभाषित करें और पासवर्ड और कीपैड नंबर को संग्रहीत करने के लिए सरणी को परिभाषित करें।
चार पास; char pass1 = {'1', '2', '3', '4'}; int n = 0; char row = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{1], '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' सी '}, {' * ',' 0 ',' # ',' डी '}};
इसके बाद हमने एलसीडी को चलाने के लिए कुछ कार्य लिखे हैं:
फंक्शन void lcdcmd का उपयोग LCD पर कमांड भेजने के लिए किया जाता है और void write फ़ंक्शन का उपयोग LCD में डेटा भेजने के लिए किया जाता है।
फंक्शन void प्रिंट का उपयोग LCD को स्ट्रिंग भेजने के लिए किया जाता है।
शून्य प्रिंट (चार * str) {जबकि (* str) {लिखना (* str); str ++; }}
फंक्शन void setCursor का उपयोग LCD में कर्सर स्थिति सेट करने के लिए किया जाता है।
शून्य सेटकोरस (int x, int y) {int सेट = 0; अगर (y == 0) सेट = 128 + x; if (y == 1) सेट = 192 + x; lcdcmd (सेट); }
LCD और शून्य बज़र को साफ़ करने के लिए फंक्शन void clear () का उपयोग किया जाता है और बज़र को बीप करने के लिए उपयोग किया जाता है।
गेट (सीडी ट्रॉली) चलाने के लिए फंक्शन void Gate_open (), void Gate_stop () और void Gate_close () का उपयोग किया जाता है।
void Gate_open () {digitalWrite (m1, LOW); डिजिटलव्रीट (एम 2, हाई); देरी (2000); } void Gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); देरी (2000); } void Gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); देरी (2000); }
4-बिट मोड में एलसीडी को इनिशियलाइज़ करने के लिए दिया गया फंक्शन।
शून्य प्रारंभ (इंट x, इंट y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
यह देखते हुए शून्य कीपैड () फ़ंक्शन का उपयोग रास्पबेरी पाई के साथ 'शॉर्ट विधि' के साथ कीपैड मॉड्यूल को नियंत्रित करने के लिए किया जाता है।
शून्य कीपैड () {int i, j; int x = 0, k = 0; देरी (2000); जबकि (k <4) {के लिए (i = 0; मैं <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (row) == 0) {setCursor (x, 1);…………………
नीचे दिए गए पूर्ण कोड में सभी कार्यों की जांच करें, कोड आसान और आत्म-व्याख्यात्मक है।