विषयसूची:

वाईफाई तापमान लकड़हारा (ESP8266 के साथ): 11 कदम (चित्रों के साथ)
वाईफाई तापमान लकड़हारा (ESP8266 के साथ): 11 कदम (चित्रों के साथ)

वीडियो: वाईफाई तापमान लकड़हारा (ESP8266 के साथ): 11 कदम (चित्रों के साथ)

वीडियो: वाईफाई तापमान लकड़हारा (ESP8266 के साथ): 11 कदम (चित्रों के साथ)
वीडियो: वाईफ़ाई पर एक Arduino / ESP8266 नियंत्रण! || DIY स्मार्ट होम ऑटोमेशन Ep.4 2024, जुलाई
Anonim
Image
Image
सामग्री
सामग्री

नमस्ते, आपको यहाँ देखकर खुशी हुई। मुझे आशा है कि इस निर्देश में आपको कुछ उपयोगी जानकारी मिलेगी। बेझिझक मुझे सुझाव, प्रश्न भेजें … यहां कुछ बुनियादी डेटा और परियोजना का त्वरित अवलोकन दिया गया है। मोबाइल उपयोगकर्ताओं के लिए: वीडियो। टिप्पणी अनुभाग में मुझे बताएं कि आप परियोजना के बारे में क्या सोचते हैं, धन्यवाद। मैंने हाल ही में इसे आज़माने के लिए एक NodeMcu (esp8266 आधारित) बोर्ड खरीदा है, इसलिए यह वास्तव में उन्नत परियोजना नहीं है। लेकिन यह काम करता है और मुझे यही चाहिए, इसलिए यह ठीक है। इस डेटा लॉगर के लिए मुख्य कार्य तापमान एकत्र करना और इसे सर्वर पर सहेजना है। यह उपयोगकर्ताओं को डेटा और ग्राफ़ ऑनलाइन जांचने देता है, भले ही वे लॉगर के एक ही स्थान पर न हों (उदाहरण के लिए मौसम स्टेशन के लिए)। एक अन्य उपयोगी विशेषता कोड में शामिल ओटीए अपडेट है जो उपयोगकर्ता को सॉफ़्टवेयर को आसानी से अपडेट और अनुकूलित करने देता है। मैं सभी पेशेवरों और विपक्षों का संतुलन बनाने के लिए दो सेंसर और उनकी संबंधित अधिग्रहण पद्धति का विश्लेषण करूंगा।

स्पॉयलर: थोड़े से परीक्षण के बाद मैंने पाया कि DS18B20 जैसा डिजिटल सेंसर सबसे अच्छा समाधान है क्योंकि यह स्थिरता और उच्च सटीकता प्रदान करता है। यह पहले से ही वाटरप्रूफ है और केबल के साथ है।

चरण 1: सामग्री

सामग्री
सामग्री
सामग्री
सामग्री
सामग्री
सामग्री

यह केवल कुछ बाहरी घटकों के साथ एक न्यूनतम परियोजना है, इसके लिए बीओएम सूची वास्तव में छोटी होगी। हालांकि, आइए देखें कि किस सामग्री का अनुरोध किया गया है:

  • NodeMcu V3 (या कोई भी संगत ESP8266 μप्रोसेसर);
  • आरजीबी एलईडी (सामान्य एनोड);
  • एलईडी के लिए प्रतिरोधी (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (मैक्सिम इंटीग्रेटेड थर्मामीटर);
  • LM35 (टेक्सास इंस्ट्रूमेंट थर्मामीटर);
  • बाहरी बैटरी (वैकल्पिक);
  • केबल;
  • कनेक्टर (इसे और अधिक "उन्नत" बनाने के लिए);
  • बॉक्स (वैकल्पिक, इसे और अधिक "उन्नत" बनाने के लिए);
  • एलईडी धारक (वैकल्पिक);

नोट: जैसा कि मैंने कहा कि आपको दो विधियों में से एक को चुनना होगा। यदि आप LM35 थर्मामीटर चुनते हैं, तो आपको कुछ अन्य घटकों की आवश्यकता होगी:

  • Attiny45/85;
  • AVR प्रोग्रामर (या ISP के रूप में Arduino);
  • रोकनेवाला (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2.54 मिमी स्ट्रिप कनेक्टर (वैकल्पिक)
  • डायोड (2x1N914)
  • परफ़बोर्ड या पीसीबी;

चरण 2: सेंसर चुनना

सेंसर का चयन
सेंसर का चयन

सेंसर चुनना एक कठिन कदम हो सकता है: आज विभिन्न तापमान रेंज, सटीकता और मामले के साथ एनालॉग और डिजिटल दोनों ट्रांसड्यूसर (टीआई 144 विभिन्न तत्व प्रदान करता है) के टन हैं। एनालॉग सेंसर (टीआई से उपलब्ध 46 भाग): पेशेवर:

  • डेटा लकड़हारा आसानी से तापमान से दूसरी मात्रा (वोल्टेज, करंट,…) में बदला जा सकता है;
  • थोड़ा सस्ता हो सकता है;
  • उपयोग में आसान क्योंकि इसके लिए किसी विशेष पुस्तकालय की आवश्यकता नहीं होती है;

दोष:

  • एडीसी (जो माप की सटीकता को प्रभावित कर सकता है) और अन्य बाहरी घटकों की आवश्यकता होती है। चूंकि esp8266 में केवल एक ADC है (और वास्तव में सटीक नहीं है) मैं एक बाहरी का उपयोग करने का सुझाव दूंगा।
  • शोर अस्वीकृति के साथ समर्पित केबल की आवश्यकता है क्योंकि कोई भी शामिल वोल्टेज परिणाम बदल सकता है।

थोड़ा सोचने के बाद मैंने LM35 का उपयोग करने का निर्णय लिया, 0.5°C सटीकता के साथ +10mV/°C स्केल फैक्टर वाला एक लीनियर सेंसर और 4V से 30V तक के ऑपरेटिंग वोल्टेज के साथ बहुत कम करंट (लगभग 60uA)। अधिक विवरण के लिए मैं डेटाशीट देखने का सुझाव देता हूं: LM35।

डिजिटल सेंसर (अत्यधिक अनुशंसित) पेशेवरों:

लगभग किसी भी बाहरी घटक की जरूरत है;

एकीकृत एडीसी

दोष:

अनुरोध पुस्तकालय या सॉफ्टवेयर डिजिटल सिग्नल को डीकोड करता है (I2C, SPI, सीरियल, वन वायर,…);

अधिक महंगा;

मैंने DS18B20 को चुना है क्योंकि मुझे Amazon पर 5 वॉटरप्रूफ सेंसर का एक सेट मिला है और क्योंकि यह इंटरनेट पर व्यापक रूप से प्रलेखित है। मुख्य विशेषता 9-12 बिट माप, 1-वायर बस, 3.0 से 5.5 आपूर्ति वोल्टेज, 0.5 डिग्री सेल्सियस सटीकता है। दोबारा, अधिक विवरण के लिए यहां डेटाशीट है: DS18B20।

चरण 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

आइए विश्लेषण करें कि मैंने LM35 थर्मामीटर के लिए बाहरी ADC और अन्य सुविधा को कैसे लागू किया है। मुझे तीन तारों वाली एक केबल मिली, एक परिरक्षण के साथ और दो बिना। मैंने सेंसर के पास आपूर्ति वोल्टेज को स्थिर करने के लिए एक डिकूपिंग कैपेसिटर जोड़ने का फैसला किया। एनालॉग तापमान को डिजिटल में बदलने के लिए, मैंने डिप8 पैकेज में Attiny85 माइक्रोप्रोसेसर का उपयोग किया है (फिर से अधिक जानकारी के लिए डेटाशीट देखें: attiny85)। हमारे लिए सबसे महत्वपूर्ण चीज 10 बिट एडीसी है (वास्तव में सबसे अच्छी नहीं बल्कि मेरे लिए पर्याप्त सटीक)। Esp8266 के साथ संवाद करने के लिए मैंने यह ध्यान में रखते हुए सीरियल संचार का उपयोग करने का निर्णय लिया कि esp8266 3.3V और attiny85 के साथ 5V पर काम करता है (क्योंकि इसे सेंसर को शक्ति देने की आवश्यकता होती है)। इसे प्राप्त करने के लिए, मैंने एक साधारण वोल्टेज विभक्त (योजनाबद्ध देखें) का उपयोग किया। नकारात्मक तापमान को पढ़ने के लिए हमें कुछ बाहरी घटकों (2x1N914 और 1x18k रोकनेवाला) को जोड़ने की जरूरत है, क्योंकि मैं नकारात्मक बिजली की आपूर्ति का उपयोग नहीं करना चाहता। यहां कोड है: TinyADC भंडार। नोट: इस कोड को संकलित करने के लिए आपको स्थापित करने की आवश्यकता होगी विचार के अनुरूप (इसे विकल्प में डालें: https://drazzy.com/package_drazzy.com_index.json), यदि आप नहीं जानते कि यह कैसे करना है, तो बस Google पर खोजें। या सीधे.hex फ़ाइल अपलोड करें।

चरण 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

मैंने उन सेंसर को अमेज़ॅन से खरीदा (5 लागत लगभग 10 €)। यह एक स्टेनलेस स्टील कवर और एक केबल 1 मीटर लंबाई के साथ आया था। यह सेंसर तापमान का 9 से 12 बिट डेटा लौटा सकता है। बहुत सारे सेंसर को एक ही पिन में प्लग किया जा सकता है क्योंकि उन सभी के पास एक अद्वितीय आईडी है। DS18B20 को esp8266 पर प्लग करने के लिए आप केवल योजनाबद्ध (दूसरी तस्वीर) का पालन कर सकते हैं। चूंकि मैंने तय किया है कि मेरे लकड़हारे की तीन जांच होगी, इसलिए मुझे यह भेद करना होगा कि कौन सा है। इसलिए मैंने सोचा कि उनके पते पर सॉफ्टवेयर के माध्यम से जुड़ा एक रंग उन्हें दे दूं। मैंने कुछ थर्मो-सिकुड़ने योग्य ट्यूब (तीसरी तस्वीर) का उपयोग किया है।

चरण 5: ESP8266 कोड

ESP8266 कोड
ESP8266 कोड
ESP8266 कोड
ESP8266 कोड

चूंकि मैं इस दुनिया में नया हूं, इसलिए मैंने बहुत सारे पुस्तकालयों का उपयोग करने का फैसला किया। जैसा कि परिचय में कहा गया है, मुख्य विशेषताएं हैं:

  • ओटीए अपडेट: आपको हर बार कोड अपलोड करने के लिए अपने कंप्यूटर पर esp8266 प्लग करने की आवश्यकता नहीं है (आपको इसे केवल पहली बार करना होगा);
  • वायरलेस प्रबंधक, यदि वायरलेस नेटवर्क बदलता है, तो आपको स्केच को फिर से अपलोड करने की आवश्यकता नहीं है। आप बस esp8266 एक्सेस प्वाइंट से कनेक्ट होने वाले नेटवर्क पैरामीटर को फिर से कॉन्फ़िगर कर सकते हैं;
  • थिंग्सपीक डेटा ट्रांसमिशन;
  • LM35 और DS18B20 दोनों समर्थित;
  • सरल यूजर इंटरफेस (आरजीबी एलईडी कुछ उपयोगी जानकारी इंगित करता है);

कृपया मुझे क्षमा करें क्योंकि मेरा सॉफ़्टवेयर सबसे अच्छा नहीं है और यह वास्तव में सुव्यवस्थित नहीं है। डिवाइस पर अपलोड करने से पहले, आपको कोड को अपने सेटअप में फिट करने के लिए कुछ पैरामीटर बदलने होंगे। यहां आप सॉफ्टवेयर डाउनलोड कर सकते हैं। सामान्य LM35 और DS18B20 कॉन्फ़िगरेशन आपको OTA अपडेट के लिए पिन परिभाषा, टोकन, चैनल नंबर, उपयोगकर्ता और पासवर्ड बदलने की आवश्यकता है। 15 से 23 तक लाइन।

#लाल को परिभाषित करें YOURPINHERE # हरे रंग को परिभाषित करें YOURPINHERE

# नीले रंग को परिभाषित करें YourPINHERE const char* host = "मेजबान पता चुनें"; // वास्तव में जरूरत नहीं है आप esp8266-webupdate const char* update_path = "/फर्मवेयर" छोड़ सकते हैं; // अपडेट करने के लिए पता बदलने के लिए: १९२.१६८.१.५/फर्मवेयर कास्ट चार* update_username = "YourUSERHERE"; const char* update_password = "YourPASSWORDHERE; अहस्ताक्षरित लंबा myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey = "WRITEAPIHERE";

चरण 6: ESP8266 कोड: LM35 उपयोगकर्ता

एडीसी इकाई को वीयू पिन और जी पिन का उपयोग करने के लिए, आपको अटारी बोर्ड को esp8266 से कनेक्ट करने की आवश्यकता है। आपको यह चुनना होगा कि आप सीरियल संचार के लिए किस पिन का उपयोग करना चाहते हैं (डिबग उद्देश्य के लिए हार्डवेयर सीरियल को मुक्त रखने के लिए)। टीएक्स पिन का चयन किया जाना चाहिए लेकिन वास्तव में इसका उपयोग नहीं किया जाता है। (पंक्ति २७)। SoftwareSerial mySerial (RXPIN, TXPIN); शीर्ष पर आपको जोड़ने की आवश्यकता है:#LM35USER को परिभाषित करें

चरण 7: ESP8266 कोड: DS18B20 उपयोगकर्ता

पहले ऑपरेशन के रूप में आपको प्रत्येक सेंसर के लिए डिवाइस के पते की पहचान करने की आवश्यकता है। इस कोड को esp में संकलित और प्रोग्राम करें और परिणामों के लिए सीरियल में देखें। कोड यहां पाया जा सकता है (पृष्ठ में इस शीर्षक की खोज करें: «व्यक्तिगत DS18B20 आंतरिक पते पढ़ें»)। पता प्राप्त करने के लिए केवल एक सेंसर कनेक्ट करें, परिणाम कुछ इस तरह होना चाहिए (यहाँ यादृच्छिक संख्या! उदाहरण के रूप में): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12फिर आपको अनुभाग में मेरा कोड बदलने की आवश्यकता है " DS18B20 "(लाइन 31 से 36)" के लिए कॉन्फ़िगरेशन:

# परिभाषित करें ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION //(9 से 12 तक) #देरी को परिभाषित करेंडलास रीडिनटरवल // (मिलीसेकंड में, न्यूनतम 15s या 15000mS है) DeviceAddress BlueSensor = 0x45x, 0x17, 0x45x, 0x12}; // अपने पता डिवाइस के साथ बदलें पता redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // अपने पता डिवाइस के साथ बदलें ग्रीन सेंसर = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // अपने पते के साथ बदलें शीर्ष पर आपको जोड़ने की जरूरत है:#DSUSER को परिभाषित करें

चरण 8: ESP8266 लिटिल ट्रिक

ESP8266 लिटिल ट्रिक
ESP8266 लिटिल ट्रिक

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

चरण 9: पहली बार ऑपरेशन

पहली बार ऑपरेशन
पहली बार ऑपरेशन
पहली बार ऑपरेशन
पहली बार ऑपरेशन

यदि आपने कोड को सही तरीके से अपलोड किया है, लेकिन कभी भी Wifi प्रबंधक लाइब्रेरी का उपयोग नहीं करते हैं, तो यह आपके वाईफाई कनेक्शन को कॉन्फ़िगर करने का समय है। प्रतीक्षा करें जब तक कि आप आरजीबी एलईडी को पहले की तुलना में तेजी से चमकते हुए न देखें, फिर अपने मोबाइल या पीसी से "ऑटोकनेक्टएप" नामक वाईफाई नेटवर्क खोजें और कनेक्ट करें। कनेक्शन के बाद, एक वेब ब्राउज़र खोलें और 192.168.4.1 दर्ज करें, आपको वाईफाई मैनेजर का जीयूआई इंटरफेस मिलेगा (फोटो देखें) और "वाईफाई कॉन्फ़िगर करें" दबाएं। वाईफाई नेटवर्क खोजने के लिए esp8266 की प्रतीक्षा करें, और वांछित का चयन करें। पासवर्ड डालें और "सहेजें" दबाएं। Esp8266 पुनरारंभ होगा (इस बार RGB ने नेतृत्व किया है क्योंकि यह कुछ यादृच्छिक जानकारी आउटपुट करेगा) और नेटवर्क से कनेक्ट होगा।

चरण 10: निष्कर्ष

निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष

अंत में, मेरे फ्रीजर तापमान को लॉग करते समय डेटा लॉगर से कार्रवाई में एक ग्राफ यहां दिया गया है। नारंगी में DS18B20 है और नीले रंग में LM35 और यह सर्किट है। आप डिजिटल से एनालॉग सेंसर (मेरे खराब "एडीसी सर्किट" के साथ) की सटीकता में सबसे बड़ा अंतर देख सकते हैं जो कुछ गैर-भौतिक डेटा देते हैं। संक्षेप में, यदि आप इस लकड़हारे को बनाना चाहते हैं तो मेरा सुझाव है कि DS18B20 डिजिटल तापमान सेंसर का उपयोग करें क्योंकि यह है पढ़ने में आसान और लगभग "प्लग एंड प्ले", यह अधिक स्थिर और सटीक है, यह 3.3V पर चलता है और बहुत सारे सेंसर के लिए केवल एक पिन की आवश्यकता होती है। ध्यान देने के लिए धन्यवाद, मुझे आशा है कि यह प्रोजेक्ट आपके और आपके लिए अच्छा है कुछ उपयोगी जानकारी मिली। और जो इसे महसूस करना चाहता है, मेरी इच्छा है कि मैंने सभी आवश्यक जानकारी दी। अगर सब कुछ पूछने के लिए स्वतंत्र नहीं हुआ, तो मुझे सभी सवालों के जवाब देने में खुशी होगी। चूंकि मैं अंग्रेजी बोलने वाला नहीं हूं, अगर कुछ गलत है या समझ में नहीं आता है तो कृपया मुझे बताएं। अगर आपको यह प्रोजेक्ट पसंद आया, तो कृपया इसे प्रतियोगिता के लिए वोट करें और/या एक टिप्पणी छोड़ दें ☺। यह मुझे नई सामग्री को अद्यतन और प्रकाशित करने के लिए प्रोत्साहित करेगा। धन्यवाद।

सिफारिश की: