विषयसूची:

वाईफाई सक्षम तापमान नियंत्रित स्मार्ट प्लग: 4 कदम
वाईफाई सक्षम तापमान नियंत्रित स्मार्ट प्लग: 4 कदम

वीडियो: वाईफाई सक्षम तापमान नियंत्रित स्मार्ट प्लग: 4 कदम

वीडियो: वाईफाई सक्षम तापमान नियंत्रित स्मार्ट प्लग: 4 कदम
वीडियो: HomeMate 16A Smart Plug Unboxing & Full Review || Make Your Home Smart With Alexa 🔥🔥 2024, नवंबर
Anonim
वाईफाई सक्षम तापमान नियंत्रित स्मार्ट प्लग
वाईफाई सक्षम तापमान नियंत्रित स्मार्ट प्लग

इस निर्देश सेट में हम देखेंगे कि भारी उठाने के लिए एक साधारण ESP8266 और एक DHT11 तापमान/आर्द्रता सेंसर का उपयोग करके वाईफाई सक्षम तापमान जांच कैसे बनाई जाए। यदि आप खरीदना चाहते हैं तो हम उस सर्किट बोर्ड का भी उपयोग करेंगे जो मैंने बनाया है और अब चैनल के टिंडी स्टोर में भी बिक्री पर है।

आइए उन सामग्रियों के बिल के साथ आरंभ करें जिनकी आपको आवश्यकता होगी:

ESP8266 वाईफाई मॉड्यूल

amzn.to/2pkGPoa

DHT11 सेंसर

amzn.to/2phwfhO

टीपी-लिंक स्मार्ट प्लग

amzn.to/2GElQUz

आप चैनल के लिए टिंडी स्टोर पर पूरे मॉड्यूल को भी उठा सकते हैं:

www.tindie.com/products/misperry/wifi-enab…

पीसीबी फैब्रिकेशन के लिए JLCPCB भी देखें। वे वही हैं जिन्हें मैं पीसीबी बनाने के लिए इस्तेमाल करता था:

पहले ऑर्डर पर मुफ़्त शिपिंग और https://jlcpcb.com पर $2 PCB प्रोटोटाइपिंग

चरण 1: कोड को ESP8266 में जोड़ना

अब हमें निम्नलिखित कोड को ESP8266 पर फ्लैश करना होगा। यह कोड निम्नलिखित जीथब रिपॉजिटरी में पाया जा सकता है:

नीचे दिए गए कोड में आपको केवल शीर्ष कुछ परिभाषा अनुभागों को सेट करना होगा:

एमक्यूटीटी सर्वर:

एमक्यूटीटी उपयोगकर्ता:

एमक्यूटीटी पासवर्ड:

MQTT_sensor_topic:

-वाई - फाई

कहा: जिस वाईफाई नेटवर्क से आप कनेक्ट हो रहे हैं उसके बारे में

पासवर्ड: वाईफाई पासवर्ड।

एक बार जब आप इसे नीचे दिए गए कोड में भर देते हैं तो आप त्रुटियों के लिए संकलन और जांच कर सकते हैं और यदि 0 त्रुटियां हैं तो आप इसे ESP8266 पर फ्लैश कर सकते हैं।

/* *फ़ाइल का नाम: TempHumSensor.ino* *आवेदन: HomeAssistant Space हीटर थर्मोस्टेट* *विवरण: यह कोड ESP8266 WiFi सक्षम arduino* संगत डिवाइस के लिए है। यह प्रसंस्करण के लिए एचएएसएस फ़्रंटएंड को DHT11 डिवाइस के तापमान की जानकारी * रिले करेगा। * *लेखक: एम. स्पेरी - https://www.youtube.com/misperry * दिनांक: 03/* संशोधन: 1.0 * * */

#शामिल

#शामिल करें #शामिल करें #शामिल करें #शामिल करें

#define CON_TIME_OUT 20 // वाईफाई से कनेक्शन न होने का टाइमआउट

#define MQTT_TIME_OUT 10 // MQTT सर्वर से कोई कनेक्शन नहीं होने का टाइमआउट

#define DHTPIN 0 // पिन जो DHT सेंसर से जुड़ा है

#define DHTTYPE DHT11 // सेंसर का प्रकार DHT11 है, आप इसे DHT22 (AM2302), DHT21 (AM2301) में बदल सकते हैं

#define mqtt_server "" // अपना MQTT सर्वर एडर्स या आईपी दर्ज करें। मैं इस क्षेत्र में अपने डकडीएनएस एड्रेस (yourname.duckdns.org) का उपयोग करता हूं

#define mqtt_user "" // अपना MQTT उपयोगकर्ता नाम दर्ज करें #define mqtt_password "" // अपना पासवर्ड दर्ज करें #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // अपने MQTT के लिए विषय दर्ज करें

// वाईफाई: एसएसआईडी और पासवर्ड

कास्ट चार * एसएसआईडी = ""; कॉन्स्ट चार * पासवर्ड = "";

// डीएचटी सेटअप

DHT_ एकीकृत dht (DHTPIN, DHTTYPE); uint32_t देरीएमएस;

वाईफाई क्लाइंट

पबसुब क्लाइंट क्लाइंट (वाईफाई क्लाइंट);

// फ़ंक्शन को तापमान और आर्द्रता प्रकाशित करने के लिए कहा जाता है

शून्य पब्लिशडेटा (फ्लोट p_temperature) {// एक JSON ऑब्जेक्ट बनाएं // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject और रूट = jsonBuffer.createObject (); // जानकारी: डेटा को एक स्ट्रिंग में परिवर्तित किया जाना चाहिए; फ़्लोट्स का उपयोग करते समय एक समस्या उत्पन्न होती है… // फ़ारेनहाइट में कनवर्ट करें p_temperature = (p_temperature * 1.8) + 32; // फ़ारेनहाइट रूट ["तापमान"] = (स्ट्रिंग) p_temperature में कनवर्ट करें; root.prettyPrintTo (सीरियल); सीरियल.प्रिंट्लन ("");

चार डेटा [200];

root.printTo (डेटा, root.measureLength () + 1); client.publish(MQTT_SENSOR_TOPIC, डेटा, सच); }

// MQTT संदेश आने पर फ़ंक्शन को कॉल किया जाता है

शून्य कॉलबैक (चार * p_topic, बाइट * p_payload, अहस्ताक्षरित int p_length) { }

शून्य पुन: कनेक्ट () {

// लूप जब तक हम फिर से कनेक्ट नहीं हो जाते (!client.connected()) { Serial.print("INFO: MQTT कनेक्शन का प्रयास…"); // कनेक्ट करने का प्रयास if (client.connect("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println("INFO:connected"); } और { सीरियल.प्रिंट ("त्रुटि: विफल, आरसी ="); सीरियल.प्रिंट (क्लाइंट.स्टेट ()); Serial.println ("डीबग: 5 सेकंड में पुन: प्रयास करें"); // देरी से प्रयास करने से पहले 5 सेकंड प्रतीक्षा करें (5000); } } }

शून्य सेटअप (शून्य) {

सीरियल.बेगिन (९६००);

// हम एक वाईफाई नेटवर्क से जुड़कर शुरू करते हैं

सीरियल.प्रिंट्लन (); सीरियल.प्रिंट्लन (); Serial.print ("कनेक्ट कर रहा है"); सीरियल.प्रिंट्लन (एसएसआईडी);

वाईफाई.बेगिन (एसएसआईडी, पासवर्ड);

जबकि (WiFi.status() != WL_CONNECTED) {

देरी (800); सीरियल.प्रिंट ("।"); }

सीरियल.प्रिंट्लन ("");

Serial.println ("वाईफाई कनेक्टेड"); Serial.println ("आईपी पता:"); Serial.println (वाईफाई.लोकलआईपी ()); // MQTT कनेक्शन क्लाइंट को इनिट करें। सेटसेवर (mqtt_server, 1883); क्लाइंट.सेट कॉलबैक (कॉलबैक);

// DHT सेंसर को इनिशियलाइज़ करें

dht.begin (); Serial.println ("DHT11 यूनिफाइड सेंसर डेटा");

// अस्थायी सेंसर विवरण प्रिंट करें

सेंसर_टी सेंसर; dht.temperature().getSensor(&sensor); सीरियल.प्रिंट्लन ("--------------------------------------"); Serial.println ("तापमान"); सीरियल.प्रिंट ("सेंसर:"); Serial.println (सेंसर.नाम); सीरियल.प्रिंट ("ड्राइवर वेर:"); Serial.println (सेंसर। संस्करण); सीरियल.प्रिंट ("अद्वितीय आईडी:"); Serial.println (sensor.sensor_id); सीरियल.प्रिंट ("अधिकतम मूल्य:"); सीरियल.प्रिंट (सेंसर.मैक्स_वैल्यू); सीरियल.प्रिंट्लन ("* सी"); Serial.print ("न्यूनतम मान:"); सीरियल.प्रिंट (सेंसर.मिन_वैल्यू); सीरियल.प्रिंट्लन ("* सी"); सीरियल.प्रिंट ("रिज़ॉल्यूशन:"); सीरियल.प्रिंट (सेंसर.रिज़ॉल्यूशन); सीरियल.प्रिंट्लन ("* सी"); सीरियल.प्रिंट्लन ("--------------------------------------"); // नमी सेंसर विवरण प्रिंट करें। dht.humidity().getSensor(&sensor); सीरियल.प्रिंट्लन ("--------------------------------------"); Serial.println ("आर्द्रता"); सीरियल.प्रिंट ("सेंसर:"); Serial.println (सेंसर.नाम); सीरियल.प्रिंट ("ड्राइवर वेर:"); Serial.println (सेंसर। संस्करण); सीरियल.प्रिंट ("अद्वितीय आईडी:"); Serial.println (sensor.sensor_id); सीरियल.प्रिंट ("अधिकतम मूल्य:"); सीरियल.प्रिंट (सेंसर.मैक्स_वैल्यू); सीरियल.प्रिंट्लन ("%"); Serial.print ("न्यूनतम मान:"); सीरियल.प्रिंट (सेंसर.मिन_वैल्यू); सीरियल.प्रिंट्लन ("%"); सीरियल.प्रिंट ("रिज़ॉल्यूशन:"); सीरियल.प्रिंट (सेंसर.रिज़ॉल्यूशन); सीरियल.प्रिंट्लन ("%"); सीरियल.प्रिंट्लन ("--------------------------------------");

// सेंसर विवरण के आधार पर सेंसर रीडिंग के बीच देरी सेट करें

देरीएमएस = सेंसर.min_delay / 1000; }

शून्य लूप (शून्य) {

फ्लोट तापमान;

अगर (! क्लाइंट। कनेक्टेड ())

{फिर से कनेक्ट करें (); }

देरी (देरीएमएस);

// तापमान घटना प्राप्त करें और उसका मूल्य प्रिंट करें।

sensor_event_t घटना; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println ("तापमान पढ़ने में त्रुटि!"); तापमान = 0.00; } और {तापमान = घटना। तापमान; सीरियल.प्रिंट ("तापमान:"); सीरियल.प्रिंट (तापमान); सीरियल.प्रिंट्लन ("* सी"); } // MQTT publishData (तापमान) पर प्रकाशित करें; }

चरण 2: अपना टीपी-लिंक स्मार्ट प्लग सेट करना

अपना टीपी-लिंक स्मार्ट प्लग सेट करना
अपना टीपी-लिंक स्मार्ट प्लग सेट करना

आपको अपना टीपी-लिंक स्मार्ट प्लग, या उस मैटर के लिए कोई भी स्मार्ट प्लग सेट करना होगा, जिस तरह से निर्माता अनुशंसा करता है।

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

Linksys के साथ इसे कैसे सेट करें, इसका लिंक यहां दिया गया है

www.linksys.com/us/support-article?article…

चरण 3: गृह सहायक की स्थापना

अब होम असिस्टेंट सेट अप करने के लिए। इसके लिए आपको निम्न कॉन्फ़िगरेशन को config.yaml फ़ाइल में जोड़ना होगा जो उस डिवाइस पर /home/homeassistant/.homeassistant फ़ोल्डर संरचना में स्थित है जिसे आपने इसे स्थापित किया है।

एक बार इसे अपने गृह सहायक कॉन्फ़िगरेशन में जोड़ने के बाद परिवर्तनों को प्रभावित करने के लिए आपको अपने गृह सहायक सॉफ़्टवेयर को पुनरारंभ करना होगा।

इसके अलावा मैं टीपी-लिंक स्मार्ट प्लग फोर्ट स्विचिंग डिवाइस का उपयोग करूंगा और कॉन्फ़िगरेशन फ़ाइल में परिभाषा नीचे है। डिवाइस के लिए उपयोग किया जाने वाला IP पता वह है जिसे आपने पिछले चरण में DHCP आरक्षण के लिए सेट किया था।

यह विन्यास निम्नलिखित जीथब रेपो में भी पाया जा सकता है:

mqtt:switch: - प्लेटफॉर्म: tplink नाम: बेडरूम हीटर होस्ट: 192.168.2.11

सेंसर 1:

मंच: mqtt State_topic: 'ha/bedroom_temp' नाम: शयन कक्ष अस्थायी इकाई_of_measurement: '°F' value_template: '{{value_json.temperature}}'

स्वचालन:

- उपनाम: _Temp बेडरूम अस्थायी उच्च ट्रिगर: - प्लेटफ़ॉर्म: numeric_state entity_id: sensor. Bedroom_Temp ऊपर: 73

कार्य:

सेवा: homeassistant.turn_off entity_id: स्विच.बेडरूम_हीटर

- उपनाम: _Temp बेडरूम का तापमान कम

ट्रिगर: - प्लेटफ़ॉर्म: numeric_state entity_id: sensor. Bedroom_Temp नीचे: 73 क्रिया: सेवा: homeassistant.turn_on entity_id: स्विच.बेडरूम_हीटर

चरण 4: अंतिम चरण

Image
Image
अंतिम चरण
अंतिम चरण
अंतिम चरण
अंतिम चरण

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

आप सभी की मदद और समर्थन के लिए बहुत-बहुत धन्यवाद। एक लाइक छोड़ना सुनिश्चित करें और https://www.youbue.com/misperry पर चैनल पर आएं और देखें कि हमारे पास आपके लिए क्या है। चैनल को मदद करने के लिए अपने दोस्तों के साथ सब्सक्राइब और शेयर करना सुनिश्चित करें।

सिफारिश की: