विषयसूची:

ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!): 3 कदम
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!): 3 कदम

वीडियो: ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!): 3 कदम

वीडियो: ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!): 3 कदम
वीडियो: [DIY] Smart Home Automation | NodeMCU | Blynk | Under 10$ | March 2020 | 2024, जुलाई
Anonim
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!)
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!)
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!)
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!)
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!)
ESP8266 के माध्यम से OpenHAB के लिए HRV तापमान (सीरियल कोड उदाहरण!)

HRV - वायरलेस से OpenHAB

यह निर्देश विशेष रूप से उन लोगों के लिए है जिनके पास एचआरवी (हीटिंग रीसर्क्युलेशन वेंटिलेशन) सिस्टम है - हालांकि सर्किट बोर्ड के हिस्से, ओपनहैब कॉन्फ़िगरेशन या अरुडिनो कोड (जैसे टीटीएल सीरियल डेटा पढ़ना) आपकी खुद की परियोजनाओं के लिए आसान हो सकते हैं या सीखने के लिए अच्छी तरह से सेवा कर सकते हैं। यह मानता है कि आपको Arduino IDE का उचित ज्ञान है और ESP8266 चिप क्या है।

परिचय

निम्नलिखित रूपरेखा बताता है कि एक ESP8266 कैसे बनाया जाए जो एक HRV सिस्टम से जुड़ता है और OpenHAB को MQTT संदेशों के माध्यम से छत और घर का तापमान, नियंत्रण कक्ष तापमान और पंखे की गति भेजता है। यह एक ESP8266-01 बोर्ड के साथ काम करने के लिए डिज़ाइन किया गया है (हालाँकि किसी भी ESP8266 3.3V संस्करण के साथ काम करना चाहिए) यदि आपके पास एक वैकल्पिक विक्रेता से समान HRV प्रकार की प्रणाली है, तो आपको यह निर्धारित करने की आवश्यकता होगी कि क्या डेटा TTL सीरियल के रूप में भेजा गया है और यदि ऐसा है तो, डेटा किस संरचना के रूप में भेजा जाता है।

OpenHAB और मच्छर

ESP8266 कोड विशेष रूप से OpenHAB (ओपन सोर्स होम ऑटोमेशन सॉफ्टवेयर) और एक MQTT ब्रोकर जैसे Mosquitto (एक मैसेजिंग सब्सक्राइब/पब्लिश टाइप प्रोटोकॉल जो हल्का और उपकरणों के बीच संचार के लिए बढ़िया है) के साथ काम करने के लिए लिखा गया है। शब्दकोष आपको डराते हैं, एक बार जब आप जान जाते हैं कि वे कैसे काम करते हैं, तो वे वास्तव में उपयोग करने में काफी सरल हैं। मैं एक NTC C. H. I. P (यूएस $ 9 कंप्यूटर) पर OpenHAB का उपयोग करता हूं, हालांकि बहुत से लोग रास्पबेरी पाई या इसी तरह का उपयोग करते हैं। यह ट्यूटोरियल मानता है कि आपने OpenHAB को लागू किया है (यदि आपको OpenHAB की स्थापना में सहायता की आवश्यकता है, तो Makeuseof वेब साइट से इस उत्कृष्ट लेख का अनुसरण करें) आपको Mosquitto (MQTT ब्रोकर) और संबंधित OpenHAB बाइंडिंग को डाउनलोड और इंस्टॉल करने की भी आवश्यकता है। आप इसे अपने नेटवर्क पर कहीं और स्थापित कर सकते हैं, हालाँकि अधिकांश लोग इसे सरल रखने के लिए इसे OpenHAB जैसी ही मशीन पर स्थापित करते हैं।

मच्छर को स्थापित करने के लिए, इस लिंक का अनुसरण करके आप जिस प्रकार के उपकरण का उपयोग कर रहे हैं उसका चयन करें और निर्देशों का पालन करें। क्योंकि C. H. I. P डेबियन (जेसी) चलाता है, आप रास्पबेरी पाई निर्देशों का पालन कर सकते हैं यदि आप अपने होम ऑटोमेशन डिवाइस के लिए C. H. I. P का उपयोग कर रहे हैं (यह भी ध्यान दें, CLI से बूट करने के लिए CHIP को फिर से कॉन्फ़िगर करना सबसे अच्छा है। इसके लिए निर्देश यहां दिए गए हैं)

एक बार जब आपके पास OpenHAB और मच्छर चल रहे हों, तो आपको ESP8266 और कोड के लिए Arduino IDE तैयार करने की आवश्यकता है। सबसे पहले, आपको "PubSubClient" लाइब्रेरी को जोड़ना होगा। Arduino IDE में, मेनू के स्केच पर जाएं, लाइब्रेरी शामिल करें, लाइब्रेरी प्रबंधित करें फ़िल्टर खोज बॉक्स में, PubSubClient टाइप करें, फिर खोज परिणाम हाइलाइट करें और इंस्टॉल करने के लिए क्लिक करें (लेखन के समय, नवीनतम संस्करण 2.6.0 है) आप करेंगे Arduino IDE में ESP8266 बोर्ड जोड़ने की भी आवश्यकता है जो यहां दिए गए निर्देशों का पालन करके किया जा सकता है

यह मुझे क्या देता है?

जैसा कि पहले कहा गया है, यह प्रोजेक्ट आपको OpenHAB GUI (वास्तविक समय में!) में अपने HRV कंट्रोल पैनल की छत, घर, कंट्रोल पैनल तापमान और पंखे की गति को देखने की अनुमति देगा। छवियां दिखाती हैं कि यह मेरे iPhone से कैसा दिखता है, साथ ही आपके द्वारा दिए गए ग्राफ़ अलग-अलग तापमान में ड्रिलिंग करके मिलेगा।

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

इसके अतिरिक्त, मैंने एक ओपनएचएबी दृश्य बनाया है जो 'कंट्रोल' विकल्प पर क्लिक करके बाहरी तापमान (मेरे मामले में वंडरग्राउंड का उपयोग करके मौसम बाध्यकारी ऐड-ऑन द्वारा प्रदान किया गया) बनाम छत और घर के तापमान के बीच तुलना दिखाता है (चित्र के साथ ग्राफ दिखाता है घर, छत और बाहर का तापमान प्लॉट किया गया)। मैं इस डेटा का उपयोग नियमों के अनुसार करने की योजना बना रहा हूं ताकि आवश्यकतानुसार हीटिंग उपकरणों को चालू किया जा सके। बस साइटमैप फ़ाइल में अपने छवि URL में मौसम आइटम जोड़ें और इसे उसी ग्राफ़ पर शामिल करें (उदाहरण: …आइटम = हाउसटेम्प, रूफटेम्प, वेदरटेम्प…)

चरण 1: आवश्यक भागों / विधानसभा

भागों की जरूरत / विधानसभा
भागों की जरूरत / विधानसभा
भागों की जरूरत / विधानसभा
भागों की जरूरत / विधानसभा
भागों की जरूरत / विधानसभा
भागों की जरूरत / विधानसभा

आपको निम्नलिखित भागों की आवश्यकता होगी

  • एक RJ11 स्प्लिटर (यह छत में कंट्रोलर से सिग्नल को कंट्रोल पैनल और ESP8266 में विभाजित करता है)
  • कुछ रिबन केबल और एक RJ11 प्लग (स्प्लिटर से ESP8266 तक तारों को चलाने के लिए)
  • ESP8266-01 (अन्य 3.3V संस्करणों को काम करना चाहिए)
  • TTL तर्क स्तर कनवर्टर (5V -> 3.3V से डेटा बदलने के लिए)
  • AMS1117 3.3V वोल्टेज रेगुलेटर (या समान, HRV 5V से वोल्टेज बदलने के लिए -> 3.3V से पावर ESP8266)
  • 1N5817 schottky डायोड (किसी कारण से इसने ESP पावर पर HRV कंट्रोल पैनल को रीसेट करने से रोकने में मदद की)
  • 10K ओम रेसिस्टर (3.3 वोल्ट रेगुलेटर और ESP CH_PD के बीच पुलअप रेसिस्टर)
  • 10V 10uF कैपेसिटर (या समान, HRV से इनबाउंड पावर को सुचारू और स्थिर करने के लिए)
  • 10V 1uF कैपेसिटर (या समान, ईएसपी को आउटबाउंड पावर को सुचारू और स्थिर करने के लिए)
  • ESP को प्रोग्राम करने के लिए वैकल्पिक स्लाइड बटन (अन्यथा, प्रोग्राम के लिए मैन्युअल रूप से GPIO0 को GND तक खींचने की आवश्यकता है)
  • एक FTDI अडैप्टर (ESP को प्रोग्राम करने के लिए, USB को सीरियल में कनवर्ट करता है)

योजनाबद्ध के अनुसार इकट्ठा करें

ब्रेडबोर्ड छवि दिखाती है कि भागों को कैसे इकट्ठा किया जाना चाहिए। ध्यान दें कि छत में एचआरवी नियंत्रक इकाई से रिबन केबल के नीचे आने वाले 6 पिन हैं:

पिन 1 और 6 5V VCC हैं

पिन 2 और 5 GND हैं

पिन 3 और 4 डेटा हैं।

आपको केवल पिन 1, 2, 3 और 6 (1 और 6 VCC शक्तियां ESP8266 और TTL तर्क कनवर्टर का उच्च पक्ष, 2 एक सामान्य आधार है और 3 TTL सीरियल डेटा पढ़ने के लिए) का उपयोग करने की आवश्यकता है।

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

चरण 2: कोड और परीक्षण अपलोड करना

कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना
कोड और परीक्षण अपलोड करना

कोड परिवर्तन

Arduino कोड के लिए वैकल्पिक डाउनलोड लिंक यहाँ

Arduino IDE में खोलें, सुनिश्चित करें कि ESP बोर्ड के साथ-साथ PubSubClient भी स्थापित है और आपने ESP8266 बोर्ड (टूल्स, बोर्ड, जेनेरिक ESP8266 बोर्ड) का चयन किया है, कोड संपादित करें और वाईफाई एपी नाम और पासवर्ड और आईपी पता बदलें जैसा कि नीचे दिखाया गया है, आपका एमक्यूटीटी ब्रोकर (ये केवल वही चीजें हैं जिन्हें आपको बदलने की आवश्यकता है)। यह सुनिश्चित करने के लिए 'सत्यापित करें' बटन पर क्लिक करें कि यह ठीक से संकलित है, फिर सुनिश्चित करें कि सही COM पोर्ट चुना गया है (टूल्स, पोर्ट) और कोड को अपने ESP8266 पर अपलोड करें। यह कैसे करना है, इस पर बहुत सारे लेख हैं, मैं यहां पहिया को फिर से नहीं लगाऊंगा।

// वाई - फाई

const char* ssid = "your_wifi_ssid_here"; const char* पासवर्ड = "your_wifi_password_here"; // एमक्यूटीटी ब्रोकर आईपीएड्रेस एमक्यूटीटी_सर्वर(१९२, १६८, २२२, २५४);

एमक्यूटीटी परीक्षण

परीक्षण के लिए आप अपने FTDI एडॉप्टर को कनेक्टेड छोड़ सकते हैं और Arduino IDE में सीरियल मॉनिटर खोल सकते हैं, आपको कंसोल में तापमान की जानकारी प्रिंट करने वाले संदेशों को देखना चाहिए। यदि आपको अपने MQTT ब्रोकर को ESP8266 से आने वाले MQTT संदेशों का निवारण करने की आवश्यकता है, तो Mosquitto सर्वर पर आने वाले संदेशों की सदस्यता लेने के लिए निम्न में से एक कमांड चलाएँ:

mosquitto_sub -d -t openhab/hrv/status

आपको हर 30 सेकंड में ESP8266 से आने वाले इनबाउंड PUBLISH संदेशों को "1" (जिसका अर्थ है "मैं जीवित हूं") के साथ देखना चाहिए यदि आप निरंतर "0" (या कुछ भी नहीं) देखते हैं तो कोई संचार नहीं होता है। एक बार जब आप नंबर 1 को आते हुए देखते हैं, तो इसका मतलब है कि ESP8266 MQTT ब्रोकर के साथ संचार कर रहा है (यह कैसे काम करता है, इस बारे में अधिक जानकारी के लिए "MQTT लास्ट विल एंड टेस्टामेंट" खोजें, या यह वास्तव में अच्छी ब्लॉग प्रविष्टि देखें)

अब आप तापमान और पंखे की गति डेटा ट्रैक कर सकते हैं, निम्न में से किसी एक को सब्सक्राइब करें। हालाँकि, ध्यान दें कि कोड केवल तापमान डेटा भेजता है यदि कोई डेटा बदल गया है। यह भेजे गए अंतिम तापमान, पंखे की गति आदि डेटा का ट्रैक रखता है, इसलिए हो सकता है कि आपको तुरंत जानकारी न आए।

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

संकेत: ऊपर दिए गए नियंत्रण कक्ष के तापमान की सदस्यता लें, फिर नियंत्रण कक्ष पर ही तापमान बटन को दबाएं, आपको नई तापमान सेटिंग दिखाई देनी चाहिए।

जब आप इसे टांका लगाने के लिए इधर-उधर हो जाते हैं, तो 3cm x 7cm PCB HRV कंट्रोल पैनल के पीछे फ्लश बॉक्स में अच्छी तरह से फिट हो जाता है। मैं इसे केवल तभी करने की सलाह दूंगा जब यह एक प्लास्टिक फ्लश बॉक्स हो क्योंकि धातु का बॉक्स वाईफाई सिग्नल के साथ हस्तक्षेप कर सकता है या संभवतः पीसीबी बोर्ड पर कनेक्शन को छोटा कर सकता है। वैकल्पिक रूप से, आप बोर्ड को माउंट करने के लिए एक प्लास्टिक 3D केस का प्रिंट आउट ले सकते हैं।

चरण 3: ओपनएचएबी परिवर्तन

ओपनएचएबी कॉन्फ़िगरेशन

आवश्यक OpenHAB परिवर्तन इस प्रकार हैं:

'आइटम' फ़ाइल:

/* HRVNumber hrvStatus "HRV Status [MAP(status.map):%d]" (gHRV) {mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }नंबर हाउसटेम्प "हाउस [%.1f C]" (gHRV) {mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }नंबर हाउसTemp_Chart_Period "चार्ट अवधि" नंबर रूफटेम्प "रूफ [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }नंबर रूफTemp_Chart_Period "चार्ट अवधि"संख्या नियंत्रण अस्थायी "नियंत्रण [%.1f C]" (gHRV) {mqtt="<[mqttbroker:openhab/hrv/controltemp: स्टेट: डिफॉल्ट]" }स्ट्रिंग फैनस्पीड "फैन स्पीड [%s]" (gHRV) {mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

'साइटमैप' फ़ाइल:

फ़्रेम लेबल = "एचआरवी तापमान" {टेक्स्ट आइटम = रूफटेम्प {फ़्रेम {स्विच आइटम = रूफटेम्प_चार्ट_पीरियड लेबल = "अवधि" मैपिंग = [0 = "घंटा", 1 = "दिन", 2 = "सप्ताह"] छवि url = "https://localhost:8080/rrdchart.png" रिफ्रेश=6000 विजिबिलिटी=[roofTemp_Chart_Period==0, रूफTemp_Chart_Period=="Uninitialized"] इमेज url="https://localhost:8080/rrdchart.png" रिफ्रेश=30000 विजिबिलिटी= [roofTemp_Chart_Period==1] इमेज url="https://localhost:8080/rrdchart.png" रिफ्रेश=30000 विजिबिलिटी=[roofTemp_Chart_Period==2] } } टेक्स्ट आइटम=houseTemp { फ्रेम { स्विच आइटम = houseTemp_Chart_Period लेबल = "अवधि" "मैपिंग=[0="घंटा", 1="दिन", 2="सप्ताह"] छवि url="https://localhost:8080/rrdchart.png" ताज़ा करें=6000 दृश्यता=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="अप्रारंभीकृत"] छवि url="https://localhost:8080/rrdchart.png" ताज़ा करें=30000 दृश्यता=[houseTemp_Chart_Period==1] छवि url="https://localhost:8080/rrdchart.png" ताज़ा करें =३०००० दृश्यता=[houseTemp_Chart_Period==2] } } टेक्स्ट आइटम=कंट्रोलटेम्प {फ़्रेम {स्विच आइटम=कॉम्बिन ed_Chart_Period लेबल = "अवधि" मैपिंग = [0 = "घंटा", 1 = "दिन", 2 = "सप्ताह"] छवि url = "https://localhost:8080/rrdchart.png" ताज़ा करें = 6000 दृश्यता = [संयुक्त_चार्ट_अवधि ==0, संयुक्त_चार्ट_पीरियोड=="अप्रारंभीकृत"] छवि url="https://localhost:8080/rrdchart.png" ताज़ा करें=30000 दृश्यता=[Combined_Chart_Period==1] छवि url="https://localhost:8080/ rrdchart.png" रिफ्रेश=३०००० दृश्यता=[Combined_Chart_Period==2] } } टेक्स्ट आइटम=फैनस्पीड }

OpenHAB के लिए अतिरिक्त चिह्न शामिल हैं (दायाँ क्लिक करें और छवियों को सहेजें)

इन फ़ाइलों को अपने OpenHAB सर्वर पर..\OpenHAB Home\webapps\images फ़ोल्डर में सहेजें

सिफारिश की: