विषयसूची:
- चरण 1: हार्डवेयर की आवश्यकता
- चरण 2: हार्डवेयर कनेक्शन
- चरण 3: कार्य निर्धारण के लिए कोड
- चरण 4: तापमान और आर्द्रता मान पढ़ने के लिए कोड
- चरण 5: वेबसर्वर को होस्ट करने के लिए कोड
- चरण 6: थिंग्सपीक सेटअप
- चरण 7: थिंग स्पीक में डेटा पोस्ट करने के लिए कोड
- चरण 8: कुल मिलाकर कोड
- चरण 9: क्रेडिट
वीडियो: ESP8266 का उपयोग कर थिंगस्पीक तापमान और आर्द्रता ऐप: 9 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
अपने इलेक्ट्रॉनिक सामान के साथ छेड़छाड़ करते हुए, मुझे वेब-आधारित मौसम ऐप बनाने का विचार आया। यह वेब ऐप वास्तविक समय के तापमान और आर्द्रता डेटा प्राप्त करने के लिए SHT31 सेंसर का उपयोग करता है। हमने अपने प्रोजेक्ट को ESP8266 वाईफाई मॉड्यूल पर तैनात किया है। ऑनलाइन या ऑफलाइन! चिंता करने की कोई जरूरत नहीं है, चाहे आप ऑनलाइन हों या ऑफलाइन आपको कहीं से भी और कभी भी मौसम की अपडेट मिलेगी। यह वेब ऐप डेटा को स्थानीय वेब सर्वर के साथ-साथ क्लाउड पर भी पोस्ट करता है। क्लाउड ऑपरेशंस के लिए, हम थिंगस्पीक एपीआई का उपयोग कर रहे हैं। SHT31 सेंसर से डेटा प्राप्त करने के लिए I2C का उपयोग करता है।
SHT 31 सेंसरियन द्वारा बनाया गया एक तापमान और आर्द्रता सेंसर है। SHT31 ±2% RH के आसपास उच्च स्तर की सटीकता प्रदान करता है। इसकी आर्द्रता सीमा 0 से 100% के बीच है और तापमान सीमा -40 से 125 डिग्री सेल्सियस के बीच है। यह 8 सेकंड के सेंसर प्रतिक्रिया समय के साथ बहुत अधिक विश्वसनीय और तेज़ है। इसकी कार्यक्षमता में उन्नत सिग्नल प्रोसेसिंग और I2C संगतता शामिल है। इसके संचालन के विभिन्न तरीके हैं जो इसे ऊर्जा कुशल बनाते हैं।
इस ट्यूटोरियल में, हमने SHT 31 को Adafruit Huzzah बोर्ड के साथ जोड़ा है। तापमान और आर्द्रता मान पढ़ने के लिए हमने ESP8266 I2C शील्ड का उपयोग किया है। यह एडेप्टर सभी पिनों को उपयोगकर्ता के लिए सुलभ बनाता है और उपयोगकर्ता के अनुकूल I2C वातावरण प्रदान करता है।
चरण 1: हार्डवेयर की आवश्यकता
इस कार्य को पूरा करने के लिए प्रयुक्त हार्डवेयर:
- एसएचटी 31
- एडफ्रूट हुज़ाह ईएसपी8266
- ESP8266 I2C एडाप्टर
- I2C केबल
चरण 2: हार्डवेयर कनेक्शन
इस चरण में हार्डवेयर हुकअप मार्गदर्शिका शामिल है। यह खंड मूल रूप से सेंसर और ESP8266 के बीच आवश्यक वायरिंग कनेक्शन की व्याख्या करता है। कनेक्शन इस प्रकार हैं।
- SHT31 I2C पर काम करता है। उपरोक्त छवि ESP8266 और SHT31 मॉड्यूल के बीच संबंध को प्रदर्शित करती है। हम इसके लिए I2C केबल का उपयोग कर रहे हैं या तो हम 4 F से F जम्पर तारों का उपयोग कर सकते हैं।
- एक तार Vcc के लिए, दूसरा तार GND के लिए और अन्य दो SDA और SCL के लिए उपयोग किया जाता है
- I2C एडेप्टर के अनुसार एक ESP8266 बोर्ड के पिन 2 और पिन 14 को क्रमशः एसडीए और एससीएल के रूप में उपयोग किया जाता है
चरण 3: कार्य निर्धारण के लिए कोड
इस ट्यूटोरियल में, हम तीन ऑपरेशन कर रहे हैं
- I2C प्रोटोकॉल का उपयोग करके SHT11 से डेटा पढ़ें
- वेब सर्वर को होस्ट करें और सेंसर रीडिंग को वेबपेज पर पोस्ट करें
- ThingSpeak API पर सेंसर रीडिंग पोस्ट करें
इसे प्राप्त करने के लिए हम टास्कशेड्यूलर लाइब्रेरी का उपयोग कर रहे हैं। हमने तीन अलग-अलग नियंत्रण कार्यों के संदर्भ में तीन अलग-अलग कार्यों को निर्धारित किया है। यह अग्रानुसार होगा
- टास्क 1 सेंसर वैल्यू को पढ़ने के लिए है यह टास्क 1 सेकंड तक चलता है जब तक कि यह 10 सेकंड के टाइमआउट तक नहीं पहुंच जाता।
- जब टास्क 1 का समय समाप्त हो जाता है तो टास्क 2 सक्षम हो जाता है और टास्क 1 अक्षम हो जाता है।
- हम इस कॉलबैक में एपी से जुड़ते हैं, एसटीए और एपी के बीच स्विचिंग का ख्याल रखने के लिए दो बूलियन चर लिए जाते हैं
- टास्क 2 में हम 192.168.1.4 पर एक वेब सर्वर होस्ट कर रहे हैं। यह कार्य प्रत्येक 5 सेकंड के लिए तब तक चलता है जब तक कि यह अपने समय समाप्त नहीं हो जाता जो कि 50 सेकंड है
-
जब टास्क 2 टाइमआउट पर पहुंच जाता है तो टास्क 3 सक्षम हो जाता है और टास्क 2 अक्षम हो जाता है।
- हम इस कैलबैक में एसटीए (स्थानीय आईपी) से जुड़ते हैंटास्क 3 में हम सेंसर रीडिंग को क्लाउड थिंगस्पीक एपीआई पर पोस्ट कर रहे हैं
- टास्क 3 हर पांच सेकंड में तब तक चलता है जब तक कि यह अपने टाइमआउट यानी 50 सेकंड. तक नहीं पहुंच जाता
- जब टास्क 3 अपने समय समाप्त हो जाता है तो टास्क 1 फिर से सक्षम हो जाता है और टास्क 3 अक्षम हो जाता है।
- जब कोई कॉलबैक नहीं कहा जाता है या डिवाइस निष्क्रिय है तो यह लाइट स्लीप में चला जाता है जिससे बिजली की बचत होती है।
शून्य कार्यI2CCallback ();
शून्य कार्यI2CDisable (); शून्य कार्यAPCallback (); शून्य कार्यAPDisable (); शून्य कार्यWiFiCallback (); शून्य कार्यWiFiDisable (); // i2c के लिए कार्य, वेब सर्वर की मेजबानी करना और चीजों पर पोस्ट करना कार्य tI2C(1 * TASK_SECOND, TASK_FOREVER, &taskI2CCकॉलबैक, &ts, false, NULL, &taskI2CDisable); टास्क tI2C(1 * TASK_SECOND, TASK_FOREVER, &taskI2CCकॉलबैक, &ts, false, NULL, &taskI2CDisable); टास्क tAP(5*TASK_SECOND, TASK_FOREVER, &taskAPCallback, &ts, false, NULL, &taskAPDisable); टास्क tWiFi(5* TASK_SECOND, TASK_FOREVER, &taskWiFiCallback, &ts, false, NULL, &taskWiFiDisable); // कार्यों के लिए समयबाह्य tI2C.setTimeout(10 * TASK_SECOND); tAP.setTimeout(50 * TASK_SECOND); tWiFi.setTimeout (५० * TASK_SECOND); // I2C कार्य सक्षम करें tI2C.enable ();
चरण 4: तापमान और आर्द्रता मान पढ़ने के लिए कोड
हम तापमान और आर्द्रता मूल्यों को पढ़ने के लिए Wire.h पुस्तकालय का उपयोग कर रहे हैं। यह पुस्तकालय सेंसर और मास्टर डिवाइस के बीच i2c संचार की सुविधा प्रदान करता है। 0x44 SHT31 के लिए I2C पता है।
SHT31 संचालन के एक अलग मोड में काम करता है। आप उसके लिए डेटाशीट का उल्लेख कर सकते हैं। हम सिंगल शॉट ऑपरेशन के लिए क्रमशः एमएसबी और एलएसबी के रूप में 0x2C और 0x06 का उपयोग कर रहे हैं।
//I2C कार्य कॉलबैक शून्य कार्यI2CCallback(){ Serial.println("taskI2CStarted"); अहस्ताक्षरित इंट रूट [6]; // 0x44 से प्रसारण शुरू करें; Wire.beginTransmission (Addr); // उच्च दोहराव के साथ एक शॉट ट्रांसमिशन के लिए हम 0x2C (MSB) और 0x06 (LSB) वायर.राइट (0x2C) का उपयोग करते हैं; वायर.राइट (0x06); // अंत संचरण Wire.endTransmission (); // 0x44 Wire.beginTransmission (Addr) से बाइट्स का अनुरोध करें; वायर.एंडट्रांसमिशन (); Wire.requestFrom (Addr, 6); अगर (वायर.उपलब्ध() == 6) {// डेटा [0] और डेटा [1] में 16 बिट तापमान होता है। रूट [0] = वायर.रीड (); रूट [1] = वायर.रीड (); // डेटा [2] में 8 बिट सीआरसी रूट [2] = वायर.रीड (); // डेटा [३] और डेटा [४] में १६ बिट ह्यूमिडिटी रूट [३] = वायर.रीड (); रूट [४] = वायर.रीड (); // डेटा [5] में 8 बिट सीआरसी रूट होते हैं [5] = वायर.रीड (); } इंट टेम्प = (रूट [0] * 256) + रूट [1]; // MSB को 8 बिट्स से शिफ्ट करें LSB फ्लोट cTemp = -45.0 + (175.0 * अस्थायी / 65535.0) जोड़ें; फ्लोट fTemp = (cTemp * १.८) + ३२.०; // MSB को 8 बिट्स से शिफ्ट करें, इसमें LSB जोड़ें पूर्ण रिज़ॉल्यूशन द्वारा और *100 प्रतिशत फ्लोट ह्यूमिडिटी के लिए = (100.0 * ((रूट [3] * 256.0) + रूट [4])) / 65535.0; टेम्पसी = सीटीईएमपी; अस्थायी एफ = एफटेम्प; नम = नमी; Serial.print ("सी में तापमान: / t"); Serial.println (स्ट्रिंग (cTemp, 1)); Serial.print ("F:\t में तापमान"); Serial.println (स्ट्रिंग (fTemp, 1)); सीरियल.प्रिंट ("आर्द्रता: / t"); Serial.println (स्ट्रिंग (आर्द्रता, 1)); }
चरण 5: वेबसर्वर को होस्ट करने के लिए कोड
हमने अपने डिवाइस से एक स्थिर आईपी पर एक वेब सर्वर होस्ट किया है।
ESP8266WebServer लाइब्रेरी का उपयोग वेब सर्वर को होस्ट करने के लिए किया जाता है
- सबसे पहले हमें अपना स्टैटिक आईपी बनाने के लिए आईपी एड्रेस, गेटवे और सबनेट मास्क घोषित करना होगा
- अब अपने एक्सेस पॉइंट के लिए ssid और पासवर्ड घोषित करें। किसी भी STA डिवाइस से एक्सेस पॉइंट से कनेक्ट करें
- सर्वर को पोर्ट 80 पर होस्ट करें जो इंटरनेट संचार प्रोटोकॉल के लिए एक डिफ़ॉल्ट पोर्ट है, हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) परिचय वेबपेज के लिए अपने वेब ब्राउज़र पर 192.168.1.4 और सेंसर रीडिंग वेबपेज के लिए 192.168.1.4/वैल्यू दर्ज करें।
// एपीआईपीएड्रेस के लिए स्थिर आईपी ap_local_IP(१९२, १६८, १, ४);आईपीएड्रेस एपी_गेटवे(१९२, १६८, १, २५४); आईपीएड्रेस ap_subnet(255, 255, 255, 0); // ssid और AP STA मोड में स्थानीय वाईफाई के लिए const char WiFissid = "**********"; कॉन्स्ट चार वाईफाईपास = "*********"; // ssid और AP const char APssid के लिए पास = "********"; कास्ट चार एपीपास = "********"; ESP8266वेबसर्वर सर्वर (80); शून्य सेटअप {server.on ("/", onHandleDataRoot); server.on("/Value", onHandleDataFeed); server.onNotFound(onHandleNotFound);} void taskAPCallback(){ Serial.println("taskAP start"); सर्वर.हैंडल क्लाइंट (); } शून्य onHandleDataRoot(){ server.send(200, "text/html", PAGE1); } HandleDataFeed(){ server.send(200, "text/html", PAGE2) पर शून्य; } शून्य onHandleNotFound(){ स्ट्रिंग संदेश = "फ़ाइल नहीं मिली\n\n"; संदेश + = "यूआरआई:"; संदेश + = सर्वर.यूरी (); संदेश + = "\ n विधि:"; संदेश + = (सर्वर.विधि () == HTTP_GET)?" प्राप्त करें: "पोस्ट"; संदेश + = "\ n तर्क:"; संदेश + = सर्वर। args (); संदेश + = "\ n"; server.send(404, "पाठ/सादा", संदेश); } शून्य पुनः कनेक्ट करेंAPWiFi () {वाईफाई.मोड (WIFI_AP_STA); देरी (100); वाईफाई.डिस्कनेक्ट (); बूलियन स्थिति = WiFi.softAPConfig (ap_local_IP, ap_gateway, ap_subnet); अगर (स्थिति == सच) {सीरियल.प्रिंट ("सॉफ्ट-एपी सेट करना …"); बूलियन एपी = WiFi.softAP (APssid, APpass); if(ap==true){ Serial.print("कनेक्टेड टू:\t"); // IPAddress myIP = WiFi.softAPIP (); Serial.println(WiFi.softAPIP ()); } सर्वर.बेगिन ();
}
चरण 6: थिंग्सपीक सेटअप
थिंगस्पीक एक IoT प्लेटफॉर्म है। थिंगस्पीक एक निःशुल्क वेब सेवा है जो आपको क्लाउड में सेंसर डेटा एकत्र करने और संग्रहीत करने देती है।
इस चरण में, मैं आपको अपना थिंग स्पीक अकाउंट सेट करने की एक संक्षिप्त प्रक्रिया बताऊंगा
- ThingSpeak. में नए उपयोगकर्ता खाते के लिए साइन अप करें
- चैनल, मेरे चैनल और फिर नया चैनल चुनकर एक नया चैनल बनाएं
- अपने क्षेत्र संपादित करें
- इन फ़ील्ड में आपका सेंसर डेटा होता है
- एपीआई कुंजी और चैनल आईडी लिखें नोट करें
- अपने Arduino स्केच पर, आप Arduino के लिए ThingSpeak लाइब्रेरी का उपयोग कर सकते हैं या आप डेटा को सीधे ThingSpeak API पर पोस्ट कर सकते हैं
- अगला चरण थिंग स्पीक एपीआई में सामग्री पोस्ट करने के बारे में विस्तार से बताता है
चरण 7: थिंग स्पीक में डेटा पोस्ट करने के लिए कोड
यहां हम सेंसर रीडिंग को थिंग स्पीक में पोस्ट कर रहे हैं। इस कार्य को पूरा करने के लिए निम्नलिखित चरणों की आवश्यकता है-
- बात में अपना खाता बनाएं अपना सेंसर डेटा संग्रहीत करने के लिए चैनल और फ़ील्ड बनाएं
- हम एपीआई को जीईटी और पोस्ट अनुरोधों का उपयोग करके ईएसपी से बात करने के लिए डेटा प्राप्त और पोस्ट कर सकते हैं और इसके विपरीत।
- हम अपना डेटा ThingSpeak पर इस प्रकार पोस्ट कर सकते हैं
आईडी कार्यवाईफाईकॉलबैक () {वाईफाई क्लाइंट वाईफाई क्लाइंट; if(wifiClient.connect(hostId, 80)){ String postStr = apiKey; पोस्टस्ट्र +="&field1="; पोस्टस्ट्र + = स्ट्रिंग (आर्द्र); पोस्टस्ट्र +="&field2="; पोस्टस्ट्र + = स्ट्रिंग (अस्थायी); पोस्टस्ट्र +="&field3="; पोस्टस्ट्र + = स्ट्रिंग (अस्थायी); पोस्टस्ट्र + = "\r\n\r\n"; वाईफाई क्लाइंट.प्रिंट ("पोस्ट / अपडेट HTTP / 1.1 / n"); वाईफाई क्लाइंट.प्रिंट ("होस्ट: api.thingspeak.com\n"); वाईफाई क्लाइंट.प्रिंट ("कनेक्शन: बंद करें / n"); wifiClient.print("X-THINGSPEAKAPIKEY:"+apiKey+"\n"); wifiClient.print ("सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded\n"); वाईफाई क्लाइंट.प्रिंट ("सामग्री-लंबाई:"); वाईफाई क्लाइंट।प्रिंट (पोस्टस्ट्र। लम्बाई ()); वाईफाई क्लाइंट.प्रिंट ("\ n / n"); वाईफाई क्लाइंट.प्रिंट (पोस्टस्ट्र); } वाईफाई क्लाइंट.स्टॉप (); }
चरण 8: कुल मिलाकर कोड
समग्र कोड मेरे GitHub रिपॉजिटरी में उपलब्ध है
चरण 9: क्रेडिट
- अरुडिनो JSON
- ESP826वेबसर्वर
- कार्य अनुसूचक
- एसएचटी 31
- I2C स्कैन
- HIH6130 निर्देशयोग्य ट्यूटोरियल
- वायर
- एनसीडी.आईओ
सिफारिश की:
चेतावनी-उपयोग-थिंगस्पीक+ईएसपी32-वायरलेस-अस्थायी-आर्द्रता-सेंसर: 7 कदम
अलर्ट-यूजिंग-थिंगस्पीक + ईएसपी 32-वायरलेस-टेम्प- ह्यूमिडिटी-सेंसर: इस ट्यूटोरियल में, हम टेम्प और ह्यूमिडिटी सेंसर का उपयोग करके विभिन्न तापमान और आर्द्रता डेटा को मापेंगे। आप यह भी सीखेंगे कि इस डेटा को ThingSpeak पर कैसे भेजा जाए। ताकि आप अपने मेल में एक विशेष मूल्य पर एक अस्थायी अलर्ट बना सकें
स्थानीय वेबसर्वर पर DHT11 का उपयोग करते हुए ESP8266 Nodemcu तापमान निगरानी - अपने ब्राउज़र पर कमरे का तापमान और आर्द्रता प्राप्त करें: 6 कदम
स्थानीय वेबसर्वर पर DHT11 का उपयोग करते हुए ESP8266 Nodemcu तापमान निगरानी | अपने ब्राउज़र पर कमरे का तापमान और आर्द्रता प्राप्त करें: नमस्कार दोस्तों आज हम एक नमी और amp; ESP ८२६६ NODEMCU का उपयोग कर तापमान निगरानी प्रणाली & DHT11 तापमान सेंसर। तापमान और आर्द्रता DHT11 सेंसर & यह एक ब्राउज़र पर देखा जा सकता है कि कौन सा वेबपेज प्रबंधित होगा
DT11 तापमान सेंसर के साथ वेब सर्वर के लिए ESP8266 NodeMCU एक्सेस प्वाइंट (AP) और ब्राउज़र में प्रिंटिंग तापमान और आर्द्रता: 5 कदम
DT11 तापमान सेंसर और ब्राउज़र में मुद्रण तापमान और आर्द्रता के साथ वेब सर्वर के लिए ESP8266 NodeMCU एक्सेस प्वाइंट (AP) ESP8266 द्वारा होस्ट किए गए वेबसर्वर तक पहुंचकर वाईफाई पर कोई भी उपकरण लेकिन एकमात्र समस्या यह है कि हमें एक काम करने वाले राउटर की आवश्यकता है
Arduino के साथ DHT11 तापमान सेंसर का उपयोग कैसे करें और तापमान गर्मी और आर्द्रता प्रिंट करें: 5 कदम
Arduino और प्रिंट तापमान गर्मी और आर्द्रता के साथ DHT11 तापमान सेंसर का उपयोग कैसे करें: DHT11 सेंसर का उपयोग तापमान और आर्द्रता को मापने के लिए किया जाता है। वे बहुत लोकप्रिय इलेक्ट्रॉनिक्स शौक़ीन हैं। DHT11 आर्द्रता और तापमान सेंसर आपके DIY इलेक्ट्रॉनिक्स परियोजनाओं में आर्द्रता और तापमान डेटा जोड़ना वास्तव में आसान बनाता है। यह प्रति
ESP8266 का उपयोग करके प्रदर्शन के साथ तापमान और आर्द्रता इंटरनेट लकड़हारा: 3 चरण
ESP8266 का उपयोग करके प्रदर्शन के साथ तापमान और आर्द्रता इंटरनेट लकड़हारा: मैं एक छोटा प्रोजेक्ट साझा करना चाहता था जो मुझे लगता है कि आपको पसंद आएगा। यह डिस्प्ले के साथ एक छोटा, टिकाऊ इंटरनेट सक्षम तापमान और आर्द्रता इंटरनेट लॉगर है। यह emoncms.org पर लॉग इन करता है और वैकल्पिक रूप से, स्थानीय रूप से या तो रास्पबेरी पीआई या अपने स्वयं के emoncm के लिए