Arduino पर कॉम्बिनेशन लॉक कैसे बनाएं। Arduino का उपयोग करके RFID लॉक बनाना

अरुडिनो है सर्वोत्तम प्रणालीकिसी भी उपकरण की प्रतिलिपि बनाने के लिए. अधिकांश विचार उसके बिना सफल नहीं हो सकते थे। यह विचार लंबे समय से अस्तित्व में है: एक विशेष बनाना संयोजन ताला Arduino पर. इसे खोलने के लिए, आपको एक निश्चित कुंजी दबाए रखनी होगी। ऐसे में लॉक नहीं खुलना चाहिए, भले ही आपको सही बटन का पता हो। इसे खोलने के लिए, आपको मांसपेशियों की स्मृति का उपयोग करके कुछ निश्चित अंतराल बनाए रखने की आवश्यकता है। कोई अपराधी ऐसा काम नहीं कर सकता. लेकिन ये सब सिर्फ एक सिद्धांत है.

इसे एकत्रित करने के लिए आपको इसका उपयोग करना होगा विशेष उपकरणआयताकार दालें, साथ ही कई काउंटर और एक गुच्छा। लेकिन तैयार डिवाइस बढ़िया होगा समग्र आयामऔर इसका उपयोग करना असुविधाजनक होगा. एक नियम के रूप में, ऐसे विचार आपको परेशान करते हैं। मेरे सपने को साकार करने की दिशा में पहला कदम Arduino के लिए एक प्रोग्राम बनाना था। यह कॉम्बिनेशन लॉक के रूप में काम करेगा। इसे खोलने के लिए, आपको एक नहीं, बल्कि कई कुंजी दबानी होंगी और यह काम एक साथ करना होगा। तैयार आरेख इस प्रकार दिखता है:

तस्वीर की गुणवत्ता सर्वोत्तम नहीं है, लेकिन कनेक्शन ग्राउंड, डी3, डी5, डी7, डी9 और डी11 से बना है।

कोड नीचे है:

स्थिरांक int ina = 3; स्थिरांक int inb = 5; स्थिरांक int inc = 9; स्थिरांक पूर्णांक LEDPin = 13; पूर्णांक मैं = 1000; बाइट ए = 0; बाइट बी = 0; बाइट सी = 0; बाइट डी = 0; अहस्ताक्षरित लंबा समय = 0; // वह सब कुछ न भूलें जो मान लेता है millis() unsigned long temp = 0; // अहस्ताक्षरित लंबी बाइट कीया में स्टोर करें = (0, 0, 0, 0, 0, 0, 0, 0); //वास्तविक कोड बाइट कुंजी = (1, 1, 1, 1, 0, 1, 0, 0); बाइट कुंजी = (1, 0, 1, 0, 1, 1, 1, 0); बाइट के = 0; void setup() (pinMode(ina, INPUT_PULLUP); //3 इनपुट बटन से जुड़े हुए हैं PinMode(inb, INPUT_PULLUP); PinMode(inc, INPUT_PULLUP); PinMode(ledPin, OUTPUT); // 13वें पर बिल्ट-इन LED पिन पिनमोड(7, आउटपुट); पिनमोड(11, आउटपुट); डिजिटलराइट(7, लो); //ग्राउंड डिजिटलराइट(11, लो); एलईडी डिजिटलराइट(एलईडीपिन, हाई); डिजिटलराइट(एलईडीपिन, हाई); डिजिटलराइट(एलईडीपिन, 200); // कोड दर्ज करने के लिए संकेत दें) यदि (k == 8) (digitalWrite(ledPin, HIGH); देरी (3000); k = 0 ; ) a = DigitalRead(ina) //सिग्नल स्तर बटन से पढ़े जाते हैं - दबाए गए /नहीं दबाया गया b = डिजिटलरीड(inb); देरी(100); //अगला यदि - झूठी सकारात्मकता के विरुद्ध सुरक्षा, आपको if((digitalRead(ina) == a)&&(digitalRead(inb) = =b)&&(digitalRead(inc)==c)) ( if (a == keya[k]) ( if (b == keyb[k]) ( if (c == keyc[k]) ( k++; ) ) ) ) यदि (k==1) ( यदि (d ==0) ( समय = मिलिस (); d++; ) ) अस्थायी = मिलिस(); तापमान = तापमान - समय; यदि (अस्थायी > 10000) ( k= 0; d=0; समय = मिलिस (; ) )

कोड के संबंध में अनावश्यक प्रश्नों से बचने के लिए कुछ बिंदुओं को स्पष्ट किया जाना चाहिए। सेटअप फ़ंक्शन का उपयोग पोर्ट असाइन करने के लिए किया जाता है। अगला फ़ंक्शन Input_Pullup है, जो पिन वोल्टेज को 5 V तक बढ़ाने के लिए आवश्यक है। यह एक अवरोधक का उपयोग करके किया जाता है। इसके लिए धन्यवाद, विभिन्न शॉर्ट सर्किट. अधिक सुविधा के लिए, ब्लिंकट्वाइस फ़ंक्शन का उपयोग करने की अनुशंसा की जाती है। सामान्य तौर पर, बनाते समय विभिन्न कार्यक्रमअन्य कार्यों को आज़माने की आवश्यकता है।

फ़ंक्शन निर्दिष्ट करने के बाद, सिग्नल को बंदरगाहों से पढ़ा जाता है। यदि बटन दबाया जाता है, तो इसे नंबर 1 द्वारा दर्शाया जाएगा, और यदि नहीं - 2. अगला, सभी मूल्यों का विश्लेषण किया जाता है। उदाहरण के लिए, 0,1,1 जैसा संयोजन दिखाई दिया। इसका मतलब यह है कि पहली कुंजी दबाई गई है, लेकिन अन्य दो नहीं दबाई गई हैं। यदि सभी मान सत्य हैं, तो शर्त 8 भी सत्य है। इसका संकेत फ्रंट पैनल पर लगी एलईडी से मिलता है। इसके बाद, आपको एक विशिष्ट कोड दर्ज करना होगा जिसका उपयोग दरवाजा खोलने के लिए किया जाएगा।

कोड के अंतिम तत्वों का उपयोग काउंटर मानों को रीसेट करने के लिए किया जाता है। यह फ़ंक्शन तब निष्पादित होता है जब अंतिम कुंजी दबाए जाने के बाद 10 सेकंड से अधिक समय बीत चुका हो। इस कोड के बिना हर चीज़ को दोहराना संभव था संभावित विकल्प, हालाँकि उनमें से काफी संख्या में हैं। सृजन के बाद इस डिवाइस काइसका परीक्षण करने की जरूरत है. अधिक

यह प्रोजेक्ट मॉड्यूलर है, यानी. कनेक्ट/डिस्कनेक्ट किया जा सकता है विभिन्न तत्वऔर विभिन्न कार्यक्षमता प्राप्त करें। उपरोक्त चित्र पूर्ण कार्यक्षमता वाला एक विकल्प दिखाते हैं, अर्थात्:

  • लॉकिंग तंत्र. दरवाज़ा खोलने और बंद करने का काम करता है। यह प्रोजेक्ट उपयोग का अन्वेषण करता है तीन अलगतंत्र:
    • सर्वो. बड़े भी हैं, छोटे भी हैं। बहुत कॉम्पैक्ट, और भारी डेडबोल्ट के साथ युग्मित - एक उत्कृष्ट विकल्प
    • इलेक्ट्रिक कार दरवाज़ा लॉक. यह एक बड़ी और शक्तिशाली चीज़ है, लेकिन यह पागलपन भरी धाराओं को ख़त्म कर देती है।
    • सोलनॉइड कुंडी. अच्छा विकल्प, क्योंकि यह अपने आप बंद हो जाता है

    फर्मवेयर सेटिंग्स में आप इनमें से कोई भी चुन सकते हैं तीन प्रकार(सेटिंग लॉक_प्रकार)

  • अंदर बटन. दरवाजे को अंदर से खोलने और बंद करने का काम करता है। इसे दरवाज़े के हैंडल (हथेली की ओर या उंगली की ओर), दरवाज़े पर या चौखट पर रखा जा सकता है
  • बटन बाहर. दरवाजा बंद करने के साथ-साथ ऊर्जा बचाने के लिए जागने का काम करता है। इसे दरवाज़े के हैंडल (हथेली की ओर या उंगली की ओर), दरवाज़े पर या जंब पर रखा जा सकता है
  • खुदरा विपणन में गलियारे के अंत में रखा एक उत्पाद प्रदर्शन पटलदरवाज़ा बंद करने के लिए. दरवाज़ा बंद होने पर ताला स्वचालित रूप से बंद करने का कार्य करता है। यह हो सकता था:
    • चातुर्य बटन
    • दरवाजे पर ही हॉल सेंसर + चुंबक
    • दरवाजे पर ही रीड स्विच + चुंबक
  • गुप्त एक्सेस रीसेट बटन. पासवर्ड रीसेट करने/नया पासवर्ड डालने/नई कुंजी/संयोजन आदि याद रखने के लिए उपयोग किया जाता है। मामले में कहीं छिपा हो सकता है
  • नेतृत्व कियासंचालन को इंगित करने के लिए. आरजीबी एलईडी, लाल और हरे रंग(मिलाने पर वे पीला रंग देते हैं):
    • हरी बत्ती जल रही है - ताला खुला है। रोशनी ताकि आप दरवाज़ा बंद करना न भूलें
    • पीला चालू है - सिस्टम जाग गया है और पासवर्ड दर्ज होने की प्रतीक्षा कर रहा है
    • चमकती लाल - कम बैटरी

इनमें से किसी भी तत्व को सिस्टम से बाहर रखा जा सकता है:

  • हम सीमा स्विच हटा देते हैं। फर्मवेयर में सेटिंग्स में हम इसे अक्षम भी करते हैं (सेटिंग)। टेल_बटन). अब आपको लॉक बंद करने के लिए एक बटन दबाना होगा।
  • बाहरी बटन हटाएँ. फर्मवेयर में सेटिंग्स में हम इसे अक्षम भी करते हैं (सेटिंग)। वेक_बटन). अब सिस्टम को जगाने की जरूरत नहीं है, यह अपने आप जाग जाता है (ऊर्जा की खपत थोड़ी अधिक है)। और अब हमारे पास दरवाज़े के सामने बंद करने का बटन नहीं है, और हमें एक सीमा स्विच की आवश्यकता है। या ताला एक कुंडी है
  • आंतरिक बटन हटाएँ. यह विकल्प अलमारियाँ और तिजोरियों के लिए उपयुक्त है। आपको सेटिंग्स में कुछ भी बदलने की जरूरत नहीं है
  • हम एलईडी हटाते हैं। आपको सेटिंग्स में कुछ भी बदलने की जरूरत नहीं है
  • एक्सेस रीसेट बटन को पहले उपयोग के बाद अनसोल्ड किया जा सकता है, या आपकी आवश्यकताओं के अनुरूप कोड को फिर से लिखा जा सकता है
  • दरवाज़ा बंद, बाहर दबाएँ - उठें, पासवर्ड/आरएफआईडी टैग/इलेक्ट्रॉनिक कुंजी/फ़िंगरप्रिंट इनपुट की प्रतीक्षा करें
  • दरवाज़ा बंद है, सिस्टम सक्रिय है, पासवर्ड डाले जाने की प्रतीक्षा कर रहा है। समय को समायोजित किया जा सकता है (सेटिंग)। सोने का समय)
  • दरवाज़ा बंद है, पासवर्ड/टैग/कुंजी इत्यादि दर्ज किया गया है। - खुला
  • दरवाज़ा बंद है, अंदर दबाएँ - खोलें
  • दरवाज़ा खुला है, बाहर दबाएँ - बंद करें
  • दरवाज़ा खुला है, अंदर दबाएँ - बंद करें
  • दरवाज़ा खुला है, LIMIT दबाया गया है - बंद करें

लॉक को कम ऊर्जा बचत मोड (सक्षम अक्षम: सेटिंग) में बैटरी पावर पर संचालित करने के लिए डिज़ाइन किया गया है नींद_सक्षम), अर्थात्:

  • हर कुछ सेकंड में जागें, ईवेंट की निगरानी करें (यदि बाहर कोई बटन नहीं है तो वैकल्पिक विकल्प। आप इसे सेटिंग्स में सक्षम कर सकते हैं वेक_बटन)
  • हर कुछ मिनटों में बैटरी वोल्टेज की निगरानी करें (चालू/बंद सेटिंग)। बैटरी_मॉनीटर)
  • यदि बैटरी डिस्चार्ज हो जाती है (वोल्टेज सेटिंग में सेट है)। बॅट_लो):
    • दरवाज़ा खोलें (वैकल्पिक, फ़र्मवेयर में कॉन्फ़िगर किया जा सकता है open_bat_low)
    • आगे खोलने और बंद करने पर रोक लगाएं
    • जब आप एक बटन दबाते हैं, तो लाल एलईडी चमकती है
    • ईवेंट की निगरानी करना बंद करें (अर्थात पासवर्ड प्रविष्टि/लेबल, आदि)

जब सिस्टम निष्क्रिय न हो, तो पासवर्ड बदलें बटन (छिपा हुआ बटन) दबाएँ। हम अपने आप को अंदर पाते हैं पासवर्ड परिवर्तन मोड:
संख्याओं वाला पासवर्ड दर्ज करें ( अधिकतम 10 अंक!!!)

  • जब आप * दबाते हैं, तो पासवर्ड मेमोरी में लिखा जाता है और सिस्टम पासवर्ड परिवर्तन से बाहर निकल जाता है
  • जब आप # दबाते हैं, तो पासवर्ड रीसेट हो जाता है (आप इसे दोबारा दर्ज कर सकते हैं)
  • यदि आप 10 सेकंड तक कुछ भी नहीं दबाते हैं, तो हम स्वचालित रूप से पासवर्ड परिवर्तन मोड से बाहर निकल जाएंगे, पुराना पासवर्ड बना रहेगा

जब सिस्टम सो नहीं रहा हो (बटन द्वारा जाग गया हो या स्लीप अक्षम हो गया हो), पासवर्ड प्रविष्टि मोड में प्रवेश करने के लिए * दबाएँ
यदि सिस्टम सोता है और समय-समय पर ईवेंट की जांच करने के लिए उठता है, तो * दबाएं और लाल एलईडी जलने तक दबाए रखें
पासवर्ड मोड:

  • पासवर्ड प्रोसेसिंग इस तरह से की जाती है कि सही पासवर्ड तभी गिना जाता है जब संख्याओं का सही क्रम दर्ज किया जाता है, यानी, यदि पासवर्ड 345 है, तो आप अनुक्रम 345 दिखाई देने तक कोई भी संख्या दर्ज कर सकते हैं, यानी। 30984570345 लॉक खोल देगा क्योंकि यह 345 पर समाप्त होता है।
  • यदि पासवर्ड सही ढंग से दर्ज किया गया है, तो दरवाजा खुल जाएगा
  • यदि आप कुछ भी नहीं दबाते हैं, तो 10 सेकंड के बाद सिस्टम सामान्य (स्टैंडबाय) मोड पर वापस आ जाएगा
  • यदि आप # दबाते हैं, तो हम तुरंत पासवर्ड प्रविष्टि मोड से बाहर निकल जाएंगे
  • यदि आप पासवर्ड प्रविष्टि मोड में गुप्त पासवर्ड परिवर्तन बटन दबाते हैं, तो आप भी इससे बाहर निकल जाएंगे

आज का पाठ एक सरल लॉकिंग सिस्टम बनाने के लिए Arduino के साथ RFID रीडर का उपयोग कैसे करें, इस पर है। सरल शब्दों में- आरएफआईडी लॉक।

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

यह ट्यूटोरियल Arduino के साथ RFID टैग का उपयोग करेगा। डिवाइस प्रत्येक आरएफआईडी टैग के विशिष्ट पहचानकर्ता (यूआईडी) को पढ़ता है जिसे हम रीडर के बगल में रखते हैं और इसे ओएलईडी डिस्प्ले पर प्रदर्शित करता है। यदि टैग का UID Arduino मेमोरी में संग्रहीत पूर्वनिर्धारित मान के बराबर है, तो हमें डिस्प्ले पर "अनलॉक" संदेश दिखाई देगा। यदि अद्वितीय आईडी पूर्वनिर्धारित मान के बराबर नहीं है, तो "अनलॉक" संदेश दिखाई नहीं देगा - नीचे फ़ोटो देखें।

महल बंद है

ताला खुला है

इस प्रोजेक्ट को बनाने के लिए आवश्यक भाग:

  • आरएफआईडी रीडर RC522
  • ओएलईडी डिस्प्ले
  • विकास बोर्ड
  • तारों

अतिरिक्त विवरण:

  • बैटरी (पावरबैंक)

परियोजना के घटकों की कुल लागत लगभग $15 थी।

चरण 2: आरएफआईडी रीडर आरसी522

प्रत्येक आरएफआईडी टैग में एक छोटी चिप होती है (फोटो में दिखाया गया सफेद कार्ड)। यदि आप इस आरएफआईडी कार्ड पर टॉर्च जलाते हैं, तो आप छोटी चिप और इसके चारों ओर लगी कुंडल देख सकते हैं। इस चिप में बिजली पैदा करने के लिए बैटरी नहीं है। यह इस बड़े कॉइल का उपयोग करके वायरलेस तरीके से रीडर से बिजली प्राप्त करता है। इस तरह के आरएफआईडी कार्ड को 20 मिमी दूर से पढ़ना संभव है।

वही चिप आरएफआईडी कुंजी फ़ॉब टैग में भी मौजूद है।

प्रत्येक RFID टैग में एक अद्वितीय संख्या होती है जो उसकी पहचान करती है। यह UID है जो OLED डिस्प्ले पर दिखाया जाता है। इस यूआईडी को छोड़कर, प्रत्येक टैग डेटा संग्रहीत कर सकता है। इस प्रकार के कार्ड में 1 हजार तक डेटा स्टोर किया जा सकता है। प्रभावशाली, है ना? इस सुविधा का उपयोग आज नहीं किया जाएगा. आज, रुचि की बात केवल यूआईडी द्वारा एक विशिष्ट कार्ड की पहचान करना है। आरएफआईडी रीडर और इन दो आरएफआईडी कार्ड की लागत लगभग $4 है।

चरण 3: OLED डिस्प्ले

पाठ में 0.96" 128x64 I2C OLED मॉनिटर का उपयोग किया गया है।

Arduino के साथ उपयोग करने के लिए यह एक बहुत अच्छा डिस्प्ले है। यह एक OLED डिस्प्ले है और इसका मतलब है कि इसमें बिजली की खपत कम है। इस डिस्प्ले की बिजली खपत लगभग 10-20mA है और यह पिक्सेल की संख्या पर निर्भर करती है।

डिस्प्ले का रेजोल्यूशन 128 गुणा 64 पिक्सल है और यह आकार में छोटा है। दो डिस्प्ले विकल्प हैं. एक मोनोक्रोम है, और दूसरा, ट्यूटोरियल में उपयोग किए गए की तरह, दो रंग प्रदर्शित कर सकता है: पीला और नीला। ऊपरी हिस्सास्क्रीन केवल पीली हो सकती है, और निचला भाग- नीला।

यह OLED डिस्प्ले बहुत उज्ज्वल है और इसमें एक शानदार और बहुत अच्छी लाइब्रेरी है जिसे Adafruit ने इस डिस्प्ले के लिए विकसित किया है। इसके अलावा, डिस्प्ले I2C इंटरफ़ेस का उपयोग करता है, इसलिए Arduino से कनेक्ट करना अविश्वसनीय रूप से आसान है।

आपको Vcc और GND को छोड़कर केवल दो तार कनेक्ट करने की आवश्यकता है। यदि आप Arduino में नए हैं और अपने प्रोजेक्ट में एक सस्ता और सरल डिस्प्ले का उपयोग करना चाहते हैं, तो यहां से शुरुआत करें।

चरण 4: सभी भागों को जोड़ना

Arduino Uno बोर्ड के साथ संचार बहुत सरल है। सबसे पहले, पावर को रीडर और डिस्प्ले दोनों से कनेक्ट करें।

सावधान रहें, RFID रीडर को Arduino Uno के 3.3V आउटपुट से कनेक्ट किया जाना चाहिए अन्यथा यह क्षतिग्रस्त हो जाएगा।

चूँकि डिस्प्ले 3.3V पर भी काम कर सकता है, हम VCC को दोनों मॉड्यूल से ब्रेडबोर्ड की पॉजिटिव रेल से जोड़ते हैं। फिर यह बस Arduino Uno से 3.3V आउटपुट से जुड़ी है। फिर हम दोनों ग्राउंड (जीएनडी) को ब्रेडबोर्ड ग्राउंडिंग बस से जोड़ते हैं। फिर हम ब्रेडबोर्ड GND बस को Arduino GND से जोड़ते हैं।

OLED डिस्प्ले → Arduino

एससीएल → एनालॉग पिन 5

एसडीए → एनालॉग पिन 4

आरएफआईडी रीडर → Arduino

आरएसटी → डिजिटल पिन 9

आईआरक्यू → कनेक्ट नहीं है

एमआईएसओ → डिजिटल पिन 12

MOSI → डिजिटल पिन 11

एससीके → डिजिटल पिन 13

एसडीए → डिजिटल पिन 10

RFID रीडर मॉड्यूल Arduino के साथ संचार करने के लिए SPI इंटरफ़ेस का उपयोग करता है। इसलिए हम Arduino UNO से हार्डवेयर SPI पिन का उपयोग करने जा रहे हैं।

आरएसटी पिन डिजिटल पिन 9 पर जाता है। आईआरक्यू पिन डिस्कनेक्ट रहता है। MISO पिन कनेक्ट होता है डिजिटल आउटपुट 12. MOSI पिन डिजिटल पिन 11 पर जाता है। SCK पिन डिजिटल पिन 13 पर जाता है, और अंत में SDA पिन डिजिटल पिन 10 पर जाता है। बस इतना ही।

आरएफआईडी रीडर जुड़ा हुआ है. अब हमें I2C इंटरफ़ेस का उपयोग करके OLED डिस्प्ले को Arduino से कनेक्ट करना होगा। तो डिस्प्ले पर एससीएल पिन पिन 5 के एनालॉग पिन पर जाता है और डिस्प्ले पर एसडीए पिन एनालॉग पिन 4 पर जाता है। यदि हम अब प्रोजेक्ट चालू करते हैं और आरएफआईडी कार्ड को रीडर के पास रखते हैं, तो हम देख सकते हैं कि प्रोजेक्ट ठीक काम कर रहा है.

चरण 5: प्रोजेक्ट कोड

प्रोजेक्ट कोड को संकलित करने के लिए, हमें कुछ पुस्तकालयों को शामिल करने की आवश्यकता है। सबसे पहले, हमें MFRC522 Rfid लाइब्रेरी की आवश्यकता है।

इसे इंस्टॉल करने के लिए यहां जाएं स्केच -> पुस्तकालय शामिल करें -> पुस्तकालय प्रबंधित करें(पुस्तकालय प्रबंधन)। MFRC522 ढूंढें और इसे इंस्टॉल करें।

हमें प्रदर्शन के लिए Adafruit SSD1306 लाइब्रेरी और Adafruit GFX लाइब्रेरी की भी आवश्यकता है।

दोनों लाइब्रेरी स्थापित करें. Adafruit SSD1306 लाइब्रेरी में थोड़े संशोधन की आवश्यकता है। फ़ोल्डर पर जाएँ Arduino -> पुस्तकालय, Adafruit SSD1306 फ़ोल्डर खोलें और लाइब्रेरी संपादित करें Adafruit_SSD1306.h. पंक्ति 70 पर टिप्पणी करें और पंक्ति 69 पर टिप्पणी हटाएँ क्योंकि डिस्प्ले का रेजोल्यूशन 128x64 है।

सबसे पहले हम RFID टैग का मूल्य घोषित करते हैं जिसे Arduino को पहचानने की आवश्यकता है। यह पूर्णांकों की एक सरणी है:

इंट कोड = (69,141,8,136); // यूआईडी

फिर हम आरएफआईडी रीडर को आरंभ करते हैं और प्रदर्शित करते हैं:

Rfid.PCD_Init(); डिस्प्ले.बेगिन(SSD1306_SWITCHCAPVCC, 0x3C);

उसके बाद, लूप फ़ंक्शन में हम हर 100ms पर रीडर पर टैग की जांच करते हैं।

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

यदि(मिलान) (Serial.println('\nमैं इस कार्ड को जानता हूं!'); printUnlockMessage(); )अन्यथा (Serial.println('\nअज्ञात कार्ड'); )

बेशक, आप 1 से अधिक यूआईडी मान संग्रहीत करने के लिए इस कोड को बदल सकते हैं ताकि प्रोजेक्ट अधिक आरएफआईडी टैग को पहचान सके। यह सिर्फ एक उदाहरण है।

परियोजना का कोड:

#शामिल करना #शामिल करना #शामिल करना #शामिल करना #OLED_RESET 4 Adafruit_SSD1306 डिस्प्ले को परिभाषित करें (OLED_RESET); #एसएस_पिन को परिभाषित करें 10 #आरएसटी_पिन को परिभाषित करें 9 एमएफआरसी522 आरएफआईडी(एसएस_पिन, आरएसटी_पिन); // वर्ग MFRC522::MIFARE_Key कुंजी का उदाहरण; पूर्णांक कोड = (69,141,8,136); //यह संग्रहीत UID int CodeRead = 0 है; स्ट्रिंग uidString; शून्य सेटअप() (Serial.begin(9600); SPI.begin(); // Init SPI बस rfid.PCD_Init(); // Init MFRC522 डिस्प्ले.begin(SSD1306_SWITCHCAPVCC, 0x3C); // I2C addr 0x3D के साथ प्रारंभ करें (128x64 के लिए) // बफ़र साफ़ करें।

डिस्प्ले.सेटटेक्स्टसाइज(2);

डिस्प्ले.सेटकर्सर(10,0);

डिस्प्ले.प्रिंट ("आरएफआईडी लॉक");

इलेक्ट्रॉनिक लॉक सिस्टम बनाने के लिए कई विकल्प हैं। इसका उपयोग अक्सर दरवाजे, दराज और अलमारियाँ बंद करने के लिए किया जाता है। और कैश और गुप्त तिजोरियाँ बनाने के लिए भी। इसलिए, आपको एक ऐसा लेआउट बनाने की ज़रूरत है जिसके साथ काम करना सुविधाजनक हो और जो सिस्टम की संरचना को अंदर और बाहर से स्पष्ट रूप से और विस्तार से दिखा सके। इसलिए मैंने एक दरवाजे के साथ एक फ्रेम बनाने का फैसला किया। ऐसा करने के लिए आपको एक वर्गाकार बीम 30 x 30 की आवश्यकता होगी। प्लाईवुड 10 मिमी। दरवाजे का कब्ज़ा. शुरू में मैं एक प्लाईवुड बॉक्स बनाना चाहता था, लेकिन मुझे याद आया कि कमरा स्पेयर पार्ट्स से भरा हुआ था। ऐसा बक्सा रखने के लिए कहीं नहीं है। इसलिए, एक मॉक-अप बनाया जाएगा. अगर कोई अपने लिए इलेक्ट्रॉनिक लॉक लगाना चाहता है तो वह लेआउट को देखकर आसानी से सब कुछ दोहरा सकता है।

आपको इस चीनी स्टोर में महल के लिए आवश्यक सभी चीजें मिलेंगी।

लक्ष्य इलेक्ट्रॉनिक तालों के लिए सबसे कुशल सर्किट और फर्मवेयर विकसित करना है। आप इन परिणामों का उपयोग इन प्रणालियों को अपने दरवाजे, दराज, अलमारियाँ और छिपने के स्थानों पर स्थापित करने के लिए कर सकते हैं।


दरवाज़ा तैयार है. अब हमें यह पता लगाने की जरूरत है कि इलेक्ट्रॉनिक रूप से कैसे खोलें और बंद करें। Aliexpress का एक शक्तिशाली सोलनॉइड लैच इन उद्देश्यों के लिए उपयुक्त है (उपरोक्त स्टोर से लिंक)। यदि आप टर्मिनलों पर वोल्टेज लागू करते हैं, तो यह खुल जाएगा। कुंडल प्रतिरोध लगभग 12 ओम है, जिसका अर्थ है कि 12 वोल्ट के वोल्टेज पर कुंडल लगभग 1 एम्पीयर की खपत करेगा। लिथियम बैटरी और बूस्ट मॉड्यूल दोनों इस कार्य का सामना कर सकते हैं। उचित वोल्टेज पर समायोजित करें. हालाँकि थोड़ा और भी संभव है. कुंडी दरवाजे के अंदर कुछ दूरी पर लगी होती है ताकि वह किनारे पर न लगे और पटककर बंद न हो सके। कुंडी में धातु के बक्से के रूप में एक समकक्ष होना चाहिए। इसके बिना इसका प्रयोग असुविधाजनक एवं गलत है। हमें कम से कम सामान्य ऑपरेशन का आभास देने के लिए एक कदम स्थापित करना होगा।

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

सर्वो दो प्रकार के होते हैं. छोटे कमज़ोर और बड़े शक्तिशाली जिन्हें आसानी से गंभीर धातु पिनों के छेद में धकेला जा सकता है। दोनों विकल्पों में दरवाजे और दराज दोनों पर काम दिखाया गया है। आपको वापस लेने योग्य दीवार में एक छेद बनाकर बॉक्स के साथ छेड़छाड़ करनी होगी।

दूसरा हिस्सा

प्रगति स्थिर नहीं है और अपार्टमेंट, गैरेज और घरों के दरवाजों पर "स्मार्ट ताले" तेजी से दिखाई दे रहे हैं।

ऐसा ही लॉक आपके स्मार्टफोन पर बटन दबाने पर खुलता है। सौभाग्य से, स्मार्टफोन और टैबलेट पहले ही हमारे रोजमर्रा के जीवन में प्रवेश कर चुके हैं। कुछ मामलों में, "स्मार्ट लॉक" Google ड्राइव जैसी "क्लाउड सेवाओं" से जुड़े होते हैं और दूर से खोले जाते हैं। इसके अलावा, यह विकल्प अन्य लोगों को दरवाजा खोलने की सुविधा देना संभव बनाता है।

यह प्रोजेक्ट Arduino पर स्मार्ट लॉक का DIY संस्करण लागू करेगा, जिसे दुनिया में कहीं से भी दूर से नियंत्रित किया जा सकता है।

इसके अलावा, प्रोजेक्ट में फिंगरप्रिंट की पहचान करने के बाद लॉक खोलने की क्षमता भी जोड़ी गई है। इस उद्देश्य के लिए, एक फिंगरप्रिंट सेंसर एकीकृत किया जाएगा। दोनों दरवाजा खोलने के विकल्प एडफ्रूट आईओ प्लेटफॉर्म द्वारा संचालित होंगे।

इस तरह का ताला आपके स्मार्ट होम प्रोजेक्ट में एक बेहतरीन पहला कदम हो सकता है।

फ़िंगरप्रिंट सेंसर सेट करना

फ़िंगरप्रिंट सेंसर के साथ काम करने के लिए, Arduino के लिए एक उत्कृष्ट लाइब्रेरी है, जो सेंसर स्थापित करने की प्रक्रिया को बहुत सरल बनाती है। यह प्रोजेक्ट Arduino Uno का उपयोग करता है। इंटरनेट से कनेक्ट करने के लिए Adafruit CC3000 बोर्ड का उपयोग किया जाता है।

आइए बिजली जोड़ने से शुरुआत करें:

  • Arduino बोर्ड से 5V पिन को लाल पावर रेल से कनेक्ट करें;
  • Arduino से GND पिन सोल्डरलेस सर्किट बोर्ड पर नीली रेल से जुड़ता है।

आइए फ़िंगरप्रिंट सेंसर को कनेक्ट करने के लिए आगे बढ़ें:

  • सबसे पहले बिजली कनेक्ट करें. ऐसा करने के लिए, लाल तार +5 वी रेल से जुड़ा है, और काला तार जीएनडी रेल से जुड़ा है;
  • सेंसर का सफेद तार Arduino पर पिन 4 से जुड़ता है।
  • हरा तार माइक्रोकंट्रोलर पर पिन 3 पर जाता है।

अब CC3000 मॉड्यूल पर चलते हैं:

  • हम CC3000 बोर्ड से IRQ पिन को Arduino पर पिन 2 से जोड़ते हैं।
  • VBAT - 5 पिन करने के लिए.
  • सीएस - 10 पिन करने के लिए.
  • इसके बाद, आपको SPI पिन को Arduino से कनेक्ट करना होगा: MOSI, MISO और CLK - क्रमशः 11, 12 और 13 पिन से।

खैर, अंत में आपको बिजली प्रदान करने की आवश्यकता है: विन - Arduino 5V (आपके सर्किट बोर्ड पर लाल रेल), और GND से GND (ब्रेडबोर्ड पर नीली रेल)।

पूरी तरह से इकट्ठे प्रोजेक्ट की एक तस्वीर नीचे दिखाई गई है:

एक स्केच विकसित करने से पहले जो Adafruit IO पर डेटा लोड करेगा, आपको अपने फिंगरप्रिंट के बारे में डेटा को सेंसर में स्थानांतरित करना होगा। अन्यथा, वह भविष्य में आपको पहचान नहीं पाएगा;)। हम अलग से Arduino का उपयोग करके फिंगरप्रिंट सेंसर को कैलिब्रेट करने की सलाह देते हैं। यदि आप पहली बार इस सेंसर के साथ काम कर रहे हैं, तो हमारा सुझाव है कि आप कैलिब्रेशन प्रक्रिया और फिंगरप्रिंट सेंसर के साथ काम करने के विस्तृत निर्देशों से परिचित हो जाएं।

यदि आपने पहले से ऐसा नहीं किया है, तो कृपया Adafruit IO के साथ एक खाता बनाएं।

इसके बाद, हम Arduino पर "स्मार्ट लॉक" विकसित करने के अगले चरण पर आगे बढ़ सकते हैं: अर्थात्, एक स्केच विकसित करना जो Adafruit IO को डेटा संचारित करेगा। चूँकि कार्यक्रम काफी व्यापक है, इस लेख में हम केवल इसके मुख्य भागों पर प्रकाश डालेंगे और उन पर विचार करेंगे, और फिर हम GitHub का एक लिंक प्रदान करेंगे, जहाँ आप पूरा स्केच डाउनलोड कर सकते हैं।

स्केच सभी आवश्यक पुस्तकालयों को लोड करने से शुरू होता है:

#शामिल करना

#शामिल करना

#शामिल करना

#शामिल है "Adafruit_MQTT.h"

#शामिल है "Adafruit_MQTT_CC3000.h"

#शामिल करना

#शामिल करना >

इसके बाद, आपको अपने वाईफाई नेटवर्क के पैरामीटर डालकर, एसएसआईडी और पासवर्ड निर्दिष्ट करके स्केच को थोड़ा सही करना होगा:

#WLAN_SECURITY WLAN_SEC_WPA2> परिभाषित करें

इसके अलावा, आपको अपने Adafruit IO खाते में लॉग इन करने के लिए अपना नाम और AIO कुंजी दर्ज करनी होगी:

#एआईओ_सर्वरपोर्ट 1883 को परिभाषित करें

#AIO_USERNAME को परिभाषित करें "adafruit_io_name"

#AIO_KEY "adafruit_io_key">परिभाषित करें

निम्नलिखित पंक्तियाँ फ़िंगरप्रिंट सेंसर से डेटा को इंटरैक्ट करने और संसाधित करने के लिए ज़िम्मेदार हैं। यदि सेंसर सक्रिय था (फिंगरप्रिंट का मिलान हुआ), तो "1" होगा:

स्थिरांक चार FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/feeds/fingerprint";

Adafruit_MQTT_प्रकाशित फ़िंगरप्रिंट = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

इसके अलावा, हमें अपने सेंसर के लिए SoftwareSerial ऑब्जेक्ट का एक उदाहरण बनाने की आवश्यकता है:

सॉफ़्टवेयर सीरियल mySerial(3, 4);

इसके बाद हम अपने सेंसर के लिए एक ऑब्जेक्ट बना सकते हैं:

Adafruit_Fingerprint फिंगर = Adafruit_Fingerprint(&mySerial);

स्केच के अंदर हम इंगित करते हैं कि भविष्य में किस फिंगरआईडी को लॉक सक्रिय करना चाहिए। यह उदाहरण 0 का उपयोग करता है, जो सेंसर द्वारा उपयोग किए गए पहले फ़िंगरप्रिंट की आईडी से मेल खाता है:

पूर्णांक उंगली आईडी = 0;

इसके बाद, हम काउंटर शुरू करते हैं और अपने प्रोजेक्ट में देरी करते हैं। मूलतः हम चाहते हैं कि ताला खुलने के बाद स्वचालित रूप से चालू हो जाए। यह उदाहरण 10 सेकंड की देरी का उपयोग करता है, लेकिन आप अपनी आवश्यकताओं के अनुरूप इस मान को समायोजित कर सकते हैं:

पूर्णांक सक्रियण काउंटर = 0;

int अंतिम सक्रियण = 0;

int सक्रियण समय = 10 * 1000;

सेटअप() फ़ंक्शन के मुख्य भाग में, हम फिंगरप्रिंट सेंसर को आरंभ करते हैं और सुनिश्चित करते हैं कि CC3000 चिप आपके वाईफाई नेटवर्क से जुड़ा है।

लूप() फ़ंक्शन के मुख्य भाग में हम Adafruit IO से जुड़ते हैं। इसके लिए निम्नलिखित पंक्ति जिम्मेदार है:

Adafruit IO प्लेटफॉर्म से कनेक्ट होने के बाद हम आखिरी फिंगरप्रिंट की जांच करते हैं। यदि यह मेल खाता है और लॉक सक्रिय नहीं है, तो हम प्रोसेसिंग के लिए Adafruit IO को "1" भेजते हैं:

यदि (फिंगरप्रिंटआईडी == फिंगरआईडी && लॉकस्टेट == गलत) (

Serial.println(F('पहुँच प्रदान की गई!'));

लॉकस्टेट = सत्य;

Serial.println(F('विफल'));

सीरियल.प्रिंटएलएन(एफ('ठीक है!'));

अंतिम सक्रियण = मिलिस();

यदि लूप() फ़ंक्शन के भीतर लॉक सक्रिय है और हम ऊपर बताए गए विलंब मान तक पहुंच गए हैं, तो हम "0" भेजते हैं:

यदि ((एक्टिवेशनकाउंटर - लास्टएक्टिवेशन > एक्टिवेशनटाइम) && लॉकस्टेट == सत्य) (

लॉकस्टेट = गलत;

यदि (! फिंगरप्रिंट.प्रकाशित(राज्य)) (

Serial.println(F('विफल'));

सीरियल.प्रिंटएलएन(एफ('ठीक है!'));

आप GitHub पर कोड का नवीनतम संस्करण डाउनलोड कर सकते हैं।

यह हमारे प्रोजेक्ट का परीक्षण करने का समय है! Arduino के लिए सभी आवश्यक लाइब्रेरी डाउनलोड और इंस्टॉल करना न भूलें!

सुनिश्चित करें कि आपने सब कुछ दर्ज कर लिया है आवश्यक परिवर्तनस्केच में डालें और इसे अपने Arduino पर अपलोड करें। उसके बाद सीरियल मॉनिटर विंडो खोलें।

जब Arduino कनेक्ट होता है वाईफाई नेटवर्क, फ़िंगरप्रिंट सेंसर लाल रंग में झपकेगा। अपनी उंगली सेंसर पर रखें. आईडी नंबर को सीरियल मॉनिटर विंडो में प्रदर्शित किया जाना चाहिए। यदि यह मेल खाता है, तो संदेश "ठीक है!" दिखाई देगा। इसका मतलब है कि डेटा Adafruit IO सर्वर को भेज दिया गया है।

एलईडी के उदाहरण का उपयोग करके लॉक के आगे के कॉन्फ़िगरेशन के लिए आरेख और स्केच

अब आइए परियोजना के उस हिस्से से निपटें जो सीधे प्रबंधन के लिए जिम्मेदार है दरवाज़े का ताला. से जुड़ने के लिए वायरलेस नेटवर्कऔर लॉक को सक्रिय/निष्क्रिय करने की आवश्यकता होगी अतिरिक्त मॉड्यूल Adafruit ESP8266 (ESP8266 मॉड्यूल का Adafruit से होना आवश्यक नहीं है)। नीचे दिए गए उदाहरण का उपयोग करके, आप मूल्यांकन कर सकते हैं कि Adafruit IO का उपयोग करके दो प्लेटफार्मों (Arduino और ESP8266) के बीच डेटा का आदान-प्रदान करना कितना आसान है।

इस अनुभाग में हम सीधे लॉक के साथ काम नहीं करेंगे। इसके बजाय, हम बस एलईडी को उस पिन से जोड़ देंगे जहां बाद में लॉक कनेक्ट किया जाएगा। इससे लॉक डिज़ाइन की बारीकियों में गए बिना हमारे कोड का परीक्षण करना संभव हो जाएगा।

योजना काफी सरल है: सबसे पहले ब्रेडबोर्ड पर ESP8266 स्थापित करें। इसके बाद एलईडी लगा दें। यह न भूलें कि एलईडी का लंबा (सकारात्मक) पैर एक अवरोधक के माध्यम से जुड़ा हुआ है। रोकनेवाला का दूसरा पैर ESP8266 मॉड्यूल पर पिन 5 से जुड़ा है। हम एलईडी के दूसरे (कैथोड) को ESP8266 पर GND पिन से जोड़ते हैं।

पूरी तरह इकट्ठे सर्किटनीचे फोटो में दिखाया गया है.


अब आइए उस स्केच को देखें जिसका उपयोग हम इस प्रोजेक्ट के लिए कर रहे हैं। फिर, कोड काफी बड़ा और जटिल है, इसलिए हम केवल इसके मुख्य भागों को देखेंगे:

हम आवश्यक पुस्तकालयों को जोड़कर शुरू करते हैं:

#शामिल करना

#शामिल है "Adafruit_MQTT.h"

#शामिल है "Adafruit_MQTT_Client.h"

वाईफ़ाई सेटिंग्स कॉन्फ़िगर करना:

#WLAN_SSID को परिभाषित करें "आपका_wifi_ssid"

#WLAN_PASS को परिभाषित करें "आपका_वाईफ़ाई_पासवर्ड"

#WLAN_SECURITY WLAN_SEC_WPA2 को परिभाषित करें

हम Adafruit IO मापदंडों को भी कॉन्फ़िगर करते हैं। पिछले अनुभाग के समान:

#AIO_SERVER को परिभाषित करें "io.adafruit.com"

#एआईओ_सर्वरपोर्ट 1883 को परिभाषित करें

#AIO_USERNAME को परिभाषित करें "adafruit_io_username"

#AIO_KEY परिभाषित करें "adafruit_io_key"

हम इंगित करते हैं कि हमने एलईडी को किस पिन से जोड़ा है (भविष्य में यह हमारा लॉक या रिले होगा):

int रिलेपिन = 5;

फ़िंगरप्रिंट सेंसर के साथ इंटरेक्शन, जैसा कि पिछले अनुभाग में है:

स्थिरांक चार LOCK_FEED PROGMEM = AIO_USERNAME "/feeds/lock";

Adafruit_MQTT_सब्सक्राइब लॉक = Adafruit_MQTT_सब्सक्राइब(&mqtt, LOCK_FEED);

सेटअप() फ़ंक्शन के मुख्य भाग में हम इंगित करते हैं कि जिस पिन से एलईडी जुड़ा है, उसे आउटपुट मोड में काम करना चाहिए:

पिनमोड (रिलेपिन, आउटपुट);

लूप() लूप के भीतर, हम पहले जांचते हैं कि क्या हम Adafruit IO से जुड़े हैं:

इसके बाद हम चेक करते हैं कि क्या सिग्नल मिल रहा है. यदि "1" प्रसारित होता है, तो हम उस पिन को सक्रिय करते हैं जिसे हमने पहले घोषित किया था, जिससे हमारा एलईडी जुड़ा हुआ है। यदि हमें "0" प्राप्त होता है, तो हम संपर्क को "निम्न" स्थिति में स्थानांतरित कर देते हैं:

Adafruit_MQTT_सदस्यता *सदस्यता;

जबकि ((सदस्यता = mqtt.readSubscription(1000))) (

यदि (सदस्यता == &लॉक) (

सीरियल.प्रिंट(एफ('मिला:'));

सीरियल.प्रिंटएलएन((चार *)लॉक.लास्ट्रेड);

// कमांड को स्ट्रिंग डेटा में सेव करें

स्ट्रिंग कमांड = स्ट्रिंग((char *)lock.lastread);

यदि (कमांड == "0") (

डिजिटलराइट(रिलेपिन, कम);

यदि (कमांड == "1") (

डिजिटलराइट(रिलेपिन, हाई);

खोजो नवीनतम संस्करणआप स्केच को GitHub पर डाउनलोड कर सकते हैं।

यह हमारे प्रोजेक्ट का परीक्षण करने का समय है। अपने Arduino के लिए सभी आवश्यक लाइब्रेरी डाउनलोड करना न भूलें और जांचें कि क्या आपने स्केच में सही बदलाव किए हैं।

ESP8266 चिप को प्रोग्राम करने के लिए, आप एक साधारण USB-FTDI कनवर्टर का उपयोग कर सकते हैं।

स्केच को Arduino पर अपलोड करें और सीरियल मॉनिटर विंडो खोलें। इस स्तर पर, हमने बस यह जांचा कि क्या हम Adafruit IO से कनेक्ट करने में सक्षम हैं: हम आगे उपलब्ध कार्यक्षमता को देखेंगे।

परियोजना का परीक्षण

आइए अब परीक्षण शुरू करें! फ़ीड्स मेनू के अंतर्गत, अपने Adafruit IO के उपयोगकर्ता मेनू पर जाएँ। जांचें कि फ़िंगरप्रिंट और लॉक चैनल बनाए गए हैं या नहीं (इनके नीचे प्रिंट स्क्रीन में फ़िंगरप्रिंट और लॉक लाइनें हैं):


यदि वे मौजूद नहीं हैं, तो आपको उन्हें मैन्युअल रूप से बनाना होगा।

अब हमें फ़िंगरप्रिंट और लॉक चैनलों के बीच डेटा विनिमय सुनिश्चित करने की आवश्यकता है। जब फ़िंगरप्रिंट चैनल "1" मान लेता है तो लॉक चैनल को "1" मान लेना चाहिए और इसके विपरीत।

ऐसा करने के लिए, हम एक बहुत शक्तिशाली Adafruit IO टूल का उपयोग करते हैं: ट्रिगर्स। ट्रिगर अनिवार्य रूप से ऐसी स्थितियाँ हैं जिन्हें आप कॉन्फ़िगर किए गए चैनलों पर लागू कर सकते हैं। यानी इनका उपयोग दो चैनलों को आपस में जोड़ने के लिए किया जा सकता है।

Adafruit IO में ट्रिगर अनुभाग से एक नया प्रतिक्रियाशील ट्रिगर बनाएं। यह फिंगरप्रिंट सेंसर और लॉक चैनलों के बीच डेटा का आदान-प्रदान करने की क्षमता प्रदान करेगा:


जब दोनों ट्रिगर कॉन्फ़िगर किए जाते हैं तो इसे इस तरह दिखना चाहिए:

सभी! अब हम वास्तव में अपने प्रोजेक्ट का परीक्षण कर सकते हैं! हमने सेंसर पर अपनी उंगली रखी और देखा कि कैसे Arduino एक एलईडी के साथ विंक करना शुरू कर देता है जो डेटा ट्रांसमिशन से मेल खाती है। इसके बाद, ESP8266 मॉड्यूल पर एलईडी झपकना शुरू कर देनी चाहिए। इसका मतलब है कि उसे MQTT के जरिए डेटा मिलना शुरू हो गया है। इस समय सर्किट बोर्ड पर लगी एलईडी भी चालू होनी चाहिए।

आपके द्वारा स्केच में निर्धारित विलंब (डिफ़ॉल्ट 10 सेकंड है) के बाद, एलईडी बंद हो जाएगी। बधाई हो! आप दुनिया में कहीं से भी अपने फिंगरप्रिंट से एलईडी को नियंत्रित कर सकते हैं!

इलेक्ट्रॉनिक लॉक स्थापित करना

हम परियोजना के अंतिम भाग तक पहुँच गए हैं: Arduino और एक फिंगरप्रिंट सेंसर का उपयोग करके इलेक्ट्रॉनिक लॉक को सीधे कनेक्ट करना और नियंत्रित करना। परियोजना आसान नहीं है, आप सभी स्रोतों का उपयोग उसी रूप में कर सकते हैं जिस रूप में वे ऊपर प्रस्तुत किए गए हैं, लेकिन एक एलईडी के बजाय एक रिले कनेक्ट करें।

लॉक को सीधे कनेक्ट करने के लिए, आपको अतिरिक्त घटकों की आवश्यकता होगी: एक 12 वी बिजली की आपूर्ति, कनेक्टिंग पावर के लिए एक जैक, एक ट्रांजिस्टर (वी इस उदाहरण में IRLB8721PbF MOSFET का उपयोग किया जाता है, लेकिन किसी अन्य का उपयोग किया जा सकता है, उदाहरण के लिए, TIP102 द्विध्रुवी ट्रांजिस्टर। यदि आप द्विध्रुवी ट्रांजिस्टर का उपयोग कर रहे हैं, तो आपको एक अवरोधक जोड़ने की आवश्यकता होगी।

नीचे दिखाया गया है विद्युत आरेखसभी घटकों को ESP8266 मॉड्यूल से जोड़ना:


ध्यान दें कि यदि आप MOSFET ट्रांजिस्टर का उपयोग कर रहे हैं, तो आपको ESP8266 मॉड्यूल के पिन 5 और ट्रांजिस्टर के बीच एक अवरोधक की आवश्यकता नहीं होगी।

पूरी तरह से असेंबल किया गया प्रोजेक्ट नीचे दिए गए फोटो में दिखाया गया है:


FTDI मॉड्यूल का उपयोग करके ESP8266 मॉड्यूल को पावर दें और 12V पावर सप्लाई को जैक से कनेक्ट करें। यदि आपने कनेक्शन के लिए ऊपर अनुशंसित पिन का उपयोग किया है, तो आपको स्केच में कुछ भी बदलने की ज़रूरत नहीं होगी।

अब आप सेंसर पर अपनी उंगली रख सकते हैं: लॉक को आपके फिंगरप्रिंट के जवाब में काम करना चाहिए। नीचे दिया गया वीडियो स्वचालित स्मार्ट लॉक प्रोजेक्ट को क्रियान्वित करता हुआ दिखाता है:

स्मार्ट लॉक परियोजना का और विकास

हमारे प्रोजेक्ट में जारी किया गया रिमोट कंट्रोलअपने फिंगरप्रिंट का उपयोग करके दरवाज़ा लॉक करें।

बेझिझक प्रयोग करें, स्केच और बाइंडिंग को संशोधित करें। उदाहरण के लिए, आप अपने 3डी प्रिंटर, रोबोटिक आर्म या क्वाडकॉप्टर की शक्ति को नियंत्रित करने के लिए इलेक्ट्रॉनिक दरवाज़ा लॉक को रिले से बदल सकते हैं...

आप अपना विकास कर सकते हैं स्मार्ट घर"। उदाहरण के लिए, Arduino पर सिंचाई प्रणाली को दूरस्थ रूप से सक्रिय करें या कमरे में रोशनी चालू करें... यह न भूलें कि आप Adafruit IO का उपयोग करके एक साथ लगभग असीमित संख्या में उपकरणों को सक्रिय कर सकते हैं।

अपनी टिप्पणियाँ, प्रश्न छोड़ें और साझा करें व्यक्तिगत अनुभवनीचे। नए विचार और परियोजनाएँ अक्सर चर्चाओं में पैदा होती हैं!