विषयसूची:

तापमान और आर्द्रता मॉनिटर: 6 कदम (चित्रों के साथ)
तापमान और आर्द्रता मॉनिटर: 6 कदम (चित्रों के साथ)

वीडियो: तापमान और आर्द्रता मॉनिटर: 6 कदम (चित्रों के साथ)

वीडियो: तापमान और आर्द्रता मॉनिटर: 6 कदम (चित्रों के साथ)
वीडियो: ताले की चाभी खो जाए तो? by Right To Shiksha 2024, जुलाई
Anonim
तापमान और आर्द्रता मॉनिटर
तापमान और आर्द्रता मॉनिटर
तापमान और आर्द्रता मॉनिटर
तापमान और आर्द्रता मॉनिटर

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

डिवाइस के मुख्य भाग एक ESP8266 माइक्रोकंट्रोलर, एक DHT11 तापमान और आर्द्रता सेंसर और एक 16x4 वर्ण एलसीडी हैं। परियोजना पूरी तरह से खुला स्रोत है, इसलिए संलग्नक के लिए योजनाबद्ध, बोर्ड लेआउट और डिज़ाइन फ़ाइलों को डाउनलोड करने के लिए स्वतंत्र महसूस करें और अपनी पसंद का कोई भी परिवर्तन करें।

चरण 1: उपकरण और भाग

उपकरण और भाग
उपकरण और भाग
उपकरण और भाग
उपकरण और भाग
उपकरण और भाग
उपकरण और भाग
उपकरण और भाग
उपकरण और भाग

मॉनिटर बनाने के लिए आपको निम्नलिखित भागों की आवश्यकता होगी:

1 x ESP-12F [2€] - जहाँ तक मुझे पता है ESP-12E और ESP-12F मूल रूप से समान हैं, इस अंतर के साथ कि ESP-12F में एक बेहतर एंटीना है।

1 x DHT11 तापमान और आर्द्रता सेंसर [0.80€] - DHT22 भी काम करने वाला है लेकिन बाड़े के 3D मॉडल पर कुछ बदलाव करने होंगे, DHT22 भी थोड़ा अधिक महंगा है।

१ x १६x४ कैरेक्टर एलसीडी ५वी [३.३०€] - हाँ, आपको ५वी की आवश्यकता होगी क्योंकि पीसीबी को डिज़ाइन किया गया है ताकि एलसीडी वोल्टेज नियामक के बजाय सीधे ५वी से संचालित हो। यह वोल्टेज रेगुलेटर पर लोड को कम करने के लिए किया गया था, बल्कि इसलिए भी कि 5V डिस्प्ले सस्ते होते हैं। लेकिन चिंता न करें, भले ही ESP8266 3.3V पर काम करता है, फिर भी यह ठीक काम करेगा।

1 x LD1117V33 SMD वोल्टेज रेगुलेटर, जिसे LD33 (SOT223 पैकेज) के रूप में भी जाना जाता है [0.80€]

1 x 100nF सिरेमिक SMD संधारित्र (0603 पैकेज)

1 x 10uF टैंटलम SMD संधारित्र (3528 पैकेज)

1 एक्स 10 के एसएमडी प्रतिरोधी (0805 पैकेज)

1 x 10K ट्रिमर पॉट (छेद के माध्यम से)

1 x 47Ω एसएमडी रेसिस्टर (0805 पैकेज) - यह केवल एलसीडी की बैकलाइट में जाने वाले करंट को सीमित करने के लिए है। विभिन्न प्रतिरोध मूल्यों के साथ प्रयोग करने के लिए स्वतंत्र महसूस करें और अपनी पसंद की तीव्रता चुनें।

१ एक्स एसएमडी मोमेंटरी स्विच [०.८०€] - मैंने जो विशेष उपयोग किया है वह यह है, लेकिन आप किसी भी क्षणिक स्विच का उपयोग उसी पदचिह्न के साथ कर सकते हैं। मैं एक से अधिक प्राप्त करके ईबे पर समान स्विच खोजने में भी सक्षम था।

१ x ५.५x२.१ मिमी डीसी जैक (पैनल माउंट) [०.५० €] - मेरे द्वारा उपयोग किए जाने वाले में 8 मिमी पैनल कटआउट व्यास और 9 मिमी लंबाई है। इसे "पैनल माउंट डीसी जैक" (संलग्न चित्र देखें) की खोज करके ईबे पर आसानी से पाया जा सकता है।

1 x 2.54mm (100mil) 40-पिन पुरुष पिन हैडर (छेद के माध्यम से)

1 x 2.54mm (100mil) 40-पिन मशीनी महिला पिन हैडर (छेद के माध्यम से)

1 x 2.54mm (100mil) जम्पर - यह वही है जो कंप्यूटर मदरबोर्ड पर इस्तेमाल होता है।

4 x M3 8mm बोल्ट

4 x M3 4x4mm थ्रेडेड इंसर्ट - eBay पर "M3 प्रेस-इन ब्रास कॉपर इंसर्ट्स" की खोज करके उन्हें आसानी से पाया जा सकता है (संलग्न चित्र देखें)।

4 एक्स एम 2 12 मिमी बोल्ट

4 एक्स एम 2 नट

१ x यूएसबी टाइप ए से ५.५x२.१ मिमी डीसी प्लग केबल [१.५€] - यह आपके डिवाइस को या तो एक मानक फोन चार्जर या यूएसबी पोर्ट वाले किसी भी कंप्यूटर से पावर देने की अनुमति देगा। डिवाइस केवल 300mA सबसे खराब स्थिति और औसतन 250mA खींचता है, इसलिए USB 2.0 पोर्ट भी करेगा।

1 एक्स पीसीबी - बोर्ड की मोटाई महत्वपूर्ण नहीं है, इसलिए केवल 1.6 मिमी के लिए जाएं जो आमतौर पर अधिकांश पीसीबी निर्माताओं के साथ सबसे सस्ता विकल्प है।

फंसे हुए तार के 3 एक्स टुकड़े (लगभग 60 मिमी प्रत्येक)

हीटश्रिंक टयूबिंग के 3 x टुकड़े (प्रत्येक के बारे में 10 मिमी)

और निम्नलिखित उपकरण:

सोल्डरिंग आयरन

USB से सीरियल कन्वर्टर - बोर्ड पर ESP8266 की प्रोग्रामिंग के लिए आपको इसकी आवश्यकता होगी।

फिलिप्स स्क्रूड्राइवर और/या हेक्स की - आपके द्वारा उपयोग किए जाने वाले स्क्रू के प्रकार के आधार पर।

3D प्रिंटर - यदि आपके पास 3D प्रिंटर तक पहुंच नहीं है, तो आप हमेशा एक सामान्य प्लास्टिक प्रोजेक्ट बॉक्स का उपयोग कर सकते हैं और एक Dremel के साथ स्वयं कटआउट बना सकते हैं। ऐसे बॉक्स के लिए न्यूनतम आंतरिक आयाम 24 मिमी ऊंचाई, 94 मिमी लंबाई और 66 मिमी चौड़ाई होना चाहिए। LCD को माउंट करने के लिए आपको 8mm M2 स्टैंड-ऑफ का भी उपयोग करना होगा।

Dremel - केवल तभी आवश्यक है जब आप 3D प्रिंटेड बाड़े के लिए नहीं जाते हैं।

चरण 2: पीसीबी बनाना

पीसीबी बनाना
पीसीबी बनाना
पीसीबी बनाना
पीसीबी बनाना
पीसीबी बनाना
पीसीबी बनाना

पहला कदम पीसीबी बनाना है। आप इसे या तो स्वयं नक़्क़ाशी करके या अपने पसंदीदा पीसीबी निर्माता की वेबसाइट पर जाकर ऑर्डर कर सकते हैं। यदि आप बोर्ड लेआउट में कोई बदलाव करने की योजना नहीं बनाते हैं, तो आप बस इस चरण पर संलग्न gerber फ़ाइलों वाली ज़िप फ़ाइल को पकड़ सकते हैं और इसे सीधे निर्माता को भेज सकते हैं। यदि आप परिवर्तन करना चाहते हैं, तो KiCAD योजनाबद्ध और बोर्ड लेआउट फाइलें यहां पाई जा सकती हैं।

बोर्डों पर अपना हाथ रखने के बाद घटकों को मिलाप करने का समय आ गया है। यह बहुत सीधा होना चाहिए, लेकिन कुछ चीजें हैं जिन पर ध्यान दिया जाना चाहिए। सबसे पहले, एलसीडी हेडर पर पीसीबी को अभी तक मिलाप करने के लिए आगे न बढ़ें, इसे अंतिम असेंबली के दौरान संलग्न करने के तरीके के कारण करने की आवश्यकता होगी। यदि आप अपना स्वयं का बाड़ा बना रहे हैं, तो उस सलाह को अनदेखा करने के लिए स्वतंत्र महसूस करें।

U3 कनेक्टर वह जगह है जहां DHT11 सेंसर कनेक्ट होने वाला है। आदर्श रूप से, आपको उस उद्देश्य के लिए 90° के कोण वाली मशीनी महिला पिन हैडर का उपयोग करना चाहिए। लेकिन अगर आप मुझे पसंद करते हैं तो एक को नहीं ढूंढ पा रहे हैं, बस एक सीधा प्राप्त करें और इसे स्वयं मोड़ें। यदि आप बाद में करते हैं, तो DHT11 की लीड भी थोड़ी कम होने वाली है, इसलिए आपको कुछ एक्सटेंशन मिलाप करने होंगे। एक बार कनेक्ट होने के बाद पिन हेडर और सेंसर के बीच की दूरी लगभग 5 मिमी होनी चाहिए।

आप मशीनी पिन हेडर का उपयोग क्यों करना चाहते हैं, इसका कारण यह है कि नियमित महिला पिन हेडर की तुलना में छेद छोटे होते हैं। तो, सेंसर के लीड एक ठोस संबंध बनाते हुए मजबूती से वहां बैठ सकते हैं। लेकिन आप पुरुष पिन हेडर के एक टुकड़े पर DHT11 को टांका लगाने की कोशिश कर सकते हैं और इसे एक नियमित कोण वाली महिला पिन हेडर से जोड़ सकते हैं, जो ठीक उसी तरह काम करना चाहिए।

चरण 3: संलग्नक बनाना

संलग्नक बनाना
संलग्नक बनाना
संलग्नक बनाना
संलग्नक बनाना
संलग्नक बनाना
संलग्नक बनाना
संलग्नक बनाना
संलग्नक बनाना

अब जब पीसीबी मिलाप हो गया है तो बाड़े को बनाने का समय आ गया है। दो अलग-अलग भाग होते हैं जिन्हें मुद्रित करने की आवश्यकता होती है, बाड़े का मुख्य भाग और ढक्कन। ढक्कन में इसे आपकी दीवार पर संलग्न करने के लिए बढ़ते छेद भी हैं।

दोनों भागों को 0.2 मिमी परत की ऊंचाई पर एक मानक 0.4 मिमी नोजल के साथ मुद्रित किया जा सकता है, मेरे मामले के लिए दोनों भागों को संयुक्त रूप से प्रिंट करने का समय लगभग 4 घंटे था। ढक्कन को किसी भी बाड़े के मुख्य भाग का समर्थन करने की आवश्यकता नहीं होती है, हालांकि मुख्य रूप से स्क्रू सॉकेट के नीचे के हिस्से के लिए होता है। मुद्रण के बाद समर्थन को हटाने में बहुत सावधानी बरतें, मैं ऐसा करते समय एलसीडी के लिए एक स्टैंड-ऑफ को तोड़ने में कामयाब रहा और इसे सुपरग्लू के साथ वापस गोंद करना पड़ा।

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

चरण 4: मॉनिटर को असेंबल करना

संलग्नक मुद्रित होने के साथ, सब कुछ एक साथ रखने का समय। सबसे पहले, एलसीडी को केस के अंदर रखें और इसे बाईं ओर स्लाइड करें, ताकि इसके और सेंसर के लिए छेद के बीच एक गैप हो।

छवि
छवि

इसके बाद, इसके ऊपर पीसीबी रखें, जिसमें सेंसर पहले से ही पिन हेडर पर लगा हो।

छवि
छवि

उसके बाद, सेंसर को छेद में धकेलें, एलसीडी को वापस स्थिति में स्लाइड करें और पिन हेडर पर पीसीबी डालें। अब एम2 नट और बोल्ट का उपयोग करके एलसीडी को ठीक करें, और पिन हेडर पर पीसीबी को मिलाप करें।

छवि
छवि

इसके बाद, पावर जैक को जगह दें, उसमें कुछ तार लगाएं और उनके दूसरे सिरों को पीसीबी से मिलाएं। यहाँ कुछ हीट श्रिंक ट्यूबिंग का उपयोग करना भी एक अच्छा विचार होगा।

छवि
छवि

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

छवि
छवि

चरण 5: सर्वर सेट करना

सर्वर सेट करना
सर्वर सेट करना

फर्मवेयर को ESP8266 पर अपलोड करने से पहले एक और काम करने की जरूरत है, जो डिवाइस द्वारा प्राप्त डेटा को लॉग करने के लिए एक सर्वर स्थापित कर रहा है। उस उद्देश्य के लिए आप अपने निजी नेटवर्क पर रास्पबेरी पाई से लेकर DigitalOcean छोटी बूंद तक, अपनी इच्छानुसार किसी भी लिनक्स मशीन का उपयोग कर सकते हैं। मैं बाद के साथ गया, लेकिन प्रक्रिया काफी हद तक वही है जो आप चुनते हैं।

Apache, MySQL (MariaDB) और PHP को स्थापित करना

सबसे पहले हमें LAMP को सेटअप करना होगा, या दूसरे शब्दों में सर्वर पर Apache, MySQL (MariaDB) और PHP इंस्टॉल करना होगा। उसके लिए आपको अपने डिस्ट्रो के पैकेज मैनेजर का उपयोग करने की आवश्यकता होगी, उदाहरण के लिए मैं उपयुक्त का उपयोग करूंगा जो कि रास्पियन सहित किसी भी डेबियन आधारित डिस्ट्रो द्वारा उपयोग किया जाने वाला पैकेज मैनेजर है।

सुडो उपयुक्त अद्यतन

sudo apt स्थापित apache2 mysql-server mysql-client php libapache2-mod-php php-mysql

उसके बाद किया जाता है, यदि आप अपने सर्वर का आईपी पता अपने ब्राउज़र के एड्रेस बार में डालते हैं तो आपको अपाचे का डिफ़ॉल्ट पृष्ठ देखने में सक्षम होना चाहिए।

डेटाबेस की स्थापना

अब हमें डेटा लॉगिंग के लिए एक डेटाबेस की आवश्यकता है। सबसे पहले, MySQL को रूट के रूप में चलाकर कनेक्ट करें, सुडो mysql

और डेटाबेस और उपयोगकर्ता को इस तक पहुंच के साथ बनाएं, डेटाबेस `सेंसर` बनाएं

'सेंसर' का उपयोग करें; तालिका बनाएँ `तापमान` (`id` bigint(20) नॉट AUTO_INCREMENT, `client_id` smallint(6) NOT NULL, `value` smallint(6) NOT NULL, `created_at` टाइमस्टैम्प नॉट न्यूल डिफॉल्ट CURRENT_TIMESTAMP, प्राथमिक कुंजी (` id`)) इंजन = InnoDB; तालिका बनाएँ `आर्द्रता` (`id` bigint(20) नहीं पूर्ण AUTO_INCREMENT, `client_id` smallint(6) NULL, `value` smallint(6) NOT NULL, `created_at` टाइमस्टैम्प नहीं पूर्ण डिफ़ॉल्ट CURRENT_TIMESTAMP, प्राथमिक कुंजी (` id`)) इंजन = InnoDB; उपयोगकर्ता बनाएं '[उपयोगकर्ता नाम]' @ 'लोकलहोस्ट' '[पासवर्ड]' द्वारा पहचाना गया; 'सेंसर' पर सभी विशेषाधिकार प्रदान करें। * 'सेंसर' @ 'लोकलहोस्ट' को; बाहर जाएं

[उपयोगकर्ता नाम] और [पासवर्ड] को उस वास्तविक उपयोगकर्ता नाम और पासवर्ड से बदलना सुनिश्चित करें जो आपको पसंद है। साथ ही, उन्हें नोट कर लें क्योंकि अगले चरण के लिए आपको उनकी आवश्यकता होगी।

लॉगिंग और वेब इंटरफेस स्क्रिप्ट को कॉन्फ़िगर करना

/var/www/html निर्देशिका में बदलें जो कि अपाचे के डिफ़ॉल्ट वर्चुअल होस्ट का दस्तावेज़ रूट है, HTML फ़ाइल को हटा दें जिसमें डिफ़ॉल्ट वेबपेज है और इसके अंदर लॉगिंग और वेब इंटरफ़ेस स्क्रिप्ट डाउनलोड करें।

सीडी /var/www/html

sudo rm index.html sudo wget https://raw.githubusercontent.com/magkopian/esp-arduino-temp-monitor/master/server/log.php sudo wget https://raw.githubusercontent.com/magkopian/esp- arduino-temp-monitor/master/server/index.php

अब नैनो का उपयोग करके लॉगिंग स्क्रिप्ट को संपादित करें, सूडो नैनो लॉग.php

आपको [उपयोगकर्ता नाम] और [पासवर्ड] को MySQL उपयोगकर्ता के लिए उपयोगकर्ता नाम और पासवर्ड से बदलना होगा जिसे आपने पिछले चरण में बनाया था। साथ ही, [क्लाइंट कुंजी] को एक अद्वितीय स्ट्रिंग से बदलें और इसे नोट करें। यह एक पासवर्ड के रूप में उपयोग किया जा रहा है ताकि मॉनिटर सर्वर पर खुद को प्रमाणित कर सके।

अंत में, index.php को नैनो के साथ संपादित करें, सूडो नैनो इंडेक्स.php

और [उपयोगकर्ता नाम] और [पासवर्ड] को MySQL उपयोगकर्ता के लिए उपयोगकर्ता नाम और पासवर्ड से बदलें जैसा आपने लॉगिंग स्क्रिप्ट के साथ किया था।

HTTPS सेट करना (वैकल्पिक)

यह वैकल्पिक हो सकता है, लेकिन यदि ESP8266 और सर्वर के बीच कनेक्शन इंटरनेट पर है तो कुछ एन्क्रिप्शन का उपयोग करने की अत्यधिक अनुशंसा की जाती है।

दुर्भाग्य से, आप अभी आगे नहीं बढ़ सकते हैं और प्रमाणपत्र प्राप्त करने के लिए Let's Encrypt जैसी किसी चीज़ का उपयोग कर सकते हैं। ऐसा इसलिए है क्योंकि कम से कम लेखन के समय, ESP8266 के लिए HTTP क्लाइंट लाइब्रेरी को अभी भी http.begin() को कॉल करते समय प्रमाण पत्र के फिंगरप्रिंट को दूसरे तर्क के रूप में प्रदान करने की आवश्यकता होती है। इसका मतलब यह है कि यदि आप Let’s Encrypt जैसी किसी चीज़ का उपयोग करते हैं, तो आपको प्रत्येक नवीनीकरण के बाद प्रमाणपत्र फ़िंगरप्रिंट को अपडेट करने के लिए फ़र्मवेयर को हर 3 महीने में चिप पर रीफ़्लैश करना होगा।

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

शुरू करने से पहले, मैं मान लूंगा कि आपके पास पहले से ही एक डोमेन नाम है और आप उस पर सबडोमेन बनाने में सक्षम हैं। तो, एक प्रमाण पत्र उत्पन्न करने के लिए जो 10 वर्षों के बाद समाप्त हो जाता है, निम्न आदेश चलाएँ और प्रश्नों का उत्तर दें।

sudo opensl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/sensors.key -out /etc/ssl/certs/sensors.crt

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

अगला एक नया वर्चुअल होस्ट कॉन्फ़िगरेशन बनाएं, सुडो नैनो /etc/apache2/साइट-उपलब्ध/सेंसर-ssl.conf

निम्नलिखित सामग्री के साथ, सर्वरनाम [उपडोमेन] DocumentRoot /var/www/sensors SSLCertificateKeyFile पर SSLEngine /etc/ssl/private/sensors.key SSLCertificateFile /etc/ssl/certs/sensors.crt विकल्प +FollowSymlinks -Indexes AllowOverride All ErrorLog_DPACHE_DIR}/s error-ssl.log CustomLog ${APACHE_LOG_DIR}/sensors-access-ssl.log संयुक्त

फिर से, [सबडोमेन] को उसी सबडोमेन से बदलना सुनिश्चित करें जिसका उपयोग आपने सर्टिफिकेट के साथ किया था। इस बिंदु पर आपको अपाचे के डिफ़ॉल्ट वर्चुअल होस्ट को अक्षम करना होगा, sudo a2dissite 000-डिफ़ॉल्ट

दस्तावेज़ रूट निर्देशिका का नाम बदलें, सुडो एमवी /var/www/html /var/www/sensors

और अंत में नए वर्चुअल होस्ट को सक्षम करें और अपाचे को पुनरारंभ करें, sudo a2ensite sensors-ssl

sudo systemctl पुनरारंभ apache2

आखिरी चीज जो करने की जरूरत है वह है प्रमाणपत्र का फिंगरप्रिंट प्राप्त करना, क्योंकि आपको इसे फर्मवेयर कोड में उपयोग करने की आवश्यकता होगी।

opensl x509 -noout -fingerprint -sha1 -inform pem -in /etc/ssl/certs/sensors.crt

http.begin() फ़िंगरप्रिंट के बाइट्स के बीच के डिलीमीटर को रिक्त स्थान होने की अपेक्षा करता है, इसलिए आपको अपने कोड में उपयोग करने से पहले कोलन को रिक्त स्थान से बदलना होगा।

अब, यदि आप वेब इंटरफ़ेस के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग नहीं करना चाहते हैं तो एक नया सबडोमेन सेटअप करें और एक नया वर्चुअल होस्ट कॉन्फ़िगरेशन बनाएं, sudo nano /etc/apache2/sites-available/sensors-web-ssl.conf

निम्नलिखित सामग्री के साथ, सर्वरनाम [उपडोमेन] DocumentRoot /var/www/sensors #SSLEngine ON #SSLCertificateFile /etc/letsencrypt/live/[subdomain]/cert.pem #SSLCertificateKeyFile /etc/letsencrypt/live/[subdomain]/privkey.pem #SSLCertificateChainFile /etc /letsencrypt/live/[subdomain]/chain.pem विकल्प +FollowSymlinks -Indexes AllowOverride All ErrorLog ${APACHE_LOG_DIR}/sensors-web-error-ssl.log CustomLog ${APACHE_LOG_DIR}/sensors-web-access-ssl.log संयुक्त

[सबडोमेन] को उस सबडोमेन से बदलना सुनिश्चित करें जिसे आपने वेब इंटरफेस के लिए सेटअप किया है। अगला नया वर्चुअल होस्ट सक्षम करें, अपाचे को पुनरारंभ करें, सर्टिफिकेट इंस्टॉल करें और लेट्स एनक्रिप्ट से नए सबडोमेन के लिए एक प्रमाणपत्र प्राप्त करें, sudo a2ensite sensor-web-ssl

sudo systemctl apache2 को पुनरारंभ करें sudo apt अद्यतन sudo apt certbot स्थापित करें sudo certbot certonly --apache -d [उपडोमेन]

प्रमाणपत्र प्राप्त करने के बाद वर्चुअल होस्ट कॉन्फ़िगरेशन को फिर से संपादित करें ताकि SSLEngine, SSLCertificateFile, SSLCertificateKeyFile और SSLCertificateChainFile लाइनों को असम्बद्ध किया जा सके और Apache को पुनरारंभ किया जा सके।

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

चरण 6: ESP8266 की प्रोग्रामिंग

ESP8266 प्रोग्रामिंग
ESP8266 प्रोग्रामिंग

अंत में, माइक्रोकंट्रोलर पर फर्मवेयर लोड करने के लिए केवल एक चीज बची है। ऐसा करने के लिए, फर्मवेयर के लिए स्रोत कोड यहां से डाउनलोड करें और इसे Arduino IDE का उपयोग करके खोलें। आपको अपने वाईफाई नेटवर्क के वास्तविक एसएसआईडी और पासवर्ड के साथ [एसएसआईडी] और [पासवर्ड] को बदलना होगा। आपको sprintf फ़ंक्शन कॉल पर [क्लाइंट आईडी] और [क्लाइंट कुंजी] को सर्वर पर PHP स्क्रिप्ट पर उपयोग किए जाने वाले कॉल के साथ बदलने की भी आवश्यकता होगी। अंत में, आपको [होस्ट] को डोमेन नाम या सर्वर के आईपी पते से बदलना होगा। यदि आप HTTPS का उपयोग कर रहे हैं, तो आपको http.begin() के फ़ंक्शन कॉल पर दूसरे तर्क के रूप में अपने प्रमाणपत्र के फ़िंगरप्रिंट की आपूर्ति करने की भी आवश्यकता होगी। मैंने पिछले चरण के "सेटिंग अप HTTPS" अनुभाग में प्रमाणपत्र के फ़िंगरप्रिंट को प्राप्त करने का तरीका बताया है।

अगला, यदि आपने पहले से ऐसा नहीं किया है, तो आपको Arduino IDE के बोर्ड प्रबंधक का उपयोग करके ESP8266 सामुदायिक कोर पैकेज स्थापित करने की आवश्यकता होगी। एक बार यह हो जाने के बाद, बोर्ड मेनू से NodeMCU 1.0 (ESP-12E मॉड्यूल) का चयन करें। इसके बाद, आपको लाइब्रेरी मैनेजर का उपयोग करके SimpleDHT लाइब्रेरी को स्थापित करना होगा। अंत में, यह सुनिश्चित करने के लिए कि कोड त्रुटियों के बिना संकलित है, अपनी आईडीई विंडो के ऊपरी बाएं कोने पर सत्यापित करें बटन दबाएं।

और अब, फर्मवेयर को माइक्रोकंट्रोलर में जलाने का समय आ गया है। ऐसा करने के लिए जम्पर JP1 को दाईं ओर ले जाएं, इसलिए ESP8266 का GPIO0 जमीन से जुड़ा होगा जो प्रोग्रामिंग मोड को सक्षम करेगा। फिर, अपने USB को सीरियल कनवर्टर से जम्पर तारों का उपयोग करके प्रोग्रामिंग हेडर से संलग्न करें जिसे P1 के रूप में लेबल किया गया है। प्रोग्रामिंग हेडर का पिन 1 ग्राउंड है, पिन 2 ESP8266 का रिसीव पिन है और पिन 3 ट्रांसमिट है। आपको अपने USB से सीरियल कन्वर्टर को ट्रांसमिट करने के लिए ESP8266 प्राप्त करने की आवश्यकता है, प्राप्त करने के लिए ट्रांसमिट और निश्चित रूप से ग्राउंड टू ग्राउंड।

अंत में, अपने USB से DC जैक केबल का उपयोग करके डिवाइस को 5V से पावर दें और USB को सीरियल कनवर्टर से अपने कंप्यूटर से कनेक्ट करें। जैसे ही आप अपने IDE पर टूल मेनू खोलते हैं, अब आपको वर्चुअल सीरियल पोर्ट देखने में सक्षम होना चाहिए जहां ESP8266 जुड़ा हुआ है। अब, बस अपलोड बटन दबाएं और बस! यदि सब कुछ अपेक्षित रूप से चला तो आपको डिवाइस के एलसीडी पर तापमान और आर्द्रता रीडिंग देखने में सक्षम होना चाहिए। ESP8266 आपके नेटवर्क से कनेक्ट होने और सर्वर से संचार शुरू करने के बाद, वर्तमान तिथि और समय भी डिस्प्ले पर दिखना चाहिए।

कुछ घंटों के बाद जब सर्वर ने अच्छी मात्रा में डेटा एकत्र किया होगा तो आपको http(s)://[host]/index.php?client_id=[client id] पर जाकर तापमान और आर्द्रता चार्ट देखने में सक्षम होना चाहिए।जहां [होस्ट] या तो आपके सर्वर का आईपी पता है या वेब इंटरफेस के लिए आप जिस सबडोमेन का उपयोग कर रहे हैं, और [क्लाइंट आईडी] डिवाइस की क्लाइंट आईडी है, अगर आपने इसे इसके डिफ़ॉल्ट मान पर छोड़ दिया है तो यह 1 होना चाहिए।

सिफारिश की: