विषयसूची:

IoT आउटडोर पालतू दरवाजा: 6 कदम (चित्रों के साथ)
IoT आउटडोर पालतू दरवाजा: 6 कदम (चित्रों के साथ)

वीडियो: IoT आउटडोर पालतू दरवाजा: 6 कदम (चित्रों के साथ)

वीडियो: IoT आउटडोर पालतू दरवाजा: 6 कदम (चित्रों के साथ)
वीडियो: TRIP TO DUBAI | Burj Khalifa, Dubai Mall, Dubai Frame International Travel Vlog | Aayu and Pihu Show 2024, जुलाई
Anonim
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा
IoT आउटडोर पालतू दरवाजा

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

Adafruit IO और IFTTT को मेरे ESP8266 से स्थापित करने और जोड़ने के बाद, मेरे चिकन कॉप के दरवाजे को ऑनलाइन नियंत्रित किया जा सकता है। दरवाजा खोला या बंद किया जा सकता है:

१) ठीक समय पर जब मैं adafruit.io. पर प्रवेश करता हूँ

2) मेरे फोन पर एक बटन दबाकर

3) किसी विशिष्ट नंबर पर टेक्स्ट संदेश भेजकर

4) adafruit.io. पर एक बटन पर क्लिक करके

5) भौतिक बटन दबाकर

उन सुविधाओं के शीर्ष पर, चिकन कॉप का दरवाजा IFTTT ऐप के माध्यम से मेरे फोन पर दरवाजे के साथ किसी भी समस्या के बारे में पुश सूचनाएं भेज सकता है जैसे कि दरवाजा खुलने या बंद होने में विफल।

चूँकि मेरा चिकन कॉप मेरे वाईफाई राउटर से लगभग 500 फीट की दूरी पर है, इसलिए मैंने इस प्रोजेक्ट को पूरा करने के लिए एक 433MHz RFM69HCW ट्रांसमीटर और एक ESP8266 के साथ जोड़े गए रिसीवर का उपयोग किया। हार्डवेयर के साथ एक काला इनडोर ट्रांसमीटर बॉक्स है जो इंटरनेट से जुड़ा है और एक ग्रे आउटडोर रिसीवर बॉक्स है जो मोटर को नियंत्रित करता है।

यह निर्देश आपको मेरे चिकन कॉप के दरवाजे को खोलने या बंद करने वाली 12V मोटर को नियंत्रित करने के लिए आवश्यक हार्डवेयर बनाने की प्रक्रिया में ले जाएगा।

मैंने निम्नलिखित भागों का उपयोग किया:

Adafruit 32u4 433MHz RFM69HCW के साथ - $25

Adafruit MCP23017 I2C 16 इनपुट/आउटपुट पोर्ट विस्तारक IC - $2.95

ESP8266 WiFi के साथ Adafruit पंख HUZZAH - $16.95

एडफ्रूट रेडियो फेदरविंग 433 मेगाहर्ट्ज RFM69HCW - $10

1.6 मिमी मोटे पीसीबी के लिए एडफ्रूट एसएमए कनेक्टर - $ 2.50

एडफ्रूट यूएफएल एसएमए एंटीना कनेक्टर - $0.75

एडफ्रूट आरजीबी पुश बटन - $10.95

12 वी बिजली की आपूर्ति - $7

5वी यूएसबी बिजली की आपूर्ति - $7

माइक्रो यूएसबी केबल - $5

4 चैनल रिले बोर्ड (2 चैनल का उपयोग कर सकते हैं) - $7

DC-DC बक कन्वर्टर (केवल एक का उपयोग किया जाता है लेकिन 5 के पैक के रूप में आता है) - $20

रीड स्विच (चुंबकीय दरवाजा स्विच सेंसर) - $9

2x 433 मेगाहर्ट्ज सर्वदिशात्मक एंटीना - $6

uFL से SMA केबल अडैप्टर (केवल एक का उपयोग किया जाता है लेकिन 2 के पैक के रूप में आता है) - $5

वाटरप्रूफ आउटडोर ABS प्रोजेक्ट बॉक्स - $11

ब्लैक ABS प्रोजेक्ट बॉक्स - $10

20x4 ब्लू कैरेक्टर एलसीडी - $10

12V कार एंटीना मोटर - eBay पर ~$25

तार और प्रतिरोधक

चरण 1: आउटडोर रिसीवर

आउटडोर रिसीवर
आउटडोर रिसीवर
आउटडोर रिसीवर
आउटडोर रिसीवर

बाहरी रिसीवर में Adafruit 32u4 होता है जिसमें 433MHz RFM69HCW कुछ रिले से जुड़ा होता है जो 12V मोटर के लिए बिजली चालू या बंद करता है। ये मॉड्यूल और साथ ही 12V से 5V DC-DC कनवर्टर वाटरप्रूफ ग्रे प्रोजेक्ट बॉक्स के अंदर हैं। अंत में, 32u4 Arduino माइक्रोकंट्रोलर के पिन में से एक से जुड़ा एक दरवाजा स्विच सेंसर है जो यह महसूस करता है कि दरवाजा ठीक से खुला या बंद होना चाहिए या नहीं।

हर 15 सेकंड में, इनडोर ट्रांसमीटर "ओपन" या "क्लोज़" भेजेगा। प्राप्त कमांड के आधार पर, Arduino 32u4 रिले को चालू या बंद कर देगा। मेरे द्वारा चुनी गई मोटर के लिए, जो एक पुरानी कार एंटीना मोटर है, मुझे दो रिले चालू या बंद करना पड़ा क्योंकि मोटर कैसे तारित होती है। मूल रूप से बिजली चालू करने के लिए एक रिले थी और फिर एक और रिले जो नियंत्रित करती थी कि मोटर विस्तारित या वापस ली गई है या नहीं।

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

चरण 2: आउटडोर रिसीवर हार्डवेयर को जोड़ना

आउटडोर रिसीवर हार्डवेयर कनेक्ट करना
आउटडोर रिसीवर हार्डवेयर कनेक्ट करना
आउटडोर रिसीवर हार्डवेयर कनेक्ट करना
आउटडोर रिसीवर हार्डवेयर कनेक्ट करना
आउटडोर रिसीवर हार्डवेयर कनेक्ट करना
आउटडोर रिसीवर हार्डवेयर कनेक्ट करना

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

जैसा कि मैंने ऊपर कहा, जिस मोटर का मैंने इस्तेमाल किया उसे दो रिले की आवश्यकता थी। मैंने पिनआउट की एक तस्वीर शामिल की। दूसरा आप 12V को लाल तार से जोड़ते हैं, अगर इसे बढ़ाया जाए तो मोटर पीछे हट जाएगी। यदि आप एक ही समय में 12V को लाल तार और हरे रंग के तार से जोड़ते हैं, तो मोटर का विस्तार होगा।

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

आपको Adafruit 32u4 में एक एंटीना लगाना होगा। कृपया इस चरण पर एडफ्रूट का वास्तव में अच्छी तरह से समझाया गया ट्यूटोरियल देखें। मैंने बेहतर रेंज पाने के लिए तार के टुकड़े के बजाय बाहरी एंटीना का उपयोग करना चुना।

चरण 3: इंडोर ट्रांसमीटर

इंडोर ट्रांसमीटर
इंडोर ट्रांसमीटर
इंडोर ट्रांसमीटर
इंडोर ट्रांसमीटर
इंडोर ट्रांसमीटर
इंडोर ट्रांसमीटर

इनडोर ट्रांसमीटर में एक एडफ्रूट रेडियो फेदरविंग 433 मेगाहर्ट्ज आरएफएम 69 एचसीडब्ल्यू होता है जो ईएसपी 8266 वाईफाई के साथ एडफ्रूट फेदर हुजाह के शीर्ष पर खड़ा होता है। ये मॉड्यूल 20x4 कैरेक्टर डिस्प्ले और ब्लैक प्रोजेक्ट बॉक्स के अंदर RGB सिल्वर बटन से जुड़े हैं।

डिस्प्ले में NTC सिंक की गई घड़ी, dB में RSSI की ताकत (रेडियो सिग्नल की ताकत को मापता है), चिकन कॉप का दरवाजा खुलने का समय, चिकन कॉप का दरवाजा बंद होने का समय और दरवाजे की वर्तमान स्थिति है। दरवाजा बंद होने पर बटन लाल होता है और दरवाजा खुला होने पर हरा होता है।

यदि बाहरी रिसीवर बिजली खो देता है या 433 मेगाहर्ट्ज सिग्नल किसी भी कारण से नहीं भेजा जा सकता है, तो डिस्प्ले और आरजीबी बटन दो संभावित त्रुटि मोड में से पहले में जाएंगे। पहली त्रुटि मोड में, डिस्प्ले "ERROR! बाहरी रिसीवर को पुनरारंभ करने का प्रयास करें" कहेगा। और बटन का रंग नहीं होगा। अगर दरवाजा स्विच सेंसर पता लगाता है कि दरवाजा ठीक से बंद या खुला नहीं है, तो डिस्प्ले और आरजीबी बटन दो त्रुटि मोड में से दूसरे में जाएंगे। दूसरे त्रुटि मोड में, डिस्प्ले "ERROR! डोर या स्विच सेंसर समस्या" कहेगा। और बटन का रंग नहीं होगा। जब समस्या अपने आप हल हो जाती है, तो डिस्प्ले और RGB बटन वापस सामान्य हो जाएगा। यदि इनमें से कोई भी त्रुटि मोड होता है, तो आप अपने फ़ोन पर पुश सूचनाएँ प्राप्त कर सकते हैं (मैं बाद के चरण में उस सेटअप पर जाऊँगा)।

चरण 4: इंडोर ट्रांसमीटर हार्डवेयर को जोड़ना

इंडोर ट्रांसमीटर हार्डवेयर को जोड़ना
इंडोर ट्रांसमीटर हार्डवेयर को जोड़ना
इंडोर ट्रांसमीटर हार्डवेयर को जोड़ना
इंडोर ट्रांसमीटर हार्डवेयर को जोड़ना

Adafruit Radio FeatherWing 433MHz RFM69HCW को ESP8266 WiFi के साथ Adafruit Feather HUZZAH के शीर्ष पर स्टैक करने के बाद, केवल 2 पिन बचे हैं जिन्हें नहीं लिया गया है, I2C पिन SDA और SCL। यही कारण है कि मैं MCP23017 इंटीग्रेटेड सर्किट (IC) के साथ गया। यह वास्तव में एक अच्छा IC है जो I2C पर किसी भी माइक्रोकंट्रोलर से 16 अतिरिक्त इनपुट / आउटपुट पिन को जोड़ता है। साथ ही, एडफ्रूट-आरजीबी-एलसीडी-शील्ड नामक एक पूर्व-लिखित पुस्तकालय है जो इस आईसी का उपयोग एक चरित्र प्रदर्शन के साथ करता है जो तकनीकी रूप से इस एडफ्रूट उत्पाद के लिए लिखा गया है, हालांकि, यह इस परियोजना के लिए पूरी तरह से काम करता है।

एक चरित्र प्रदर्शन के साथ MCP23017 का उपयोग करने का विचार इस बहुत अच्छी तरह से लिखे गए निर्देश से आता है। कृपया यह देखें!

मैंने उस निर्देश को लिया और कई बटन और एक RGB डिस्प्ले को IC से जोड़ने के बजाय, मैंने केवल एक बटन कनेक्ट किया, जिसके अंदर RGB LED और IC के लिए एक मोनोक्रोम डिस्प्ले था। इसने मुझे अपने मोनोक्रोम डिस्प्ले के लिए बैकलाइट के रूप में आईसी के पिन 1 (आमतौर पर आरजीबी डिस्प्ले की नीली बैकलाइट के लिए उपयोग किया जाता है), पिन 28 (आमतौर पर आरजीबी डिस्प्ले की हरी बैकलाइट के लिए उपयोग किया जाता है) को लाल एलईडी के रूप में परिभाषित करने की अनुमति दी। बटन, और पिन 27 (आमतौर पर आरजीबी डिस्प्ले की लाल बैकलाइट के लिए उपयोग किया जाता है) बटन के अंदर हरे रंग की एलईडी के रूप में। पिन 24 बटन के एक तरफ और दूसरी तरफ जमीन से जुड़ा था। आप ऊपर संलग्न चित्र में बटन का पिनआउट देख सकते हैं (मैंने नीले कैथोड को काट दिया)।

उस निर्देशयोग्य का उपयोग करने के अलावा, जिसे मैंने डिस्प्ले को वायर करने में मदद करने के लिए जोड़ा है, मैंने एक फ्रिट्ज़िंग योजनाबद्ध शामिल किया है जो आपको सब कुछ कनेक्ट करने में मदद करेगा।

आपको इस एडफ्रूट ट्यूटोरियल द्वारा बताए गए फेदरविंग 433 मेगाहर्ट्ज RFM69HCW के शीर्ष पर तीन पिनों को छोटा करना होगा। आपको फेदरविंग 433MHz RFM69HCW में एक एंटीना भी लगाना होगा। कृपया इस चरण पर एडफ्रूट का वास्तव में अच्छी तरह से समझाया गया ट्यूटोरियल देखें। मैंने बेहतर रेंज प्राप्त करने के लिए तार के एक टुकड़े के बजाय एक साइड माउंटेड एसएमए कनेक्टर के साथ एक बाहरी एंटीना का उपयोग करना चुना।

चरण 5: Adafruit. IO और IFTTT से जुड़ना

Adafruit. IO और IFTTT से जुड़ रहा है
Adafruit. IO और IFTTT से जुड़ रहा है
Adafruit. IO और IFTTT से जुड़ रहा है
Adafruit. IO और IFTTT से जुड़ रहा है

एडफ्रूट आईओ:

यदि आपके पास खाता नहीं है, तो कृपया Adafruit. IO के लिए साइन अप करने के लिए इस Adafruit ट्यूटोरियल के निर्देशों का पालन करें। आपको यह भी पढ़ना चाहिए कि फ़ीड और डैशबोर्ड क्या है।

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

पहले चार फ़ीड बनाएं:

1) "चिकन कूप" यह खुले/बंद स्विच के लिए है

2) "चिकन कूप टाइमर" यह खुले टाइमर के लिए है

3) "चिकन कूप टाइमर 2" यह क्लोज टाइमर के लिए है

4) "चिकन कूप त्रुटि संदेश" यह त्रुटि संदेशों के लिए है

चिकन कूप नामक एक डैशबोर्ड बनाएं और नीले + बटन का उपयोग करके 4 ब्लॉक जोड़ें। कृपया ऊपर दिए गए चित्र को देखें कि आपको किस प्रकार के ब्लॉक लगाने चाहिए और साथ ही ब्लॉकों के नाम भी। स्विच की स्थिति को ठीक "खुला" और "बंद" नाम देना सुनिश्चित करें

आईएफटीटीटी:

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

सबसे पहले, यदि आपके पास पहले से एक IFTTT खाता नहीं है, तो एक IFTTT खाता सेट करें। यदि आप मेरे द्वारा बनाए गए पूर्व-निर्मित एप्लेट का उपयोग करना चाहते हैं, तो बस मेरे खाते में नेविगेट करें और अपने इच्छित एप्लेट चालू करें। अन्यथा, आपको अपना स्वयं का बनाना होगा, और आपके द्वारा ऊपर बनाए गए एडफ्रूट फ़ीड की सदस्यता या प्रकाशन करना होगा।

चरण 6: कोड अपलोड करना और वाईफाई एसएसआईडी और पासवर्ड का संपादन

इनडोर ट्रांसमीटर पर कोड अपलोड करने में सक्षम होने के लिए आपको एडफ्रूट ट्यूटोरियल के इस पेज से गुजरना होगा।

बाहरी रिसीवर को कोड अपलोड करने में सक्षम होने के लिए आपको एडफ्रूट ट्यूटोरियल के इस पृष्ठ से गुजरना होगा।

आपको RFM69 लाइब्रेरी, Adafruit_RGBLCDShield लाइब्रेरी, NTC क्लॉक लाइब्रेरी जिसे simpleDSTadjust कहा जाता है, और टिकर लाइब्रेरी इंस्टॉल करनी होगी। आप इसे यहां कैसे करें पर एक ट्यूटोरियल पा सकते हैं।

Arduino IDE खोलें और USB केबल पर "Outdoor_Receiver.ino" कोड को बाहरी Arduino 32u4 पर अपलोड करें।

फिर, "Indoor_Transmitter.ino" खोलें, config.h टैब खोलें, और उद्धरण चिह्नों के अंदर अपना वाईफाई नाम (SSID) और पासवर्ड दर्ज करें। फिर, इस ट्यूटोरियल पेज का अनुसरण करके अपना Adafruit. IO उपयोगकर्ता नाम और IO कुंजी प्राप्त करें और इसे config.h टैब में दर्ज करें।

अगर आपने एडफ्रूट आईओ फीड्स के नाम बदल दिए हैं, तो आपको इंडोर_ट्रांसमीटर मुख्य टैब में कोड को संपादित करना होगा। निम्नलिखित संपादित करें:

AdafruitIO_Feed *toggleSwitch = io.feed("चिकन कूप");

AdafruitIO_Feed *timer = io.feed("चिकन कूप टाइमर");

AdafruitIO_Feed *timer2 = io.feed("चिकन कूप टाइमर 2");

AdafruitIO_Feed *error = io.feed("चिकन कूप त्रुटि संदेश");

आपको बस इतना ही करना चाहिए! यदि आप आगे यह समझना चाहते हैं कि दो रेखाचित्र कैसे काम करते हैं, तो मैंने कोड पर टिप्पणी की। यदि आपके कोई सवाल हैं तो कृपया मुझे बताएं। आपको कामयाबी मिले!

सिफारिश की: