विषयसूची:

BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन: 7 कदम (चित्रों के साथ)
BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन: 7 कदम (चित्रों के साथ)

वीडियो: BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन: 7 कदम (चित्रों के साथ)

वीडियो: BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन: 7 कदम (चित्रों के साथ)
वीडियो: Software Build of LoRa Transmitter, BME280 Sensor based on Arduino ESP32 (EP09) 2024, नवंबर
Anonim
Image
Image
BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन
BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन
BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन
BME280 सेंसर के साथ ESP32 वाईफाई वेदर स्टेशन

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

इस वीडियो में हम इसे बनाने जा रहे हैं। यह अभी तक एक और मौसम स्टेशन परियोजना है जिसे मैं जानता हूं, लेकिन इस बार हम नई ईएसपी 32 चिप का उपयोग करते हैं! हम नए BME280 सेंसर का भी उपयोग करते हैं जो तापमान, आर्द्रता और बैरोमीटर के दबाव को मापता है। जब हम प्रोजेक्ट को पावर देते हैं, तो यह वाईफाई नेटवर्क से जुड़ जाता है, और यह ओपनवेदरमैप वेबसाइट से मेरे स्थान के लिए मौसम के पूर्वानुमान को पुनः प्राप्त करने जा रहा है। फिर यह सेंसर से रीडिंग के साथ इस 3.2”नेक्स्टियन टच डिस्प्ले पर पूर्वानुमान प्रदर्शित करेगा! रीडिंग हर दो सेकंड में अपडेट की जाती है और हर घंटे मौसम का पूर्वानुमान! जैसा कि आप देख सकते हैं, इस परियोजना में हम आज एक निर्माता के लिए उपलब्ध नवीनतम तकनीकों का उपयोग करते हैं! यदि आप एक DIY अनुभवी हैं, तो आप इस प्रोजेक्ट को पांच मिनट में बना सकते हैं।

यदि आप एक नौसिखिया हैं, तो आपको इस परियोजना को करने से पहले कुछ वीडियो देखना होगा। आप इस निर्देश में इन वीडियो के लिंक पा सकते हैं, चिंता न करें।

चलो शुरू करते हैं!

चरण 1: सभी भागों को प्राप्त करें

सभी भागों को प्राप्त करें
सभी भागों को प्राप्त करें

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

  • एक ESP32 बोर्ड ▶
  • एक BME280 I2C सेंसर ▶
  • एक 3.2”नेक्स्टियन डिस्प्ले ▶
  • एक छोटा ब्रेडबोर्ड ▶
  • कुछ तार ▶

परियोजना की लागत लगभग 30 डॉलर है।

ESP32 के बजाय, हम सस्ती ESP8266 चिप का उपयोग कर सकते थे, लेकिन मैंने इसके साथ कुछ अनुभव प्राप्त करने के लिए ESP32 का उपयोग करने का निर्णय लिया और देखें कि क्या काम करता है और क्या नहीं।

चरण 2: ESP32

Image
Image
ESP32
ESP32

यह पहली परियोजना है जिसे मैंने कभी भी नई ईएसपी 32 चिप के साथ बनाया है।

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

कृपया इस बोर्ड के लिए तैयार की गई विस्तृत समीक्षा देखें। मैंने इस निर्देश पर वीडियो संलग्न किया है। यह समझने में मदद करेगा कि यह चिप हमारे चीजों को हमेशा के लिए बनाने के तरीके को क्यों बदल देगी!

चरण 3: अगला प्रदर्शन

Image
Image
BME280 सेंसर
BME280 सेंसर

साथ ही, यह पहला प्रोजेक्ट है जिसे मैंने नेक्स्टियन टच डिस्प्ले के साथ बनाया है।

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

मैंने इस नेक्स्टियन डिस्प्ले के बारे में एक विस्तृत निर्देश योग्य तैयार किया है जो गहराई से बताता है कि वे कैसे काम करते हैं, उनका उपयोग कैसे करें और उनकी कमियां। आप इसे यहां क्लिक करके पढ़ सकते हैं:

चरण 4: BME280 सेंसर

BME280 सेंसर
BME280 सेंसर

बॉश के नए शानदार सेंसर में BME280।

अब तक मैं BMP180 सेंसर का उपयोग कर रहा था जो तापमान और बैरोमीटर के दबाव को माप सकता है। BME280 सेंसर तापमान, आर्द्रता और बैरोमीटर के दबाव को माप सकता है! वह कितना शांत है! संपूर्ण मौसम स्टेशन बनाने के लिए हमें केवल एक सेंसर की आवश्यकता है!

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

इस सेंसर के लिए पहले से ही कई पुस्तकालय विकसित किए गए हैं, इसलिए हम इसे अपनी परियोजनाओं में बहुत आसानी से उपयोग कर सकते हैं! सेंसर की कीमत करीब 5 डॉलर है। आप इसे यहां प्राप्त कर सकते हैं ▶

नोट: हमें BME280 सेंसर की आवश्यकता है। एक BMP280 सेंसर भी है जो आर्द्रता माप प्रदान नहीं करता है। आपको आवश्यक सेंसर को ऑर्डर करने के लिए सावधान रहें।

चरण 5: भागों को जोड़ना

भागों को जोड़ना
भागों को जोड़ना
भागों को जोड़ना
भागों को जोड़ना
भागों को जोड़ना
भागों को जोड़ना

जैसा कि आप योजनाबद्ध आरेख से देख सकते हैं, भागों का कनेक्शन सीधा है।

चूंकि BME280 सेंसर I2C इंटरफ़ेस का उपयोग करता है, इसलिए हमें ESP32 के साथ संचार करने के लिए केवल दो तारों को जोड़ने की आवश्यकता है। मैंने सेंसर को पिन 26 और 27 से जोड़ा है। सिद्धांत रूप में, ESP32 बोर्ड के प्रत्येक डिजिटल पिन का उपयोग I2C बाह्य उपकरणों के साथ किया जा सकता है। हालांकि व्यवहार में, मुझे पता चला कि कुछ पिन काम नहीं करते क्योंकि वे अन्य उपयोगों के लिए आरक्षित हैं। पिन 26 और 27 बढ़िया काम करते हैं!

डिस्प्ले पर डेटा भेजने के लिए, हमें केवल एक तार को ESP32 के TX0 पिन से कनेक्ट करना होगा। डिस्प्ले के फीमेल वायर को जोड़ने के लिए मुझे पिन को इस तरह मोड़ना पड़ा क्योंकि इस ब्रेडबोर्ड के लिए ESP32 बोर्ड बहुत बड़ा है।

भागों को जोड़ने के बाद, हमें कोड को ESP32 पर लोड करना होगा, और हमें GUI को नेक्स्टियन डिस्प्ले पर लोड करना होगा। यदि आपको प्रोग्राम को ESP32 बोर्ड पर अपलोड करने में परेशानी हो रही है, तो Arduino IDE पर अपलोड बटन दबाने के बाद BOOT बटन को दबाए रखें।

GUI को नेक्स्टियन डिस्प्ले में लोड करने के लिए, WeatherStation.tft फ़ाइल को कॉपी करें जिसे मैं आपके साथ एक खाली एसडी कार्ड में साझा करने जा रहा हूँ। एसडी कार्ड को डिस्प्ले के पीछे एसडी कार्ड स्लॉट में डालें। फिर डिस्प्ले को पावर दें, और GUI लोड हो जाएगा। फिर एसडी कार्ड निकालें और फिर से पावर कनेक्ट करें।

कोड को सफलतापूर्वक लोड करने के बाद परियोजना वाईफाई नेटवर्क से जुड़ जाएगी, इसे openweathermap.org वेबसाइट से मौसम का पूर्वानुमान मिलेगा, और यह सेंसर से रीडिंग प्रदर्शित करेगा। आइए अब परियोजना के सॉफ्टवेयर पक्ष को देखें।

चरण 6: परियोजना का कोड

परियोजना का कोड
परियोजना का कोड
परियोजना का कोड
परियोजना का कोड
परियोजना का कोड
परियोजना का कोड

मौसम डेटा को पार्स करने के लिए, हमें उत्कृष्ट Arduino JSON लाइब्रेरी की आवश्यकता है। हमें सेंसर के लिए एक पुस्तकालय की भी आवश्यकता है।

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

आइए अब कोड देखें।

सबसे पहले हमें अपने वाईफाई नेटवर्क का SSID और पासवर्ड सेट करना होगा। इसके बाद, हमें operweathermap.org वेबसाइट से मुफ्त APIKEY दर्ज करनी होगी। अपनी खुद की एपीआई कुंजी बनाने के लिए, आपको वेबसाइट पर साइन अप करना होगा। वर्तमान मौसम डेटा और पूर्वानुमान प्राप्त करना मुफ़्त है, लेकिन यदि आप कुछ पैसे देने को तैयार हैं तो वेबसाइट अधिक विकल्प प्रदान करती है। इसके बाद, हमें अपने स्थान की आईडी ढूंढनी होगी। अपना स्थान खोजें और उस आईडी को कॉपी करें जो आपके स्थान के URL पर पाई जा सकती है।

फिर CityID वेरिएबल में अपने शहर की आईडी दर्ज करें। इसके अलावा, इस चर में अपने शहर की ऊंचाई दर्ज करें। सेंसर से सटीक बैरोमीटर का दबाव रीडिंग के लिए यह मान आवश्यक है।

const char* ssid = "yourSSID";const char* पासवर्ड = "yourPassword"; स्ट्रिंग सिटीआईडी = "253394"; // स्पार्टा, ग्रीस स्ट्रिंग APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // स्पार्टा, ग्रीस में ऊंचाई

अब हम आगे बढ़ने के लिए तैयार हैं।

सबसे पहले, हम सेंसर को इनिशियलाइज़ करते हैं, और हम वाईफाई नेटवर्क से जुड़ते हैं। फिर हम सर्वर से मौसम डेटा का अनुरोध करते हैं।

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

डिस्प्ले को अपडेट करने के लिए, हम सीरियल पोर्ट पर कुछ कमांड इस तरह भेजते हैं:

शून्य शो कनेक्टिंग आइकन () {Serial.println (); स्ट्रिंग कमांड = "weatherIcon.pic=3"; सीरियल.प्रिंट (कमांड); एंडनेक्स्टियन कमांड (); }

नेक्स्टियन जीयूआई में एक पृष्ठभूमि, कुछ टेक्स्टबॉक्स और एक तस्वीर होती है जो मौसम के पूर्वानुमान के आधार पर बदलती है। अधिक जानकारी के लिए कृपया नेक्स्टियन डिस्प्ले ट्यूटोरियल देखें। यदि आप चाहें तो जल्दी से अपना स्वयं का GUI डिज़ाइन कर सकते हैं और उस पर और चीज़ें प्रदर्शित कर सकते हैं।

हमेशा की तरह आप इस निर्देश से जुड़ी परियोजना का कोड पा सकते हैं

चरण 7: अंतिम विचार और सुधार

अंतिम विचार और सुधार
अंतिम विचार और सुधार

जैसा कि आप देख सकते हैं, एक अनुभवी निर्माता आज कुछ ही घंटों में कोड की कुछ पंक्तियों और केवल तीन भागों के साथ रोमांचक प्रोजेक्ट बना सकता है! ऐसा प्रोजेक्ट दो साल पहले भी बनाना नामुमकिन था!

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

मुझे आज की परियोजना के बारे में आपकी राय जानना अच्छा लगेगा। आप मुझे प्रोजेक्ट में किस प्रकार की सुविधाएँ जोड़ना चाहते हैं? क्या आपको यह पसंद है कि यह कैसा दिखता है? आप इसे कैसे विकसित होते देखना चाहते हैं? कृपया अपने विचार नीचे टिप्पणी अनुभाग में पोस्ट करें; मुझे आपके विचार पढ़ना अच्छा लगता है!

वायरलेस प्रतियोगिता
वायरलेस प्रतियोगिता
वायरलेस प्रतियोगिता
वायरलेस प्रतियोगिता

वायरलेस प्रतियोगिता में उपविजेता

सिफारिश की: