विषयसूची:
वीडियो: ESP32 स्क्रैपर-पार्सर-मेलर और लाइव मैपर: 4 चरण (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
हैलो वर्ल्ड! यह मेरी पहली शिक्षाप्रद है! मैं ग्रोसेटो इटली से मार्को हूं, मैं डेवलपर नहीं हूं, मैं इलेक्ट्रॉनिक इंजीनियर नहीं हूं लेकिन मैं हमारे स्थानीय प्राकृतिक पार्क (मारेम्मा प्राकृतिक पार्क) में एक पर्यावरण गाइड हूं।
मेरे सहकारी में हम बर्डवॉचिंग के लिए डोंगी पर्यटन, प्राकृतिक और शांत पर्यटन के साथ ओम्ब्रोन नदी पर बहुत काम करते हैं और थोड़ा आराम करते हैं।
लेकिन ओम्ब्रोन नदी अपने विशिष्ट प्रकार के प्रवाह के लिए भी प्रसिद्ध है: गर्मियों में "शून्य" से लेकर शरद ऋतु-सर्दियों के प्रवाह में प्रति घंटे कई हजार क्यूबिक मीटर पानी।
इस कारण से, उत्कृष्ट क्षेत्रीय हाइड्रोमेट्रिक सेवा (एसआईआर) द्वारा ओम्ब्रोन नदी की लगातार निगरानी की जाती है, जिसमें एक शानदार साइट होती है जो एकत्रित डेटा उपलब्ध कराती है।
अब हम मौसम के अंत की प्रतीक्षा कर रहे हैं और पहली शरद ऋतु की बाढ़ के लिए गोदी और डोंगी को हटाने के लिए …
लेकिन जब हम esp32ing आदि को स्क्रैप करने के बारे में बात करना शुरू करते हैं? एक पल और
इतालवी लॉकडाउन के दौरान मैंने पहला arduino ब्लिंक पाठ किया है, अच्छा… और मैंने सेंसर और arduino C के साथ खेलना जारी रखा है। इसलिए यदि आपको मेरा कोड क्रूड या बकवास तार्किक अंतराल से भरा लगता है तो इस पर विचार करें!
मैंने समय बर्बाद करने के लिए बहुत सी चीजें कीं लेकिन बाढ़ के इस निरंतर जोखिम के साथ मैंने कुछ अच्छा करने का फैसला किया: एक ईएसपी 32 के लिए धन्यवाद जिसमें एक आर्डिनो फॉर्म फैक्टर (वेमोस डी 1 आर 32) है जिसे मैंने महीनों तक लपेटा रखा क्योंकि मुझे लगा कि "मुश्किल", मुझे वास्तव में बहुत संतुष्टि मिली:
मैंने एक स्क्रैपर किया है जो एक SIR वेबपेज से डेटा लाता है और पार्स करता है और एक सस्ते i2c LCD पर प्राप्त चर प्रदर्शित करता है, और एक यथार्थवादी मानचित्र पर कुछ एलईडी पर चमक-आवृत्ति ब्लिंकिंग के रूप में।
इसलिए यदि पहाड़ की ओर से बाढ़ आती है तो मुझे मानचित्र पर एलईडी की बढ़ती चमक (स्तर परिवर्तन) और बढ़ती आवृत्ति (एक घंटे में स्तर परिवर्तन) द्वारा चेतावनी दी जाएगी … लेकिन ESP32 ईमेल भी भेज सकता है! तो क्यों न इसके लिए कोई फंक्शन किया जाए?
अब नीचे दिए गए कोड को देखने के लिए चलते हैं!
आपूर्ति
- ESP32 आधारित बोर्ड: मैंने Wemos d1 r32 का उपयोग किया है क्योंकि महिला पिन हैं और इसे संभालना आसान है
- एल ई डी, लाल अधिक "अलर्ट जैसा" है
- I2C 16x2 LCD केवल एक नीला रंग है लेकिन हरा अधिक स्टाइलिश है
- सस्ते काग बोर्ड
- रात का समय (वैकल्पिक)
चरण 1: कोड
ऑनलाइन मुझे केवल वाष्पशील ट्यूटोरियल मिले हैं जो डेटा को पार्स करने के लिए बाहरी साइटों का उपयोग करते हैं, इसलिए मैंने esp32 कोर की शक्ति का परीक्षण करने की कोशिश की जो डेटा को सीधे बोर्ड पर पार्स कर रहा था … बिना किसी समस्या के!
इसलिए यदि आप देखते हैं कि एसआईआर पृष्ठ स्रोत यह समझ सकता है कि यह कैसे काम करता है: सौभाग्य से वे अपने डेटा को प्रदर्शित करने के लिए "अल्पविराम से अलग किए गए" मानों का उपयोग करते हैं, इसलिए इस कोड के साथ मैं एक हाइड्रोग्राफिक स्टेशन (कोड TOSnumber) की खोज करता हूं और अल्पविराम की संख्या की गणना करता हूं (विभाजक के रूप में) जिसमें वह मान होता है जो मैं चाहता हूं (और इसे चर के रूप में संग्रहीत करता हूं), फिर इसे "विविधता स्तर" ब्लिंकिंग के लिए मिली में चमक और समय के रूप में रीमैप करें
इस खुरचनी का मूल http टैब में है:
ind = payload.indexOf ("TOSstation_number"); // उस स्थिति (इंड) को प्राप्त करें जहां से अल्पविराम गिनना शुरू होता है
स्ट्रिंग my_var = getValue_ind (पेलोड, ',', 8); // जहां 8 अल्पविराम (विभाजक) द्वारा परिभाषित आठवां सेल है
"पेलोड" वह है जो मुझे पहले "उद्धरण" और " " से साफ किए गए वेब से मिलता है;
और getValue_ind फ़ंक्शन जो मुख्य टैब में है
स्ट्रिंग getValue_ind (स्ट्रिंग डेटा, चार विभाजक, int अनुक्रमणिका) {
इंट मिला = 0; इंट स्ट्रइंडेक्स = {0, -1}; int maxIndex = data.length() - 1; के लिए (int i = ind; i <= maxIndex && मिला <= अनुक्रमणिका; i++) {// ind स्थिति से if (data.charAt(i) == विभाजक || i == maxIndex) {मिला ++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? मैं + १: मैं; } } रिटर्न मिला> इंडेक्स? data.substring(strIndex[0], strIndex[1]): ""; }
stackoverflow.com/a/14824108 से अनुकूलित
कोड हर 15 मिनट में पेज के लिए पूछता है, यह लगभग 44 केबी है, मुझे नहीं लगता कि सर्वर और ईएसपी 32 के लिए एक बड़ा भार है.. बहुत अधिक स्क्रॉलिंग से बचने के लिए मैंने प्रोग्राम को विभिन्न कार्यों में विभाजित किया है, टिप्पणियां पढ़ें
यहाँ कोड चिपकाना वास्तव में एक गड़बड़ है… मैंने.ino फ़ाइलों को सीधे रखा है।
मैंने arduino IDE की टैब सुविधा का उपयोग किया है, इसलिए मेरे पास अलग-अलग.ino फ़ाइलें हैं।
यह कोड का नवीनतम संस्करण है (?), बहुत सारे प्रयास हैं, इसलिए मैं किसी भी सुझाव की सराहना करूंगा!
- कम मूल्यों के लिए एलईडी चमक को सीधा करने के लिए, - फ्लोटिंग पॉइंट वेरिएबल्स के लिए "मैप" फ़ंक्शन के लिए - ईएसपी 32 पर दूसरे कोर के उपयोग के लिए, - यह समझने के लिए कि स्प्रिंटफ के साथ एक स्ट्रिंग से एचटीएमएल मेल कैसे प्रिंट करें I बहुत सारे सच्चे "बेवकूफ समय" बिताए, इसलिए.ino फाइलों या जीथब पर टिप्पणियों पर पढ़ें!
अपलोड सेटिंग्स के रूप में मैंने टूल्स का उपयोग किया है: विभाजन योजना: इस विशाल कोड के लिए अधिक स्थान रखने के लिए कोई ओटीए नहीं है
मज़े करो
जीथब पर कोड के लिए यहां क्लिक करें
चरण 2: नक्शा
यह टट ESP32 कोड पर केंद्रित है, इसलिए मैं आपको केवल कुछ कीवर्ड, लिंक और उपयोग किए गए टूल दे सकता हूं:
वेक्टर क्षेत्र निकालने के लिए उत्कृष्ट सेवा ओपनस्ट्रीटमैप https://extract.bbbike.org/ बनाती है
- उन्हें पचाने के लिए "ऑस्टिक" QGis
- अपने मानचित्र को सरल बनाने के लिए विशेषता तालिका खोजें
- एक प्रिंट लेआउट बनाएं और मानचित्र को ए3 पेपर प्रारूप पर एसवीजी प्रारूप में निर्यात करें
- "चिकनी" इलस्ट्रेटर के साथ मज़े करें
- इसे छापो
चरण 3: हॉट ग्लू पार्टी
इसलिए मैं कॉर्क बोर्ड पर इसे ठीक करने से पहले कागज पर एलईडी और डिस्प्ले के लिए छेद को काटने का सुझाव दे सकता हूं
वायरिंग वास्तव में सरल है और मेरे द्वारा बुरी तरह से की गई है: पी
मेरा सोल्डरिंग स्तर: कबूतर
जैसा कि आप कोड से देख सकते हैं कि एलईडी आईओ पिन पर जाते हैं
#define LED_PIN0 14 //si#define LED_PIN1 27 //buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 //ist #define LED_PIN5 26 //berr
समझने के लिए ESP32 पिनआउट खोजें
चरण 4: तैयार उत्पाद
तो यह तस्वीर सबसे अच्छी नहीं है, लेकिन जब हमें कुछ नदी बाढ़ आई तो मैं एक अच्छा वीडियो डालूंगा!
सिफारिश की:
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
सीईएल का वायु प्रदूषण मैपर (संशोधित): 7 कदम
सीईएल का वायु प्रदूषण मैपर (संशोधित): वायु प्रदूषण आज के समाज में एक वैश्विक मुद्दा है, यह कई बीमारियों का कारण है और असुविधा का कारण बनता है। यही कारण है कि हमने एक ऐसी प्रणाली बनाने की कोशिश की है जो आपके जीपीएस स्थान और वायु प्रदूषण दोनों को उस सटीक स्थान पर ट्रैक कर सके, तब तक
कम विलंबता पर डीजेआई ड्रोन से लाइव 4जी/5जी एचडी वीडियो स्ट्रीमिंग [3 चरण]: 3 चरण
कम विलंबता पर डीजेआई ड्रोन से लाइव 4जी/5जी एचडी वीडियो स्ट्रीमिंग [3 चरण]: निम्नलिखित मार्गदर्शिका आपको लगभग किसी भी डीजेआई ड्रोन से लाइव एचडी-गुणवत्ता वाली वीडियो स्ट्रीम प्राप्त करने में मदद करेगी। FlytOS मोबाइल ऐप और FlytNow वेब एप्लिकेशन की मदद से आप ड्रोन से वीडियो स्ट्रीमिंग शुरू कर सकते हैं
Nokia 5110 LCD पर लाइव Arduino सेंसर रीडिंग प्रदर्शित करें: 4 चरण (चित्रों के साथ)
Nokia 5110 LCD पर लाइव Arduino सेंसर रीडिंग प्रदर्शित करें: यदि आपने कभी arduino के साथ काम किया है, तो आप शायद चाहते हैं कि यह सेंसर रीडिंग प्रदर्शित करे। सीरियल मॉनिटर का उपयोग करना पूरी तरह से ठीक है, लेकिन arduino बदमाश होने के नाते आप जल्दी से बन रहे हैं, आप शायद यह कुछ और पर रीडिंग प्रदर्शित करना चाहता है
लाइव ऑब्जेक्ट डिटेक्शन का उपयोग करते हुए ट्रैफ़िक पैटर्न एनालाइज़र: 11 चरण (चित्रों के साथ)
लाइव ऑब्जेक्ट डिटेक्शन का उपयोग कर ट्रैफिक पैटर्न एनालाइज़र: आज की दुनिया में, सुरक्षित सड़क के लिए ट्रैफिक लाइट आवश्यक हैं। हालांकि, कई बार, ट्रैफिक लाइट उन स्थितियों में कष्टप्रद हो सकती है जहां कोई व्यक्ति प्रकाश के पास आ रहा है जैसे कि वह लाल हो रहा है। यह समय बर्बाद करता है, खासकर अगर प्रकाश पीआर है