विषयसूची:

Arduino RFID डोर लॉक: 5 चरण (चित्रों के साथ)
Arduino RFID डोर लॉक: 5 चरण (चित्रों के साथ)

वीडियो: Arduino RFID डोर लॉक: 5 चरण (चित्रों के साथ)

वीडियो: Arduino RFID डोर लॉक: 5 चरण (चित्रों के साथ)
वीडियो: Arduino RFID Card Door lock System || Multiple Cards (MFRC522) || DIY 2024, नवंबर
Anonim
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक
Arduino RFID डोर लॉक

***अद्यतन 8/9/2010*** मैं अपने गैरेज में प्रवेश करने का एक आसान और सुरक्षित तरीका बनाना चाहता था। आरएफआईडी मेरे दरवाजे को अनलॉक करने का सबसे अच्छा तरीका था, यहां तक कि मेरे हाथ भरे हुए भी मैं दरवाजे को अनलॉक कर सकता हूं और इसे खोल सकता हूं! मैंने इलेक्ट्रॉनिक डोर लॉक को नियंत्रित करने के लिए एक बुनियादी ATMega 168 arduino चिप और एक ID-20 RFID रीडर के साथ एक साधारण सर्किट बनाया। सर्किट में 3 अलग-अलग भाग होते हैं, आरएफआईडी टैग पढ़ने के लिए एक रीडर, रीडर से डेटा स्वीकार करने के लिए एक नियंत्रक और आरजीबी एलईडी और इलेक्ट्रिक डोर लॉक के आउटपुट को नियंत्रित करता है। डोर लॉक को पहले दरवाजे में स्थापित किया जाता है और सही स्थापना सुनिश्चित करने के लिए 9v बैटरी के साथ परीक्षण किया जाता है। ज्यादातर मामलों में आप दरवाजे के लॉक पर एक सामान्य रूप से खुला सर्किट चाहते हैं, या सुरक्षित विफल। इसका मतलब है कि जब कोई करंट नहीं गुजरता है तो दरवाजा बंद रहता है। जब 12vDC डोर लॉक में इलेक्ट्रोमैग्नेट के माध्यम से पारित किया जाता है, तो लॉक में एक प्लेट रास्ता देती है और दरवाजे को स्वतंत्र रूप से खोलने की अनुमति देती है। रीडर को दरवाजे के बाहर रखा जाता है और अंदर से कंट्रोलर से अलग किया जाता है ताकि कोई भी रीडर को तोड़कर और रीडर को शॉर्ट सर्किट करने की कोशिश करके सुरक्षा को दरकिनार न कर सके। नियंत्रक रीडर से सीरियल डेटा प्राप्त करता है और आरजीबी एलईडी और डोर लॉक को नियंत्रित करता है। इस मामले में मैंने दोनों को अलग-अलग ब्रेड बोर्ड पर परीक्षण के लिए रखा है। यहां कार्य प्रणाली का एक वीडियो अवलोकन दिया गया है यह देखने के लिए पढ़ें कि अपने लिए एक कैसे बनाया जाए! **अपडेट करें** सभी कोड, स्कीमैटिक्स और पीसीबी डिजाइनों का परीक्षण और परिशोधन किया गया है। वे सभी यहां 8/9/2010 के रूप में पोस्ट किए गए अंतिम सिस्टम के अपडेट किए गए वीडियो स्थापित और काम कर रहे हैं।

चरण 1: आवश्यक भागों

भागों की जरूरत
भागों की जरूरत

यहां SparkFun.com के पुर्जों और लिंक्स की सूची दी गई है, जहां से मैंने उन्हें खरीदा था। यह उन भागों का मूल सेट है जिन्हें आपको बनाने और Arduino में RFID टैग पढ़ने के लिए arduino और एक सर्किट की आवश्यकता होती है। मैं मान रहा हूं कि आपके पास पहले से ही एक ब्रेडबोर्ड, बिजली की आपूर्ति और हुकअप तार हैं।

Arduino सामग्री

ATmega168 Arduino बूटलोडर के साथ $4.95

क्रिस्टल 16 मेगाहर्ट्ज $1.50

संधारित्र सिरेमिक 22pF $0.25 (x2)

प्रतिरोधी 10k ओम 1/6 वाट पीटीएच $0.25

मिनी पुश बटन स्विच $0.35

ट्रिपल आउटपुट एलईडी आरजीबी - विसरित $1.95

आरएफआईडी सामान

इनमें से कोई एक, 20 की बेहतर रेंज है, 12 छोटी हैआरएफआईडी रीडर आईडी-12 $29.95आरएफआईडी रीडर आईडी-20 $34.95

आरएफआईडी रीडर ब्रेकआउट $0.95

ब्रेक अवे हैडर - सीधे $2.50

आरएफआईडी टैग - 125kHz $1.95

अन्य

TIP31A ट्रांजिस्टर (रेडियो झोंपड़ी/स्थानीय इलेक्ट्रॉनिक्स स्टोर $1.50)

डोर लॉक ईबे से है। डोर फेल सिक्योर एक्सेस कंट्रोल इलेक्ट्रिक स्ट्राइक v5 NO $ 17.50 (kawamall, bay)

चरण 2: Arduino नियंत्रक बनाएँ

Arduino नियंत्रक बनाएँ
Arduino नियंत्रक बनाएँ
Arduino नियंत्रक बनाएँ
Arduino नियंत्रक बनाएँ
Arduino नियंत्रक बनाएँ
Arduino नियंत्रक बनाएँ

बेसिक Arduino के साथ RFID डोर लॉक बनाने का पहला कदम एक बेसिक वर्किंग arduino को ब्रेड बोर्ड करना है। अधिकांश Arduino प्री-फ्लैश ATMega 168 चिप्स पहले से इंस्टॉल किए गए डिफ़ॉल्ट ब्लिंक प्रोग्राम के साथ आते हैं। एक एलईडी को डिजिटल आउटपुट 13 से कनेक्ट करें और सत्यापित करें कि सब कुछ काम कर रहा है।

इस RFID रीडर का हार्डवेयर भाग बहुत सरल होगा यदि हम USB प्रोग्रामर में निर्मित एक नियमित arduino का उपयोग करते हैं। चूंकि मैं इसे दीवार में लगाने की योजना बना रहा हूं और इसे फिर से नहीं छू रहा हूं, इसलिए मैं एक बड़े भारी $ 30 arduino बोर्ड का उपयोग नहीं करना चाहता, जब मैं $ 5 ATMega 168 खरीद सकता हूं और बहुत छोटा कस्टम पीसीबी बना सकता हूं।

क्योंकि मैंने खुद एक बुनियादी Arduino सर्किट बनाने के लिए चुना है, मुझे एक बाहरी USB-> सीरियल FDIT प्रोग्रामर की आवश्यकता है। मैंने 7805 वोल्टेज नियामक से निर्मित बिजली आपूर्ति के साथ नियंत्रक के ईगल स्कीमैटिक्स को शामिल किया है। परीक्षण में मैंने एक ब्रेड बोर्ड बिजली आपूर्ति का उपयोग किया।

एक arduino प्राप्त करने और चलाने के लिए आपको वास्तव में ATMega168 की आवश्यकता होती है, जिस पर arduino सॉफ़्टवेयर फ्लैश होता है, 2x 22pF कैपेसिटर, 16mhz क्रिस्टल, 10k ओम रेसिस्टर, पुश बटन और एक ब्रेडबोर्ड। इसके लिए हुकअप सर्वविदित है लेकिन मैंने सर्किट के लिए संपूर्ण योजनाबद्ध को शामिल किया है।

Arduino 4 आउटपुट को ट्रिगर करने जा रहा है, 1 प्रत्येक रेड/ग्रीन/ब्लू एलईडी के लिए, और 1 TIP31A को ट्रिगर करने के लिए 12vDC को डोर लॉक पर भेजने के लिए। Arduino ID-20 RFID रीडर से अपनी Rx लाइन पर सीरियल डेटा प्राप्त करता है।

चरण 3: RFID रीडर बनाएँ

आरएफआईडी रीडर बनाएं
आरएफआईडी रीडर बनाएं
आरएफआईडी रीडर बनाएं
आरएफआईडी रीडर बनाएं
आरएफआईडी रीडर बनाएं
आरएफआईडी रीडर बनाएं

अब जब आपके पास अपनी आर्डिनो ब्रेड बोर्ड हो गई है और काम कर रहे हैं तो आप सर्किट के आरएफआईडी रीडर हिस्से को एक साथ रख सकते हैं जिसमें सर्किट की स्थिति को इंगित करने के लिए आईडी -10 या आईडी -20 और आरजीबी एलईडी शामिल होंगे। याद रखें कि पाठक बाहर होगा और अंदर नियंत्रक से अलग होगा ताकि कोई आसानी से अंदर न आ सके।

इसे बनाने के लिए, हम प्राथमिक ब्रेड बोर्ड से 5v/ग्राउंड ओवर भेजने जा रहे हैं, जिस पर हम रीडर का निर्माण कर रहे हैं। आरजीबी एलईडी को नियंत्रित करने के लिए आर्डिनो आउटपुट पिन के 3 से 3 तार भी भेजें, प्रत्येक रंग के लिए एक। एक और तार, तस्वीरों में ब्राउन, arduino के Rx सीरियल इनपुट से बात करने के लिए ID-20 के लिए एक सीरियल कनेक्शन होगा। यह कनेक्ट करने के लिए एक बहुत ही सरल सर्किट है। एलईडी के प्रतिरोधक और आईडी -20 पर कुछ बिंदु सही स्थिति निर्धारित करने के लिए जमीन/5v से बंधे हैं।

ब्रेडबोर्ड को आसान बनाने के लिए ID-10/ID-20 स्पार्कफुन एक ब्रेकआउट बोर्ड बेचता है जो आपको लंबे पिन हेडर संलग्न करने की अनुमति देता है जो एक ब्रेड बोर्ड में फिट होने के लिए दूरी पर हैं। यह भाग और पिनहेडर और भागों की सूची में सूचीबद्ध है।

योजनाबद्ध स्ट्रेट फॉरवर्ड और पालन करने में आसान होना चाहिए।

चरण 4: कार्यक्रम

अपने arduino को प्रोग्राम करने का समय। यह एक बुनियादी arduino का उपयोग करके थोड़ा मुश्किल हो सकता है, आपको अपलोड के पहले भाग के पहले और दौरान कई बार रीसेट बटन को दबाना पड़ सकता है। याद रखने के लिए एक बहुत ही महत्वपूर्ण बात, यदि आप अस्थायी रूप से आईडी -20 सीरियल लाइन को Arduino की Rx लाइन से डिस्कनेक्ट नहीं करते हैं, तो आपको एक अपलोड त्रुटि मिलेगी। ATMega168 में केवल 1 Rx इनपुट है और यह प्रोग्रामर से बात करने के लिए कोड अपलोड करने के लिए इसका उपयोग करता है। प्रोग्रामिंग करते समय आईडी -20 को डिस्कनेक्ट करें और जब आपका काम हो जाए तो इसे वापस प्लग करें। मैंने एक FTDI प्रोग्रामर का उपयोग किया है जो आपको USB के माध्यम से केवल 4 तारों के साथ arduino को प्रोग्राम करने की अनुमति देता है। आपको सीधे एक प्लग इन करने की अनुमति देने के लिए नियंत्रक योजनाबद्ध एक पिन हेडर कनेक्शन दिखाता है। स्पार्कफुन भी इस हिस्से को बेचता है लेकिन कई के पास पहले से ही हो सकता है।

आप आसानी से मेरे कोड को अपने arduino पर अपलोड कर सकते हैं और कभी पीछे मुड़कर नहीं देख सकते हैं लेकिन इसमें मजा क्या है? मुझे यह कैसे काम करता है इसके मूल विचार की व्याख्या करें।

सबसे पहले, मुझे कोई बाहरी बटन/स्विच/आदि नहीं चाहिए था और जब भी मैं एक नया कार्ड जोड़ना चाहता था, तो मैं हर बार आर्डिनो को फिर से शुरू नहीं करना चाहता था। इसलिए मैं सर्किट के संचालन को नियंत्रित करने के साथ-साथ दरवाजे के लॉक पर नियंत्रण के लिए केवल आरएफआईडी का उपयोग करना चाहता था।

कार्यक्रम यह इंगित करने के लिए ब्लू एलईडी चालू करता है कि यह एक नया कार्ड पढ़ने के लिए तैयार है। जब कार्ड पढ़ा जाता है तो यह तय करता है कि यह वैध कार्ड है या नहीं, इसकी तुलना वैध कार्डों की सूची से की जाती है। यदि उपयोगकर्ता मान्य है, तो arduino ब्लू एलईडी को बंद कर देता है और 5 सेकंड के लिए ग्रीन एलईडी को चालू कर देता है। यह 5 सेकंड के लिए एक और उच्च आउटपुट भी चालू करता है। यह आउटपुट TIP31A ट्रांजिस्टर से जुड़ा है और छोटे arduino को क्षतिग्रस्त हुए बिना बहुत बड़े 12v 300mA डोर लॉक को नियंत्रित करने की अनुमति देता है। 5 सेकंड के बाद दरवाज़ा लॉक फिर से लॉक हो जाता है और एलईडी वापस नीले रंग में बदल जाती है और दूसरे कार्ड के पढ़ने का इंतज़ार करती है। यदि कार्ड अमान्य है तो LED कुछ सेकंड के लिए RED में बदल जाता है और दूसरे कार्ड की प्रतीक्षा करने के लिए वापस नीले रंग में बदल जाता है।

यह महत्वपूर्ण है कि डोर लॉक अभी भी काम करता है, भले ही आर्डिनो रात भर बिजली खो देता है या रीसेट हो जाता है। इसलिए सभी वैध कार्ड आईडी को EEPROM मेमोरी में स्टोर किया जाता है। ATMega168 में EEPROM मेमोरी के 512 बाइट्स हैं। प्रत्येक आरएफआईडी कार्ड में 5 हेक्स बाइट सीरियल नंबर और 1 हेक्स बाइट चेक योग होता है जिसका उपयोग हम यह सत्यापित करने के लिए कर सकते हैं कि आईडी -20 और आर्डिनो के बीच संचरण में कोई त्रुटि नहीं थी।

पहले बाइट को काउंटर के रूप में उपयोग करके EEPROM में वैध कार्ड संग्रहीत किए जाते हैं। उदाहरण के लिए, यदि 3 वैध कार्ड संग्रहीत हैं, तो EEPROM में पहली बाइट 3 होगी। EEPROM.read(0); = 3. यह जानकर, और यह तथ्य कि प्रत्येक आईडी 5 बाइट्स लंबी है, हम जानते हैं कि 1-5 कार्ड एक है, 6-10 कार्ड 2 है और 11-15 कार्ड 3 है। हम एक लूप बना सकते हैं जो EEPROM के माध्यम से दिखता है। एक बार में 5 बाइट्स और पाठक द्वारा पढ़े गए कार्ड को खोजने का प्रयास करता है।

लेकिन सर्किट स्थापित होने के बाद हम EEPROM में नए कार्ड कैसे जोड़ सकते हैं ?? मैंने अपने पास मौजूद एक RFID कार्ड में पढ़ा है और इसे मास्टर RFID कार्ड होने के लिए हार्ड कोड किया है। इसलिए भले ही पूरे EEPROM को मिटा दिया जाए, फिर भी मास्टर कार्ड काम करेगा। जब भी कोई कार्ड पढ़ा जाता है, तो सबसे पहले यह जांचता है कि क्या यह मास्टर कार्ड है, यदि नहीं, तो यह देखना जारी रखता है कि यह वैध कार्ड है या नहीं। यदि कार्ड मास्टर कार्ड है तो हमारे पास arduino एक "प्रोग्रामिंग मोड" में जाता है, जहां यह RGB को फ्लैश करता है और दूसरे वैध टैग को पढ़ने की प्रतीक्षा करता है। पढ़ा जाने वाला अगला टैग EEPROM में अगले मुक्त स्थान में जोड़ा जाता है और यदि कार्ड EEPROM मेमोरी में पहले से मौजूद नहीं है तो काउंटर को 1 बढ़ा दिया जाता है। पाठक फिर सामान्य मोड में लौट आता है और नए कार्ड के पढ़ने की प्रतीक्षा करता है।

वर्तमान में मैंने कार्ड को हटाने का कोई तरीका प्रोग्राम नहीं किया है क्योंकि कार्ड को हटाने के कारणों की सबसे अधिक संभावना है कि यह खो गया या चोरी हो गया। चूंकि यह संभवतः 1-10 लोगों के साथ उपयोग किया जाएगा, सबसे आसान काम यह होगा कि एक मास्टर इरेज़ कार्ड को हार्ड प्रोग्राम किया जाए जो EEPROM से सभी कार्डों को मिटा देगा और फिर उन सभी को फिर से जोड़ देगा, जिसमें केवल कुछ सेकंड लगते हैं। मैंने EEPROM को मिटाने के लिए कोड जोड़ा है लेकिन मैंने अभी तक इस सुविधा को लागू नहीं किया है।.

कोड एक टेक्स्ट फ़ाइल में भागों की सूची की एक प्रति के साथ संलग्न है।

चरण 5: विस्तार करें

यह केवल कुछ अच्छी चीजें हैं जो आप आरएफआईडी के साथ कर सकते हैं। आप एलसीडी आउटपुट के साथ इसे और अधिक विस्तारित कर सकते हैं, कौन प्रवेश करता है और कब, नेटवर्क/ट्विटर कनेक्शन इत्यादि। मैं इस सर्किट का एक समाप्त पीसीबी संस्करण बनाने की योजना बना रहा हूं। मैंने पहले कभी पीसीबी नहीं बनाया है इसलिए मैं अभी भी भागों के डिजाइन और लेआउट पर काम कर रहा हूं। एक बार जब मैं उन्हें पूरा कर लूंगा तो मैं उन्हें भी पोस्ट करूंगा। मैं किसी को भी मेरे द्वारा लिखे गए कोड को लेने के लिए प्रोत्साहित करता हूं और इसे और भी अच्छी चीजें करने के लिए संशोधित करता हूं!

Arduino प्रतियोगिता में फाइनलिस्ट

सिफारिश की: