विषयसूची:

वायरलेस MQTT बेड हेडबोर्ड नियंत्रण: 5 कदम (चित्रों के साथ)
वायरलेस MQTT बेड हेडबोर्ड नियंत्रण: 5 कदम (चित्रों के साथ)

वीडियो: वायरलेस MQTT बेड हेडबोर्ड नियंत्रण: 5 कदम (चित्रों के साथ)

वीडियो: वायरलेस MQTT बेड हेडबोर्ड नियंत्रण: 5 कदम (चित्रों के साथ)
वीडियो: Box Bed में हाइड्रोलिक फिटिंग कैसे लगाते हैं | Hydraulic bed liftup fitting installation 2024, जुलाई
Anonim
वायरलेस MQTT बेड हेडबोर्ड कंट्रोल
वायरलेस MQTT बेड हेडबोर्ड कंट्रोल
वायरलेस MQTT बेड हेडबोर्ड कंट्रोल
वायरलेस MQTT बेड हेडबोर्ड कंट्रोल

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

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

आप जिसके लिए भुगतान करते हैं वह आपको प्राप्त होता है।

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

फिर, कोई भी हमें प्रतिस्थापन बेचने में दिलचस्पी नहीं रखता था। फिर इसने मुझे मारा!

एक मिनट रुको! क्या मैं होम ऑटोमेशन और नियंत्रण प्रणाली का निर्माण नहीं कर रहा हूँ?!?

चरण 1: डिस्कवरी

खोज
खोज
खोज
खोज

मैं देखना चाहता था कि मेरे पास जो कुछ था उसके साथ मैं क्या कर सकता था इसलिए मैंने दोषपूर्ण नियंत्रक को लिया और वाह! वहाँ बहुत बकवास था! यह सब सामान किस लिए था? मैं पीछे हट गया और बस अंदर और बाहर आने वाली रेखाओं को देखा। मैं देख पा रहा था कि एक 12 वोल्ट की आपूर्ति लाइन और एक ग्राउंड लाइन थी। अन्य दो लाइनें ऊपर और नीचे दो बटनों के लिए सिग्नल लाइनों की तरह दिखती थीं। इसलिए, मैंने एक मौका लिया और 12v आपूर्ति को "अप" सिग्नल लाइन पर जम्पर कर दिया। बिस्तर हिलने लगा! फिर मैंने अपने जम्पर वायर को "डाउन" सिग्नल लाइन पर ले जाया और बिस्तर नीचे चला गया!

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

चरण 2: डिजाइन

डिज़ाइन
डिज़ाइन
डिज़ाइन
डिज़ाइन
डिज़ाइन
डिज़ाइन
डिज़ाइन
डिज़ाइन

तो वीसीसी और सिग्नल पिन के बीच एक साधारण संपर्क कनेक्शन की जरूरत है, लेकिन यह मेरे सिस्टम के भीतर कैसे किया जाता है। संपर्कों के लिए दो रिले की आवश्यकता होगी और वायरलेस नियंत्रक के लिए एक ESP8266 काम करेगा। चूंकि रिले को डिजिटल पिन की आपूर्ति की तुलना में अधिक करंट की आवश्यकता हो सकती है, इसलिए नियंत्रक और रिले के बीच ऑप्टोइसोलेटर का उपयोग करना सबसे अच्छा है। यह एक छोटे सिग्नल को एक उच्च वर्तमान स्विच (इस मामले में एक प्रकाश चालित ट्रांजिस्टर) को चालू करने और रिले कॉइल को सुरक्षित रूप से सक्रिय करने की अनुमति देगा। इसके अलावा, एक ऑप्टोइसोलेटर नियंत्रक को किसी भी स्पाइक से अलग करता है जो रिले कॉइल जारी होने और चुंबकीय क्षेत्र के ढहने पर बन सकता है। सौभाग्य से, रिले मॉड्यूल मौजूद हैं जिनमें पहले से ही यह सभी सर्किटरी शामिल हैं और बहुत कम कीमत के लिए।

नियंत्रक के लिए बिस्तर बिजली की आपूर्ति होगी और आपूर्ति की गई 12 वोल्ट को संभालने के लिए, हमें एक परिवर्तनीय हिरन कनवर्टर की आवश्यकता होगी। एक बहुत सस्ता लिंक नीचे दिया गया है और खूबसूरती से काम करता है। 12V लाइन और GND लाइनें कनवर्टर के इनपुट पक्ष से जुड़ती हैं और विनियमित 5 वोल्ट पक्ष NodeMCU के VCC और रिले मॉड्यूल पर VCC पिन से जुड़ता है। कनवर्टर पर जमीन (-) GND पिन से जुड़ती है रिले मॉड्यूल और NodeMCU दोनों।

NodeMCU D1 (GPIO5) और IN2 का उपयोग करके D2 (GPIO4) का उपयोग करके IN1 से जुड़ता है। बेड पर अप सिग्नल लाइन रिले 1 के लिए सामान्य रूप से खुले स्क्रू टर्मिनल से जुड़ती है और डाउन सिग्नल लाइन रिले 2 को सामान्य रूप से खुले टर्मिनल ब्लॉक कनेक्टर से जोड़ती है। आपको 12v तार को कनेक्ट करना होगा जो कि हिरन कनवर्टर के इनपुट पक्ष से जुड़ा है और दोनों रिले 1 और 2 के लिए अन्य टर्मिनल ब्लॉक कनेक्शन से भी जुड़ा है।

पार्ट्स

  • 1 - नोडएमसीयू
  • 1 - वर्तमान अलगाव के साथ द्वंद्वयुद्ध रिले मॉड्यूल
  • 1 - परिवर्तनीय इनपुट/आउटपुट हिरन कनवर्टर
  • 1 - ब्रेडबोर्ड पीसीबी
  • 22 गेज फंसे तांबे के कोर तार
  • 2 - M3x 8 स्क्रू

चरण 3: संलग्नक

दीवार
दीवार

संलग्नक यहां पाया जा सकता है:

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

मैंने बोर्डों को रखने के लिए गर्म गोंद का इस्तेमाल किया लेकिन यह आवश्यक नहीं हो सकता है।

चरण 4: कोड

कोड यहां पाया जा सकता है:

नोट: यह प्रोजेक्ट pubsubclient लाइब्रेरी का उपयोग करता है जिसे Arduino IDE में लाइब्रेरी मैनेजर में जोड़ा जा सकता है।

यहाँ कोड बहुत ही बुनियादी है और इसे होम असिस्टेंट में कवर MQTT प्रकार के आधार पर डिज़ाइन किया गया था। यहां विचार सरल है: जब आप होम असिस्टेंट में अप या डाउन बटन दबाते हैं, तो स्टॉप कमांड प्राप्त होने तक उपयुक्त रिले बंद हो जाता है या सिस्टम अधिकतम सक्रियण समय तक पहुंच जाता है और बंद हो जाता है।

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

मेरे कोड में, यह टाइमआउट 20 सेकंड है और कोड के शीर्ष पर वैश्विक चर ब्लॉक में समायोजित किया जा सकता है।

एक दूसरा सुरक्षा एहतियात हमेशा यह सुनिश्चित करना था कि अगर मैं एक रिले को सक्रिय कर रहा हूं, तो दूसरे को जानबूझकर निष्क्रिय करना हमेशा कहा जाता है, भले ही अंतिम राज्य पहले से ही बंद हो। मैं दोनों सिग्नल लाइनों के नीचे 12v नहीं भेजना चाहता क्योंकि मुझे नहीं पता कि वह बिस्तर पर क्या करेगा।

इसके अलावा, बिस्तर प्रकाशित करता है कि यह हर 60 सेकंड में उपलब्ध है और बस। यहां कोई घंटी या सीटी नहीं है। चूंकि बिस्तर पर स्थिति संबंधी प्रतिक्रिया नहीं है, इसलिए मैं गृह सहायक को वापस नहीं भेज सकती।

चरण 5: उदाहरण एकीकरण

उदाहरण एकीकरण
उदाहरण एकीकरण
उदाहरण एकीकरण
उदाहरण एकीकरण

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

हा में मेरे पास निम्न परिभाषा के साथ एक Cover.yaml फ़ाइल है:

- मंच: mqtt

नाम: "मास्टर बेड हेडबोर्ड" कमांड_टॉपिक: "मास्टर_बेड_कंट्रोल/सीएमडी" उपलब्धता_विषय: "मास्टर_बेड_कंट्रोल/उपलब्धता" क्यूओएस: 0 बनाए रखें: गलत पेलोड_ओपन: "यूपी" पेलोड_क्लोज: "डाउन" पेलोड_स्टॉप: "स्टॉप" पेलोड_उपलब्ध: "ऑनलाइन" पेलोड_नॉट_उपलब्ध: " ऑफ़लाइन" आशावादी: सत्य

यह मुझे मेरे HA इंटरफ़ेस में एक प्रविष्टि देता है जिसमें ऊपर वर्णित कार्रवाई के साथ एक अप/स्टॉप/डाउन बटन सेट है।

इसके अतिरिक्त, मैंने हेडबोर्ड को ऊपर और नीचे करने के लिए अपने बेडसाइड कंट्रोल पैनल (निर्देश योग्य / ब्लॉग पोस्ट) पर दो बटन परिभाषित किए हैं। नियंत्रण कक्ष के बटनों को MQTT सेंसर के रूप में परिभाषित किया गया है:

- मंच: mqtt

State_topic: "bedside_cp1/button5" नाम: "बेडसाइड CP1 बटन 5" आइकन: mdi:circle

- मंच: mqtt

State_topic: "bedside_cp1/button6" नाम: "बेडसाइड CP1 बटन 6" आइकन: mdi:circle

… और प्रत्येक बटन दबाए जाने और जारी किए जाने के लिए 4 स्वचालन नियम। जब दबाया जाता है, तो ऊपर या नीचे कमांड को बिस्तर पर भेजा जाता है, जिसके आधार पर बटन सक्रिय होता है, जब बटन जारी किया जाता है, तो स्टॉप कमांड भेजा जाता है:

- आईडी: '1548308650383'

उपनाम: MBR बेडसाइड CP बटन 5a ट्रिगर: - entity_id: sensor.bedside_cp1_button_5 से: 'ऑफ़' प्लेटफ़ॉर्म: स्थिति से: 'चालू' स्थिति: क्रिया: - डेटा: entity_id: ' Cover.master_bed_headboard' सेवा: cover.open_cover - आईडी: '१५४८३०८७५८९११' उपनाम: एमबीआर बेडसाइड सीपी बटन ५बी ट्रिगर: - entity_id: sensor.bedside_cp1_button_5 फ्रॉम: 'ऑन' प्लेटफॉर्म: स्टेट टू: 'ऑफ' कंडीशन: एक्शन: - डेटा: एंटिटी_आईडी: 'कवर.मास्टर_बेड_हेडबोर्ड' सर्विस: Cover.stop_cover - id: '1548308863495' उपनाम: MBR बेडसाइड CP बटन 6a ट्रिगर: - entity_id: sensor.bedside_cp1_button_6 से: 'ऑफ़' प्लेटफ़ॉर्म: स्थिति से: 'चालू' स्थिति: क्रिया: - डेटा: entity_id: ' कवर.मास्टर_बेड_हेडबोर्ड' सेवा: कवर.क्लोज़_कवर - आईडी: '1548308911467' उपनाम: एमबीआर बेडसाइड सीपी बटन 6बी ट्रिगर: - entity_id: sensor.bedside_cp1_button_6 से: 'ऑन' प्लेटफॉर्म: स्थिति से: 'ऑफ' शर्त: क्रिया: - डेटा: इकाई_आईडी: 'कवर.मास्टर_बेड_हेडबोर्ड' सेवा: कवर.स्टॉप_कवर

सिफारिश की: