विषयसूची:
- चरण 1: खरीदारी के लिए जाएं
- चरण 2: सेटअप और पृष्ठभूमि
- चरण 3: Arduino - ESP12 भाग
- चरण 4: नेटवर्क टाइम प्रोटोकॉल (एनटीपी) क्लाइंट के रूप में ईएसपी का परीक्षण करना।
- चरण 5: DHT22 सेंसर का परीक्षण
- चरण 6: इसे एक साथ रखना …
- चरण 7: सर्वर साइड ऑफ थिंग्स।
वीडियो: होम नेटवर्क तापमान सेंसर: 7 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
इस परियोजना को बनाने के लिए आपको क्या जानने की आवश्यकता है:
आपको इसके बारे में जानने की जरूरत है: - कुछ इलेक्ट्रॉनिक्स कौशल (सोल्डरिंग)
- लिनक्स
- अरुडिनो आईडीई
(आपको IDE में अतिरिक्त बोर्ड अपडेट करने होंगे:
- Arduino IDE के माध्यम से एक ESP बोर्ड को अपडेट/प्रोग्रामिंग करना।
(वेब पर कुछ अच्छे ट्यूटोरियल उपलब्ध हैं)
यह एक Arduino Uno का उपयोग करके या FTDI (USB से सीरियल एडेप्टर) का उपयोग करके किया जा सकता है।
मैंने अपने Uno का उपयोग किया क्योंकि मेरे पास मेरे पीसी पर कोई सीरियल पोर्ट नहीं था और न ही मेरे पास FTDI था
चरण 1: खरीदारी के लिए जाएं
ऐसा करने के लिए आपको क्या करने की आवश्यकता होगी?
डिजिटल तापमान और आर्द्रता सेंसर के लिए:
- या तो ब्रेडबोर्ड या प्रोटोटाइप पीसीबी, सोल्डर, सोल्डरिंग आयरन जैसे विकल्प …
- कुछ तार
- दो जंपर्स
- एक 10k ओम रोकनेवाला
- एक ESP12F (अन्य मॉडल भी काम कर सकते हैं…)
- एक DHT22 (DHT11 की तुलना में थोड़ा अधिक महंगा लेकिन अधिक सटीक)
- 3 AA रिचार्जेबल बैटरी और एक बैटरी होल्डर
- अपना प्रोजेक्ट डालने के लिए एक छोटा प्लास्टिक बॉक्स
- बाद के चरण में मैं बैटरी पैक और ESP के बीच दो 10uF कैपेसिटर के साथ HT7333 जोड़ने की योजना बना रहा हूं
इनपुट वोल्टेज (VCC) को अनुशंसित 3.3V पर स्थिर करने के लिए, लेकिन ESP को ओवरवॉल्टेज से बचाने के लिए भी।
नेटवर्क भाग के लिए:
- आपका घर वाईफाई नेटवर्क
सर्वर भाग के लिए:
- कोई भी लिनक्स आधारित प्रणाली (हमेशा चालू!)
मैंने रास्पबेरी पाई का उपयोग किया (जिसे मैं अपने आउटडोर आईपी कैमरों के लिए सर्वर के रूप में भी उपयोग करता हूं।)
- आपके सर्वर कोड को संकलित करने के लिए जीसीसी कंपाइलर
- rrdtool पैकेज डेटा स्टोर करने और ग्राफ उत्पन्न करने के लिए
- अपाचे (या कोई अन्य वेबसर्वर)
आपका पसंदीदा पीसी या लैपटॉप जिस पर Arduino IDE है।
चरण 2: सेटअप और पृष्ठभूमि
वाईफाई से जुड़े इस संस्करण में - IOT - तापमान और आर्द्रता सेंसर नहीं कहने के लिए मैंने एक ESP12F, एक DHT22 और एक 3 AA बैटरी धारक का उपयोग रिचार्ज करने योग्य बैटरी के साथ किया।
हर 20 मिनट में ESP DHT22 से एक माप लेता है और इसे मेरे होम वाईफाई नेटवर्क पर UDP पर एक सर्वर (एक रास्पबेरी पाई) को भेजता है। माप भेजे जाने के बाद, ईएसपी गहरी नींद में चला जाता है। इसका मतलब है कि मॉड्यूल की केवल रीयल टाइम क्लॉक ही संचालित रहती है, जिसके परिणामस्वरूप एक अविश्वसनीय बिजली की बचत होती है। लगभग 5 सेकंड के लिए, मॉड्यूल को लगभग 100mA की आवश्यकता होती है, फिर 20 मिनट की गहरी नींद के दौरान केवल 150uA की आवश्यकता होती है।
मैं किसी भी इंटरनेट आधारित सेवा का उपयोग नहीं करना चाहता था क्योंकि मेरे पास मेरी रास्पबेरी पाई है जो हमेशा वैसे भी रहती है और इस तरह मुझे सर्वर पार्ट भी लिखने का आनंद मिला।
सर्वर पर (एक रास्पबेरी पाई रास्पियन चल रहा है) मैंने एक साधारण यूडीपी श्रोता (सर्वर) लिखा है जो मूल्यों को एक साधारण आरआरडी में संग्रहीत करता है। (टोबियास ओटिकर द्वारा आरआरडीटूल का उपयोग करते हुए राउंड रॉबिन डेटाबेस।)
RRDtool का लाभ यह है कि आप अपना डेटाबेस एक बार बना लेते हैं और आकार वही रहता है। इसके अलावा आपको पृष्ठभूमि में चलने वाले डेटाबेस सर्वर (जैसे mySQLd) की आवश्यकता नहीं है। RRDtool आपको डेटाबेस बनाने और ग्राफ़ बनाने के लिए टूल देता है।
मेरा सर्वर समय-समय पर ग्राफ बनाता है और सब कुछ एक बहुत ही सरल http पृष्ठ में प्रदर्शित करता है। मैं रास्पबेरी पाई पर Apache2 वेबसर्वर से कनेक्ट करके एक साधारण ब्राउज़र के साथ अपने रीडिंग की जांच कर सकता हूं!
अंत में, मेरे पास FTDI (USB से सीरियल) नहीं था इसलिए मैंने अपने Arduino UNO का उपयोग किया। आपको TX और RX और ESP और UNO के GND को जोड़ने की आवश्यकता है। (मुझे पता है, आपकी वृत्ति आपको RX और TX को पार करने के लिए कह सकती है … इसे भी आजमाया, काम नहीं करता।)
मैंने एक स्तर रूपांतरण नहीं किया (यूएनओ: उच्च = 5 वी लेकिन ईएसपी मूल रूप से एक 3.3V डिवाइस है … बाजार में कुछ अच्छे एफटीडीआई हैं जहां आप अपने उच्च स्तर को 5 या 3.3V होने के लिए भी चुन सकते हैं।
मेरा सर्किट 3 AA रिचार्जेबल बैटरी द्वारा संचालित है - इसलिए वास्तव में 3 X 1.2V। बाद के चरण में मैं बैटरी पैक और सुरक्षा के लिए सर्किट के बीच HT7333 लगाने का इरादा रखता हूं; नई चार्ज की गई बैटरियों में 1.2V से अधिक हो सकता है और ESP को मिनट के साथ संचालित किया जाना चाहिए। 3 वी और अधिकतम। 3.6 वी। इसके अलावा अगर मैं तय करता हूं - कमजोरी के क्षण में - क्षारीय बैटरी (3 X 1.5V = 4.5V) में डालने के लिए मेरा ESP तला हुआ नहीं होगा!
मैंने 10cm x 10cm सोलर पैनल का उपयोग करने पर भी विचार किया, लेकिन यह परेशानी के लायक नहीं था। प्रति घंटे 3 माप (मूल रूप से 3x 5 सेकंड @ 100mA अधिकतम और शेष समय @ 100uA) करके, मैं उसी रिचार्जेबल बैटरी पर 1 वर्ष के लिए अपने सर्किट को पावर देने की उम्मीद करता हूं।
चरण 3: Arduino - ESP12 भाग
मैंने यह प्रोजेक्ट अलग-अलग चरणों में किया।
कई लिंक हैं जो आपको ESP12 (उर्फ। ESP8266) को Arduino IDE में आयात करने में मदद करते हैं। (मुझे एक बग के कारण नवीनतम संस्करण के बजाय संस्करण 2.3.0 का उपयोग करना पड़ा जो इस बीच हल हो सकता था …)
मैंने अपने Arduino UNO (केवल USB से सीरियल के माध्यम से मेरे पीसी के बीच एक पुल के रूप में उपयोग किया जाता है) पर ESP सीरियल इंटरफ़ेस पर ESP को हुक करके शुरू किया। इसे समझाने वाले अलग-अलग इंस्ट्रक्शंस हैं।
मेरे समाप्त प्रोजेक्ट में मैंने सीरियल से कनेक्ट करने के लिए तारों को छोड़ दिया था, अगर मुझे कभी भी समस्या निवारण की आवश्यकता होती है। RX
फिर आपको अपने ESP12 को निम्नानुसार वायर करना होगा:
ईएसपी पिन…
जीएनडी यूएनओ जीएनडी
आरएक्स यूएनओ आरएक्स
TX यूएनओ TX
एन वीसीसी
GPIO15 GND
शुरू में मैंने अपने ESP को UNO पर 3.3V से पावर देने की कोशिश की, लेकिन मैं जल्दी से अपने ESP को बेंच पावर सप्लाई के साथ पावर देने के लिए आगे बढ़ा, लेकिन आप अपने बैटरी पैक का भी उपयोग कर सकते हैं।
GPIO0 मैंने ईएसपी को फ्लैशिंग (= प्रोग्रामिंग) सक्षम करने के लिए इसे एक जम्पर के साथ जीएनडी से जोड़ा।
पहला परीक्षण: जम्पर को खुला छोड़ दें और Arduino IDE (115200 बॉड पर!) में एक सीरियल मॉनिटर शुरू करें।
पावर साइकिल ईएसपी, आपको कुछ बकवास अक्षर और फिर एक संदेश देखना चाहिए जैसे:
एआई-थिंकर टेक्नोलॉजी कंपनी लिमिटेड तैयार
इस मोड में, ESP एक पुराने जमाने के मॉडेम की तरह काम करता है। आपको एटी कमांड का उपयोग करने की आवश्यकता है।
निम्न आदेशों का प्रयास करें:
एटी+आरएसटी
और निम्नलिखित दो आदेश
एटी+सीडब्ल्यूएमओडीई=3
ठीक है
एटी+सीडब्ल्यूएलएपी
यह आपको क्षेत्र के सभी वाईफाई नेटवर्क की एक सूची देनी चाहिए।
यदि यह काम कर रहा है तो आप अगले चरण के लिए तैयार हैं।
चरण 4: नेटवर्क टाइम प्रोटोकॉल (एनटीपी) क्लाइंट के रूप में ईएसपी का परीक्षण करना।
Arduino IDE में, फ़ाइल, उदाहरण, ESP8266WiFi के अंतर्गत, NTPClient लोड करें।
इसे काम करने के लिए मामूली बदलाव की जरूरत है; आपको अपना SSID और अपने वाईफाई नेटवर्क का पासवर्ड डालना होगा।
अब जम्पर लगाएं, GPIO0 को छोटा करके GND करें।
ESP को पावर साइकिल करें और स्केच को ESP पर अपलोड करें।
संकलन के बाद, ईएसपी पर अपलोड शुरू होना चाहिए। कोड डाउनलोड होते ही ईएसपी पर नीली एलईडी तेजी से झपकेगी।
मैंने देखा कि मुझे IDE को पुनरारंभ करने के साथ थोड़ा सा खेलना था, अपलोड करने से पहले ESP को पुनरारंभ करना।
इससे पहले कि आप स्केच को संकलित / अपलोड करना शुरू करें, सीरियल कंसोल (= सीरियल मॉनिटर) को बंद करना सुनिश्चित करें क्योंकि यह आपको अपलोड करने से रोकेगा।
एक बार अपलोड सफल हो जाने के बाद, आप ईएसपी को प्रभावी ढंग से इंटरनेट से समय प्राप्त करने के लिए सीरियल मॉनिटर को फिर से खोल सकते हैं।
बढ़िया, आपने अपना ईएसपी प्रोग्राम किया है, अपने वाईफाई से कनेक्ट किया है और इंटरनेट से समय प्राप्त किया है।
अगला कदम हम DHT22 का परीक्षण करेंगे।
चरण 5: DHT22 सेंसर का परीक्षण
अब कुछ अतिरिक्त तारों की आवश्यकता है।
DHT पिन… सेंसर के पिन 1 (बाईं ओर) को VCC (3.3V) से कनेक्ट करें
पिन 2 ESP GPIO5 कनेक्ट करें (स्केच में DHTPIN)
सेंसर के पिन 4 (दाईं ओर) को ग्राउंड से कनेक्ट करें
सेंसर के पिन 2 (डेटा) से पिन 1 (पावर) से 10K रोकनेवाला कनेक्ट करें।
NTP परीक्षण के समान, DHTtester स्केच ढूंढें, और इसे निम्न तरीके से ट्वीक करें:
#define DHTPIN 5 // हमने सेंसर से कनेक्ट करने के लिए GPIO5 का चयन किया#DHTTYPE DHT22 को परिभाषित करें // क्योंकि हम DHT22 का उपयोग कर रहे हैं लेकिन यह कोड/लाइब्रेरी DHT11 के लिए भी उपयुक्त है
फिर से, सीरियल मॉनिटर को बंद करें, ईएसपी को पावर साइकिल करें और ईएसपी को संकलित और फ्लैश करें।
यदि सब ठीक हो जाता है तो आपको सीरियल मॉनीटर में माप दिखाई देना चाहिए।
आप सेंसर के साथ थोड़ा खेल सकते हैं। यदि आप उस पर सांस लेते हैं, तो आप देखेंगे कि नमी ऊपर जा रही है।
यदि आपके पास एक (गैर एलईडी) डेस्क लैंप है, तो आप इसे थोड़ा गर्म करने के लिए सेंसर पर चमक सकते हैं।
महान! सेंसर के दो बड़े हिस्से अब काम कर रहे हैं।
अगले चरण में मैं अंतिम कोड पर टिप्पणी करूंगा।
चरण 6: इसे एक साथ रखना …
फिर से कुछ अतिरिक्त वायरिंग … यह डीपस्लीप को संभव बनाने के लिए है।
याद रखें, आईओटी उपकरणों के लिए डीपस्लीप एक अविश्वसनीय कार्य है।
हालाँकि, यदि आपका सेंसर डीपस्लीप के लिए हार्डवेअर है, तो ईएसपी को फिर से शुरू करना मुश्किल हो सकता है, इसलिए हम बीच में एक और जम्पर कनेक्शन बनाने जा रहे हैं।
GPIO16-आरएसटी।
हाँ यह GPIO16 होना चाहिए, क्योंकि यह GPIO है जो डिवाइस को जगाने के लिए हार्डवायर्ड है जब डीप स्लीप के बाद रियल टाइम क्लॉक बंद हो जाता है!
जब आप परीक्षण कर रहे हों, तो आप 15 सेकंड की डीपस्लीप करने का निर्णय ले सकते हैं।
जब मैं डिबगिंग कर रहा था, तो मैं जम्पर को GPIO0 पर ले जाऊंगा ताकि मैं अपना प्रोग्राम फ्लैश कर सकूं।
डाउनलोड पूरा होने पर, मैं जम्पर को GPIO16 में ले जाऊंगा ताकि डीपस्लीप काम करे।
ESP के लिए कोड को TnHclient.c. कहा जाता है
आपको अपना SSID, पासवर्ड और अपने सर्वर का IP पता बदलना होगा।
कोड की अतिरिक्त पंक्तियाँ हैं जिनका उपयोग आप अपने सेटअप के समस्या निवारण या परीक्षण के लिए कर सकते हैं।
चरण 7: सर्वर साइड ऑफ थिंग्स।
यह एक आम गलतफहमी है कि यूडीपी अविश्वसनीय है और टीसीपी…
यह उतना ही मूर्खतापूर्ण है जितना कि यह कहना कि एक पेचकश की तुलना में एक हथौड़ा अधिक उपयोगी है। वे बस अलग-अलग बहुत उपयोगी उपकरण हैं और उन दोनों के अपने उपयोग हैं।
वैसे यूडीपी के बिना इंटरनेट काम नहीं करेगा… डीएनएस यूडीपी पर आधारित है।
इसलिए, मैंने यूडीपी को चुना क्योंकि यह बहुत हल्का, आसान और तेज़ है।
मुझे लगता है कि मेरा वाईफाई बहुत विश्वसनीय है इसलिए ग्राहक अधिकतम 3 यूडीपी पैकेट भेजेगा यदि पावती "ओके!" प्राप्त नहीं होता है।
TnHserver के लिए C-कोड TnHServer.c फ़ाइल में है।
कोड में इसे समझाते हुए कई टिप्पणियां हैं।
हमें सर्वर पर कुछ अतिरिक्त टूल की आवश्यकता होगी: rrdtool, apache और शायद tcpdump।
रास्पियन पर rrdtool स्थापित करने के लिए आप बस इस तरह से पैकेज स्थापित कर सकते हैं: apt-get install rrdtool
यदि आपको नेटवर्क ट्रैफ़िक को डीबग करने की आवश्यकता है, तो tcpdump काम में आता है apt-get install tcpdump
ग्राफ़ से परामर्श करने के लिए मुझे ब्राउज़र का उपयोग करने में सक्षम होने के लिए एक वेबसर्वर की आवश्यकता है: apt-get install apache2
राउंड रॉबिन डेटाबेस बनाने के लिए कमांड प्राप्त करने के लिए मैंने इस टूल का उपयोग किया: https://rrdwizard.appspot.com/index.php। आपको इसे केवल एक बार चलाने की आवश्यकता है (यदि आप इसे पहली बार सही पाते हैं)।
rrdtool TnHdatabase.rrd बनाएँ -- अभी शुरू करें-10s
--चरण '1200'
'डीएस: तापमान: गेज: 1200: -20.5: 45.5'
'डीएस: आर्द्रता: गेज:1200:0:100.0'
'आरआरए: औसत: 0.5:1:720'
'आरआरए: औसत: 0.5:3:960'
'आरआरए: औसत: 0.5:18:1600'
अंत में, मैं हर दिन आधी रात को अपने TnHserver को पुनरारंभ करने के लिए एक crontab प्रविष्टि का उपयोग करता हूं। मैं सुरक्षा एहतियात के तौर पर TnHserver को एक सामान्य उपयोगकर्ता (यानी रूट नहीं) के रूप में चलाता हूं।
0 0 * * * /usr/bin/pkill TnHserver; /होम/उपयोगकर्ता/बिन/TnHserver >/dev/null 2>&1
आप जाँच कर सकते हैं कि TnHserver किसके द्वारा चल रहा है
$ पीएस -एल्फ | ग्रेप टीएनएचसर्वर
और आप सत्यापित कर सकते हैं कि यह पोर्ट 7777 पर पैकेट के लिए सुन रहा है
$ नेटस्टैट -अनु
सक्रिय इंटरनेट कनेक्शन (सर्वर और स्थापित)
प्रोटो आरईवी-क्यू सेंड-क्यू स्थानीय पता विदेशी पता राज्य
यूडीपी 0 0 0.0.0.0:7777 0.0.0.0:*
अंत में CreateTnH_Graphs.sh.txt ग्राफ़ बनाने के लिए एक उदाहरण स्क्रिप्ट है। (मैं स्क्रिप्ट को रूट के रूप में जेनरेट करता हूं, हो सकता है कि आप ऐसा नहीं करना चाहें।)
एक बहुत ही सरल वेबपेज का उपयोग करके आप अपने होम नेटवर्क पर किसी भी ब्राउज़र से ग्राफ़ देख सकते हैं।
सिफारिश की:
NodeMCU टच सेंसर LDR तापमान नियंत्रण रिले के साथ होम ऑटोमेशन: 16 कदम
NodeMCU टच सेंसर LDR तापमान नियंत्रण रिले के साथ होम ऑटोमेशन: मेरे पिछले NodeMCU प्रोजेक्ट्स में, मैंने Blynk ऐप से दो घरेलू उपकरणों को नियंत्रित किया है। मुझे प्रोजेक्ट को मैन्युअल नियंत्रण के साथ अपग्रेड करने और अधिक सुविधाओं को जोड़ने के लिए कई टिप्पणियां और संदेश प्राप्त हुए हैं। इसलिए मैंने इस स्मार्ट होम एक्सटेंशन बॉक्स को डिज़ाइन किया है। इस IoT
Arduino Uno के साथ LM35 तापमान सेंसर का उपयोग करके तापमान पढ़ना: 4 कदम
Arduino Uno के साथ LM35 तापमान सेंसर का उपयोग करके तापमान पढ़ना: हाय दोस्तों इस निर्देश में हम सीखेंगे कि Arduino के साथ LM35 का उपयोग कैसे करें। Lm35 एक तापमान संवेदक है जो -55°c से 150°C तक तापमान मान पढ़ सकता है। यह एक 3-टर्मिनल डिवाइस है जो तापमान के समानुपाती एनालॉग वोल्टेज प्रदान करता है। उच्च
तापमान सेंसर का नेटवर्क: 6 कदम
तापमान सेंसर का नेटवर्क: तापमान और आर्द्रता आपकी प्रयोगशाला, रसोई, निर्माण लाइन, कार्यालय, हत्यारे रोबोट और यहां तक कि आपके घर में महत्वपूर्ण डेटा हैं। यदि आपको कई स्थानों या कमरों या स्थानों की निगरानी करने की आवश्यकता है, तो आपको कुछ ऐसा चाहिए जो विश्वसनीय, कॉम्पैक्ट, सटीक और प्रासंगिक हो
एक Arduino WiFi नेटवर्क (सेंसर और एक्चुएटर्स) - रंग का सेंसर: 4 कदम
एक Arduino WiFi नेटवर्क (सेंसर और एक्चुएटर्स) - रंग का सेंसर: आपके अनुप्रयोगों में कितनी बार आपके पास कोई सेंसर या कोई एक्चुएटर आपसे दूर है? वाई-फाई नेटवर्क के माध्यम से जुड़े विभिन्न दास उपकरणों को प्रबंधित करने के लिए आपके कंप्यूटर के पास सिर्फ एक मास्टर डिवाइस का उपयोग करना कितना आरामदायक हो सकता है? इस परियोजना में
दोष-सहिष्णु तापमान सेंसर नेटवर्क नियंत्रक: 8 कदम
दोष-सहनशील तापमान सेंसर नेटवर्क नियंत्रक: यह निर्देश आपको दिखाता है कि कैसे दोषपूर्ण सेंसर के स्वचालित अलगाव में सक्षम DS18B20 तापमान सेंसर के एक सेट के लिए एक Arduino Uno बोर्ड को एकल-उद्देश्य नियंत्रक में परिवर्तित किया जाए। नियंत्रक Arduino के साथ 8 सेंसर तक का प्रबंधन कर सकता है ऊनो। (ए