- अवयव:
- सर्किट स्पष्टीकरण:
- Arduino में फीडिंग नॉकिंग पैटर्न:
- कार्य स्पष्टीकरण:
- प्रोग्रामिंग स्पष्टीकरण:
हमारे दैनिक जीवन में सुरक्षा एक प्रमुख चिंता का विषय है, और डिजिटल ताले इन सुरक्षा प्रणालियों का एक महत्वपूर्ण हिस्सा बन गए हैं। हमारे स्थान को सुरक्षित करने के लिए कई प्रकार की सुरक्षा प्रणालियाँ उपलब्ध हैं। कुछ उदाहरण पीआईआर आधारित सुरक्षा प्रणाली, आरएफआईडी आधारित सुरक्षा प्रणाली, डिजिटल लॉक सिस्टम, बायो-मैट्रिक्स सिस्टम, इलेक्ट्रॉनिक्स कोड लॉक हैं। इस पोस्ट में, हम Arduino का उपयोग करके एक सीक्रेट नॉक डिटेक्टिंग डोर लॉक का निर्माण करते हैं जो कि दरवाजे पर आपके नॉक के पैटर्न का पता लगा सकता है और केवल लॉक को खोलेगा यदि नॉकिंग पैटर्न सही पैटर्न के साथ मेल खाता है। उचित कार्य डेमो के लिए, अंत में वीडियो की जांच करें ।
अवयव:
- अरुडिनो उनो
- बटन दबाओ
- बजर
- 1M रोकनेवाला
- शक्ति
- तारों को जोड़ना
- डिब्बा
- सर्वो मोटर
सर्किट स्पष्टीकरण:
इस नॉकिंग पैटर्न डिटेक्टर का सर्किट आरेख बहुत सरल है जिसमें प्रोजेक्ट की पूरी प्रक्रिया, पुश बटन, बजर, और सर्वो मोटर को नियंत्रित करने के लिए Arduino होता है। Arduino पासवर्ड बनाने की पूरी प्रक्रिया को नियंत्रित करता है जैसे Buzzer या Sensor, पैटर्न की तुलना करना, सर्वो को ड्राइविंग के लिए खोलना और बंद करना और Arduino को पैटर्न को बचाना।
पुश बटन सीधे जमीन के संबंध में Arduino के D7 पिन से जुड़ा हुआ है। और एक बजर ग्राउंड के संबंध में अरुडिनो के एनालॉग पिन ए 0 पर जुड़ा हुआ है और ए 1 और ग्राउंड के बीच 1 एम प्रतिरोध के साथ भी है। एक सर्वो मोटर Arduino के PWM पिन डी 3 से भी जुड़ी है।
Arduino में फीडिंग नॉकिंग पैटर्न:
इस सर्किट में, हमने सिस्टम में नॉक इनपुट पैटर्न लेने के लिए Buzzer या Peizo Sensor का उपयोग किया है। यहाँ हम सेंसर से इनपुट लेने की अनुमति देने के लिए एक पुश बटन का उपयोग कर रहे हैं और इसे Arduino में भी सहेज सकते हैं। इस प्रणाली को मोर्स कोड पैटर्न से विचार करके बनाया गया है लेकिन इसके साथ बिल्कुल समान नहीं है।
यहां हमने प्रदर्शन के लिए कार्ड बोर्ड बॉक्स का उपयोग किया है। इनपुट लेने के लिए हम पुश बटन दबाने के बाद बोर्ड पर दस्तक देते हैं। यहां हमने एक समयावधि को ध्यान में रखते हुए दस्तक दी है जो कि 500ms है। यह 500ms है क्योंकि हमने इसे कोड में तय किया है और इनपुट पैटर्न इसके आधार पर है। यह 500ms समय अवधि परिभाषित करेगा इनपुट 1 या 0. इस चीज को समझने के लिए नीचे दिए गए कोड की जांच करें।
जब हम इसे खटखटाते हैं, तो Arduino पहली नॉक से दूसरी नॉक तक के समय की निगरानी करना शुरू करता है और इसे एक सरणी में रखता है। यहाँ इस प्रणाली में, हम 6 दस्तक दे रहे हैं। इसका मतलब है कि हमें 5 समय अवधि मिलेगी।
अब हम एक-एक करके समयावधि की जांच करते हैं। सबसे पहले, हम पहली दस्तक और दूसरी दस्तक के बीच की समय अवधि की जांच करते हैं यदि इन 500 से कम के बीच का समय अंतर है तो यह 0 होगा और यदि 500ms से अधिक है तो यह 1 होगा और इसे एक चर में बचाया जाएगा। अब इसके बाद, हम दूसरी दस्तक और तीसरी दस्तक के बीच की समय अवधि की जांच करते हैं।
अंत में, हम 0 और 1 प्रारूप (बाइनरी) में 5 अंकों का आउटपुट प्राप्त करेंगे।
कार्य स्पष्टीकरण:
के कार्य नॉक आधारित स्मार्ट लॉक परियोजना सरल है। पहले हमें सिस्टम में एक पैटर्न को सहेजना होगा। इसलिए हमें 6 बार खटखटाने तक पुश बटन को दबाकर रखना होगा। यहाँ इस परियोजना में, मैंने 6 नॉक का उपयोग किया है, लेकिन उपयोगकर्ता इसे बदल सकते हैं जैसे वे चाहते हैं। छह बार खटखटाने के बाद, Arduino ने दस्तक पैटर्न ढूंढा और EEPROM में उसे बचाया। अब इनपुट पैटर्न को सहेजने के बाद, लॉक खोलने के लिए सेंसर से Arduino पर इनपुट लेने के लिए प्रेस बटन को तुरंत जारी करें। अब हमें 6 बार दस्तक देनी है। इसके बाद, Arduino इसे डीकोड करता है और सहेजे गए पैटर्न के साथ तुलना करता है। अगर कोई मैच होता है तो Arduino सर्वो मोटर चलाकर गेट खोलती है।
नोट: जब हम दबाते हैं या पुश बटन दबाते हैं और Arduino सभी 6 दस्तक लेने के लिए 10 सेकंड का टाइमर शुरू करते हैं। मतलब उपयोगकर्ता को इस 10 सेकंड के समय के भीतर दस्तक देने की आवश्यकता है। और उपयोगकर्ता लॉग देखने के लिए सीरियल मॉनिटर खोल सकता है।
प्रोग्रामिंग स्पष्टीकरण:
एक कार्यक्रम में सबसे पहले हम हेडर फ़ाइल को शामिल करते हैं और इनपुट और आउटपुट पिन को परिभाषित करते हैं और मैक्रो और घोषित चर को परिभाषित करते हैं जैसा कि आप नीचे दिए गए कोड अनुभाग में पूर्ण कोड में देख सकते हैं।
इसके बाद, सेटअप फ़ंक्शन में, हम परिभाषित पिन को दिशा देते हैं और सर्वो मोटर शुरू करते हैं।
शून्य सेटअप () {pinMode (sw, INPUT_PULLUP); myServo.attach (इमदादी); myServo.write (180); सीरियल.बेगिन (9600); }
इसके बाद, हम इनपुट लेते हैं और इनपुट पैटर्न को सहेजते हैं या किसी ऐरे में समय देते हैं।
शून्य लूप () {int i = 0; if (digitalRead (sw) == LOW) {Serial.println ("प्रारंभ"); देरी (1000); long stt = millis (); जबकि (मिली () <(stt + patternInputTime)) {int temp = analogRead (A0); if (अस्थायी> संवेदनशीलता और& ध्वज == 0 && i <= patternLenth) {………….
इसके बाद, हम इनपुट पैटर्न को डिकोड करते हैं
for (int i = 0; मैं;
और फिर सेव करें यदि पुश बटन अभी भी दबाया गया है
if (digitalRead (sw) == 0) {for (int i = 0; i)
और अगर पुश बटन अभी भी दबाया नहीं गया है तो Arduino सहेजे गए पैटर्न के साथ इनपुट डीकोड किए गए पैटर्न की तुलना करेगा।
और {अगर (नॉक == 1) {के लिए (इंट i = 0; मैं;
यदि कोई पासवर्ड मेल खाता है, तो इमदादी गेट खोलें अन्यथा कुछ भी नहीं हुआ, लेकिन उपयोगकर्ता सीरियल मॉनिटर पर परिणाम देख सकता है।
सिरियल.प्रिंटल (स्वीकारफ्लैग); if (acceptFlag> = patternLenth-1) {Serial.println ("स्वीकृत"); myServo.write (ओपनगेट); देरी (5000); myServo.write (closeGate); } और Serial.println ("अस्वीकृत"); }
आप डेमो वीडियो के साथ पूरा कोड नीचे देख सकते हैं ।