विषयसूची:
- चरण 1: गणित …
- चरण 2: व्यावहारिकता
- चरण 3: सामग्री
- चरण 4: प्रोटोटाइप का परीक्षण (और कोड)
- चरण 5: रेनवाटर गेज इनो स्केच
- चरण 6: एक Arduino Pro Mini में कोड लोड करना (USB के बिना)
- चरण 7: विधानसभा
- चरण 8: समाप्त लेख
- चरण 9: पोस्टस्क्रिप्ट - एक सौ (और पांच) प्रतिशत?
- चरण 10: बाद के विचार
वीडियो: अल्ट्रासोनिक वर्षा जल टैंक क्षमता मीटर: 10 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
यदि आप मेरे जैसे कुछ हैं और आपके पास पर्यावरण की थोड़ी सी भी अंतरात्मा है (या कुछ रुपये बचाने के लिए सिर्फ त्वचा के निशान हैं - जो कि मैं भी हूं …), तो आपके पास बारिश के पानी की टंकी हो सकती है। मेरे पास ऑस्ट्रेलिया में होने वाली कम बारिश को काटने के लिए एक टैंक है - लेकिन लड़के, जब यहां बारिश होती है, तो वास्तव में बारिश होती है! मेरा टैंक लगभग 1.5 मीटर ऊंचा है और एक प्लिंथ पर है, जिसका अर्थ है कि मुझे जल स्तर की जांच करने के लिए कदम उठाने की आवश्यकता है (या - क्योंकि मैं बहुत आलसी हूं, बीबीक्यू से एक पुरानी गैस की बोतल के ऊपर अनिश्चित रूप से संतुलन जो अब लिया गया है टैंक के बगल में एक 'कदम' के रूप में स्थायी निवास)।
मैं टैंक में पानी के स्तर की जांच करने में सक्षम होना चाहता था, बिना सभी चढ़ाई और एक हाथ से ड्रेनपाइप पर लटके हुए (जबकि इसके पीछे मकड़ियों के बारे में चिंता करते हुए - आपने ऑस्ट्रेलियाई मकड़ियों के बारे में सुना है - है ना?) … इसलिए, इलेक्ट्रॉनिक्स में जीवन में देर से रुचि, और eBay पर चीन से सस्ते Arduino क्लोन के साथ, मैंने अपने लिए काम करने के लिए एक 'विजेट' बनाने का फैसला किया।
अब, मेरा 'सपना' विजेट टैंक में स्थायी रूप से स्थापित होना था, मेरे गैरेज में रिमोट रीडआउट के साथ सौर चार्ज पावर स्रोत का उपयोग करना था, या शायद ब्लूटूथ का उपयोग कर एक वायरलेस ट्रांसमीटर जिसे मैं अपने फोन से जांच सकता था, या शायद यहां तक कि एक ईएसपी प्रकार का उपकरण एक स्वचालित रूप से अपडेट किए गए वेबपेज की मेजबानी करता है, ताकि मैं अपने टैंक में पानी के स्तर को दुनिया में कहीं से भी इंटरनेट पर देख सकूं … लेकिन वास्तव में - मुझे इसकी आवश्यकता क्यों है? इसलिए मैंने अपने भव्य आदर्शों को थोड़ा पीछे (अच्छी तरह से, काफी हद तक) डायल किया, और समाधान की वायरलेसनेस, स्थायी रूप से स्थापितता, सौर चार्जिंग, और मेरे टैंक के स्तर को पीछे के छोर से जांचने की क्षमता को दूर किया (हमेशा) यह मानते हुए कि परे के पीछे के छोर में वाईफाई उपलब्ध है, अर्थात…)
परिणामी परियोजना को ऊपर देखी गई हैंड-हेल्ड यूनिट में डाउनग्रेड किया गया था, जिसे केवल टैंक के उद्घाटन के ऊपर रखा जा सकता है और एक पुश बटन द्वारा सक्रिय किया जा सकता है, एक डिजिटल रीडआउट के साथ, जिसे जमीनी स्तर से पढ़ा जा सकता है - कहीं अधिक व्यावहारिक।
चरण 1: गणित …
जल स्तर का निर्धारण कैसे करें, इस पर कई विचारों के साथ रहने के बाद - मैंने अपने विजेट के आधार के रूप में एक अल्ट्रासोनिक ट्रांसमीटर/रिसीवर पर फैसला किया, और रीडिंग लेने और सभी गणित करने के लिए एक Arduino का उपयोग किया। सेंसर से लौटाई गई रीडिंग (अप्रत्यक्ष रूप से) दूरी के रूप में हैं - अल्ट्रासोनिक सेंसर से सतह तक यह बाउंस हो गया है (पानी की सतह - या टैंक के नीचे, अगर खाली है), और फिर से वापस, इसलिए हमें जरूरत है इसके साथ कुछ चीजें करने के लिए, टैंक में शेष प्रतिशत प्राप्त करने के लिए।
एनबी - वास्तव में, सेंसर से लौटाया गया मान वास्तव में सिग्नल के लिए उत्सर्जक पक्ष को छोड़ने और रिसीवर पर लौटने में लगने वाला समय है। यह माइक्रोसेकंड में है - लेकिन ध्वनि की गति 29 माइक्रोसेकंड प्रति सेमी है (क्या? आपको यह नहीं पता था? Pfft…) एक समय अवधि से दूरी माप में एक आसान रूपांतरण करता है।
पहला - निश्चित रूप से, सेंसर को सतह की दूरी पर लाने के लिए हमें दूरी को 2 से विभाजित करने की आवश्यकता है। फिर, सेंसर से निरंतर दूरी को 'अधिकतम' पानी की गहराई तक घटाएं। शेष मान पानी की गहराई है जिसका उपयोग किया गया है। इसके बाद, टैंक में बचे पानी की गहराई का पता लगाने के लिए उस मान को अधिकतम पानी की गहराई से घटाएं।
यह मान किसी भी अन्य गणना का आधार है, जैसे कि पानी की इस गहराई को अधिकतम गहराई के प्रतिशत के रूप में काम करना, या पानी की मात्रा प्राप्त करने के लिए निरंतर 'सतह क्षेत्र' द्वारा गहराई को गुणा करना, जिसे प्रदर्शित किया जा सकता है लीटर में (या गैलन, या कोई अन्य इकाई - जब तक आप इसे करने के लिए गणित जानते हैं - मैं सादगी के लिए प्रतिशत पर चिपका हुआ हूं)।
चरण 2: व्यावहारिकता
इकाई को हाथ में रखा जा सकता है, लेकिन यदि इकाई को एक ही स्थान पर और हर बार एक ही कोण पर आयोजित नहीं किया जाता है, तो यह छोटी-मोटी अशुद्धियों की एक छोटी संभावना का परिचय देता है। जबकि यह केवल एक बहुत ही मामूली त्रुटि होगी, और शायद एक भी नहीं जो पंजीकृत होगी, यह उस तरह की चीज होगी जो मुझ पर हावी हो गई।
हालाँकि, हाथ से पकड़े जाने से इस बात की बहुत बड़ी संभावना है कि शापित चीज़ टैंक में गिर जाएगी और फिर कभी नहीं देखी जाएगी। तो इन दोनों संभावनाओं को कम करने के लिए, इसे लकड़ी की लंबाई पर तय किया जाएगा, जिसे तब टैंक के उद्घाटन के ऊपर रखा जाता है - ताकि माप हर बार ठीक उसी ऊंचाई और कोण से लिया जाए (और यदि यह IS में गिरा हो टैंक, कम से कम लकड़ी तैर जाएगी)।
एक पुश बटन इकाई को सक्रिय करता है (जिससे चालू/बंद स्विच की आवश्यकता समाप्त हो जाती है, और गलती से चपटी बैटरी की संभावना समाप्त हो जाती है), और Arduino में स्केच को सक्रिय करता है। यह HC-SR04 से कई रीडिंग लेता है, और उनका औसत लेता है (किसी भी अनिश्चित रीडिंग को कम करने के लिए)।
मैंने Arduino डिजिटल I/O पिन में से किसी एक पर उच्च या निम्न की जांच करने के लिए थोड़ा सा कोड भी शामिल किया, और उस इकाई को 'कैलिब्रेशन' मोड में डालने के लिए उपयोग किया। इस मोड में, डिस्प्ले केवल सेंसर द्वारा लौटाई गई वास्तविक दूरी (2 से विभाजित) दिखाता है, इसलिए मैं टेप माप के खिलाफ इसकी सटीकता की जांच कर सकता हूं।
चरण 3: सामग्री
इकाई में तीन मुख्य घटक होते हैं…
- एक HC-SR04 अल्ट्रासोनिक ट्रांसमीटर / रिसीवर मॉड्यूल
- एक Arduino Pro मिनी माइक्रोकंट्रोलर
- एक 4 अंक 7 खंड एलईडी डिस्प्ले या TM1637 जैसे 'मॉड्यूल' प्रदर्शित करता है
उपरोक्त सभी को आसानी से ईबे पर पाया जा सकता है, बस बोल्ड प्रिंट में दिखाए गए शब्दों की खोज करके।
इस एप्लिकेशन में, डिस्प्ले केवल 3 अंकों का उपयोग करके 0-100 या 4 अंकों का% मान प्रदर्शित करने के लिए लीटर की संख्या (मेरे मामले में अधिकतम 2000) प्रदर्शित करता है, इसलिए कोई भी 4 अंकों का प्रदर्शन करेगा - आपको करने की आवश्यकता नहीं है इस बारे में चिंता करें कि क्या मॉड्यूल में दशमलव बिंदु या कोलन हैं। एक डिस्प्ले 'मॉड्यूल' (एक इंटरफ़ेस चिप के साथ एक ब्रेकआउट बोर्ड पर लगा एलईडी) आसान है, क्योंकि यह कम पिन कनेक्शन का उपयोग करता है, लेकिन 12 पिन के साथ एक कच्चे एलईडी डिस्प्ले को कोड में कुछ छोटे संशोधनों के साथ Arduino द्वारा समायोजित किया जा सकता है (वास्तव में मेरा मूल डिजाइन इस सेटअप पर आधारित था)। हालाँकि, ध्यान दें कि कच्चे एलईडी डिस्प्ले का उपयोग करने के लिए प्रत्येक खंड द्वारा खींची गई धारा को सीमित करने के लिए 7 प्रतिरोधों की भी आवश्यकता होती है। मेरे पास TM1637 क्लॉक डिस्प्ले मॉड्यूल उपलब्ध था, इसलिए इसका उपयोग करने का निर्णय लिया।
पूरक बिट्स और बॉब्स में 9वी बैटरी क्लिप (और बैटरी, जाहिर है), एक 'पुश-टू-मेक' क्षणिक पुश बटन स्विच, एक प्रोजेक्ट बॉक्स, हेडर पिन, कनेक्टिंग वायर, और 2 "x4" लकड़ी की लंबाई शामिल है जो इससे अधिक है टैंक खोलने का व्यास।
पूरक बिट्स और बोब्स (लकड़ी के हंक के अलावा) मेरी स्थानीय हॉबी इलेक्ट्रॉनिक्स आउटलेट श्रृंखला से खरीदे गए थे - जो ऑस्ट्रेलिया में Jaycar है। मुझे लगता है कि यूके में मैपलिन एक व्यवहार्य विकल्प होगा, और मुझे लगता है कि अमेरिका में कुछ हैं, जैसे डिजिके और मूसर। अन्य देशों के लिए, मुझे डर है कि मुझे नहीं पता, लेकिन मुझे यकीन है कि यदि आपके देश में उपयुक्त हाई स्ट्रीट आउटलेट या ऑनलाइन आपूर्तिकर्ता की कमी है, तो चीनी eBay विक्रेता आपके लिए आएंगे, यदि आप नहीं करते हैं प्रसव के लिए कुछ सप्ताह प्रतीक्षा करने का मन करता है (विडंबना यह है कि हमारे सबसे करीबी पड़ोसियों में से एक होने के बावजूद, चीन से ऑस्ट्रेलिया में डिलीवरी के लिए 6 सप्ताह या उससे अधिक समय असामान्य नहीं है!)
सुनिश्चित करें कि आपको एक प्रोजेक्ट बॉक्स मिलता है जो काफी बड़ा है - मैंने घटकों के उपलब्ध होने से पहले मेरा अनुमान लगाया था, और यह वास्तव में वास्तव में तंग निचोड़ है - मुझे खुद को एक अलग पुश बटन प्राप्त करने की आवश्यकता हो सकती है जो कम जगह का उपयोग करता है।
ओह, और वैसे, लकड़ी की लंबाई सिर्फ कुछ स्क्रैप ऑफकट से आई है जो मैं अपने गैरेज के कोने में रखता हूं (उन सुंदर मकड़ियों के लिए एक घर के रूप में)।
एक बार जब आप योजनाबद्ध और कार्यक्षमता को समझ लेते हैं, तो आप अपने संस्करण को अनुकूलित करने का निर्णय ले सकते हैं, और एक चालू/बंद स्विच शामिल कर सकते हैं, या सौर पैनल और चार्ज नियंत्रक के साथ 18650 ली-आयन पावर स्रोत का उपयोग कर सकते हैं ताकि इसे लगातार ऊपर और जाने के लिए तैयार रखा जा सके।, या अधिक सूचना प्रदर्शन विकल्पों के साथ बहु-पंक्ति एलसीडी या ग्राफिकल OLED के लिए साधारण एलईडी डिस्प्ले को बदलें, जैसे कि प्रतिशत और लीटर को एक ही समय में दिखाना। या आप सोलर चार्जिंग के साथ टैंक में स्थायी रूप से स्थापित ऑल-सिंगिंग, ऑल-डांसिंग वायरलेस IoT यूनिट के लिए जा सकते हैं। मुझे आपकी विविधताओं और संशोधनों के बारे में सुनना अच्छा लगेगा।
चरण 4: प्रोटोटाइप का परीक्षण (और कोड)
eBay पर एक सस्ते चीनी स्रोत से HC-SR04 खरीदने के बाद, मैं वास्तव में एक बेहद सटीक इकाई प्राप्त करने की उम्मीद नहीं कर रहा था, इसलिए मैं पहले ब्रेडबोर्ड पर इसका परीक्षण करना चाहता था, अगर मुझे कुछ दूरी सुधार कोड जोड़ने की आवश्यकता होती है मेरा स्केच।
इस बिंदु पर, मैं HC-SR04 को कनेक्ट करने और उपयोग करने के तरीके के बारे में बुनियादी जानकारी के लिए चारों ओर कास्टिंग कर रहा था, और jsvester के निर्देश योग्य "सिंपल Arduino और HC-SR04 उदाहरण" को स्वीकार करना चाहिए। उनका उदाहरण और अनुभव मेरे लिए कोडिंग शुरू करने के लिए एक बेहतरीन शुरुआती बिंदु था।
मुझे HC-SR04 के कार्यों की न्यूपिंग लाइब्रेरी मिली, जिसमें कई रीडिंग का औसत लेने के लिए अंतर्निहित कार्यक्षमता शामिल है, जिससे मेरा कोड बहुत सरल हो गया है।
मुझे TM1637 क्लॉक डिस्प्ले मॉड्यूल के लिए एक लाइब्रेरी भी मिली, जिसने डिस्प्ले नंबर को बहुत आसान बना दिया। मेरे मूल कोड में (4 अंकों के 7 सेगमेंट डिस्प्ले के लिए), मुझे संख्या को अलग-अलग अंकों में विभाजित करना था, फिर डिस्प्ले पर प्रत्येक व्यक्तिगत अंक का निर्माण करना था, यह जानकर कि कौन से सेगमेंट को रोशन करना है, और फिर प्रत्येक अंक के माध्यम से साइकिल चलाना।, और उस नंबर को उपयुक्त प्रदर्शन अंक पर बनाना। इस विधि को मल्टीप्लेक्सिंग कहा जाता है, और एक समय में केवल एक अंक को प्रभावी ढंग से प्रदर्शित करता है, लेकिन उनके माध्यम से एक अंक से दूसरे अंक तक इतनी तेज़ी से चक्र करता है, कि मानव आंख ध्यान नहीं देती है, और आपको यह विश्वास करने में मूर्ख बनाती है कि सभी अंक चालू हैं एक ही समय में। एचसी-एसआर०४ पुस्तकालय के साथ मापने के संचालन को आसान बनाने के साथ, यह डिस्प्ले लाइब्रेरी सभी मल्टीप्लेक्सिंग और डिजिट हैंडलिंग का ख्याल रखती है। ऊपर से जुड़े Arduino संदर्भ पृष्ठ, कुछ उदाहरण देते हैं, और निश्चित रूप से, प्रत्येक पुस्तकालय नमूना कोड के साथ आता है जो एक बड़ी मदद हो सकती है।
एन
तो, ऊपर दिए गए चित्र मेरे परीक्षण रिग को दिखाते हैं - मैं इसे सादगी के लिए अपने Arduino Uno पर परीक्षण कर रहा हूं, क्योंकि यह प्रोटोटाइप के लिए अस्थायी पुन: प्रयोज्य कनेक्शन के लिए पहले से ही सेटअप है। इकाई यहां 'अंशांकन' मोड में काम कर रही है (ध्यान दें कि डिजिटल पिन 10 - सफेद तार - जमीन से जुड़ा है) और सटीक रूप से 39 सेमी उस बॉक्स को पढ़ रहा है जिसे मैंने बेतरतीब ढंग से उसके सामने रखा था, जैसा कि टेप माप द्वारा दिखाया गया है। इस मोड में, मैं माप के आगे छोटा 'सी' प्रदर्शित करता हूं, केवल यह इंगित करने के लिए कि यह सामान्य माप नहीं है।
साथ ही Vcc (5v) और ग्राउंड, HC-SR04 को 2 अन्य कनेक्शनों की आवश्यकता होती है - ट्रिगर (पीला से पिन 6) और इको (हरा से पिन 7)। डिस्प्ले को Vcc (5v) और ग्राउंड, और 2 और कनेक्शन - घड़ी (नीला से पिन 8) और DIO (बैंगनी से पिन 9) की भी आवश्यकता होती है। जैसा कि पहले ही उल्लेख किया गया है, ऑपरेटिंग मोड को पिन 10 (सफेद) पर उच्च या निम्न द्वारा नियंत्रित किया जाता है। कनेक्शन Arduino Pro Mini पर समान पिन का उपयोग करेंगे, लेकिन स्थायी रूप से सोल्डर किए जाएंगे। ऑपरेटिंग मोड क्रमशः वीसीसी, पिन 10 और ग्राउंड से जुड़े तीन हेडर पिन में से दो में एक जम्पर का उपयोग करके चयन योग्य होगा।
HC-SR04 के लिए आधिकारिक चश्मे का दावा है कि अधिकतम 3 मिलीमीटर की अधिकतम त्रुटि 4 मीटर की अधिकतम डिज़ाइन की गई ऑपरेटिंग दूरी तक है, इसलिए मेरे आश्चर्य की कल्पना करें कि मेरी इकाई निश्चित रूप से 2 मीटर तक उस डिग्री तक सटीक थी - जो मेरी जरूरत से ज्यादा है। एक त्वरित और गंदे परीक्षण सेटअप के लिए सीमित स्थान के कारण, उस दूरी से परे मेरे परीक्षण के परिणाम मेरे परीक्षण लक्ष्य के अलावा अन्य सतहों से प्रतिबिंबों से दूषित हो रहे थे, क्योंकि ट्रांसमीटर से बीम फैल गया और एक व्यापक क्षेत्र में ले गया। लेकिन जब तक यह 1.5 मीटर तक अच्छा है - यह मुझे अच्छी तरह से करेगा, बहुत-बहुत धन्यवाद:-)
चरण 5: रेनवाटर गेज इनो स्केच
पूरा कोड संलग्न है, लेकिन मैं कुछ चरणों को समझाने के लिए नीचे कुछ अंश शामिल करूंगा।
सबसे पहले, सेटअप…
#शामिल
#include #include // HC-SR04 के लिए पिन #define pinTrig 6 #define pinEcho 7 NewPing sonar(pinTrig, pinEcho, 155); // 400cms HC-SR04 के लिए अधिकतम है, 155cms टैंक के लिए अधिकतम है // LED मॉड्यूल कनेक्शन पिन (डिजिटल पिन) #define CLK 8 #define DIO 9 TM1637डिस्प्ले डिस्प्ले (CLK, DIO); // अन्य पिन #opMode 10 परिभाषित करें
साथ ही TM1637 और NewPing पुस्तकालयों में, मैंने एक गणित पुस्तकालय भी शामिल किया है, जो मुझे 'राउंडिंग' फ़ंक्शन तक पहुँच प्रदान करता है। मैं इसका उपयोग कुछ गणित में उदाहरण के लिए निकटतम 5% तक प्रतिशत प्रदर्शित करने की अनुमति देने के लिए करता हूं।
आगे दो उपकरणों के लिए पिन परिभाषित किए गए हैं, और उपकरणों को शुरू किया गया है।
अंत में, मैं ऑपरेशन मोड के लिए पिन 10 को परिभाषित करता हूं।
// सभी खंडों को सभी अंकों के लिए बंद करें
uint8_t बाइट्स = {0x00, 0x00, 0x00, 0x00}; डिस्प्ले.सेट सेगमेंट (बाइट्स);
कोड का यह खंड प्रदर्शन मॉड्यूल को नियंत्रित करने का एक तरीका प्रदर्शित करता है, जिससे प्रत्येक अंक में प्रत्येक खंड के व्यक्तिगत नियंत्रण की अनुमति मिलती है। मैंने बाइट नामक सरणी में 4 तत्व सेट किए हैं, सभी शून्य होने के लिए। इसका मतलब है कि प्रत्येक बाइट का प्रत्येक बिट शून्य है। 8 बिट्स का उपयोग प्रत्येक 7 खंडों और दशमलव बिंदु (या घड़ी के प्रकार के प्रदर्शन में कोलन) को नियंत्रित करने के लिए किया जाता है। इसलिए यदि सभी बिट शून्य हैं, तो कोई भी खंड नहीं जलेगा। सेट सेगमेंट ऑपरेशन सरणी की सामग्री को डिस्प्ले पर भेजता है और दिखाता है (इस मामले में) कुछ भी नहीं। सभी खंड बंद हैं।
एक बाइट में सबसे महत्वपूर्ण बिट DP को नियंत्रित करता है, और फिर शेष 7 बिट्स G से A तक के 7 खंडों को उल्टे क्रम में नियंत्रित करते हैं। तो उदाहरण के लिए नंबर 1 प्रदर्शित करने के लिए, खंड बी और सी की आवश्यकता है, इसलिए द्विआधारी प्रतिनिधित्व '0b00000110' होगा। (उपरोक्त छवि के लिए circuitsToday.com के लिए धन्यवाद)।
// 10 रीडिंग लें, और माध्य अवधि का उपयोग करें।
इंट अवधि = सोनार.पिंग_मेडियन(१०); // अवधि माइक्रोसेकंड में है (अवधि == 0) // "एरर" डिस्प्ले.सेट सेगमेंट (बाइट्स) को स्पेल करने के लिए सेगमेंट; }
यहां, मैं HC-SR04 को 10 रीडिंग लेने और मुझे औसत परिणाम देने के लिए कह रहा हूं। यदि कोई मान वापस नहीं किया जाता है, तो इकाई सीमा से बाहर है। मैं फिर उसी तकनीक का उपयोग 4 अंकों पर विशिष्ट खंडों को नियंत्रित करने के लिए करता हूं, अक्षरों (रिक्त), ई, आर, और आर को वर्तनी के लिए। बाइनरी नोटेशन का उपयोग करने से अलग-अलग बिट्स को सेगमेंट से जोड़ना थोड़ा आसान हो जाता है।
चरण 6: एक Arduino Pro Mini में कोड लोड करना (USB के बिना)
जैसा कि मैंने पहले कहा था, चीनी eBay विक्रेताओं की वस्तुओं को आने में अक्सर 6 सप्ताह या उससे अधिक समय लगता है, और कुछ घटकों के आने की प्रतीक्षा करते हुए मेरा बहुत सारा प्रोटोटाइप और कोड लेखन किया गया था - Arduino Pro Mini उनमें से एक है।
प्रो मिनी के बारे में एक बात मैंने नोटिस नहीं की, जब तक कि मैंने इसे पहले ही ऑर्डर नहीं कर दिया था, यह है कि इसमें स्केच डाउनलोड करने के लिए यूएसबी पोर्ट नहीं है। इसलिए, कुछ उन्मत्त गुगलिंग के बाद, मैंने पाया कि इस मामले में एक स्केच लोड करने के दो तरीके हैं - एक के लिए एक विशेष केबल की आवश्यकता होती है जो आपके पीसी पर यूएसबी से जाती है, प्रो मिनी पर 6 विशिष्ट पिन के लिए। 6 पिनों के इस समूह को आईएसपी (इन-सिस्टम प्रोग्रामर) पिन के रूप में जाना जाता है, और आप वास्तव में किसी भी Arduino पर इस विधि का उपयोग कर सकते हैं यदि आप चाहते हैं - लेकिन चूंकि USB इंटरफ़ेस अन्य सभी Arduino वेरिएंट पर बहुत अधिक उपलब्ध है (I सोचो), उस विकल्प का उपयोग करना बहुत आसान है। दूसरी विधि के लिए आपको 'गो-बीच' के रूप में कार्य करने के लिए USB इंटरफ़ेस के साथ एक और Arduino की आवश्यकता होती है।
सौभाग्य से, मेरे Arduino Uno होने का मतलब था कि मैं दूसरी विधि का उपयोग कर सकता था, जिसे मैं आपके लिए नीचे बताऊंगा। इसे 'Arduino as ISP' का उपयोग करके कहा जाता है। संक्षेप में, आप अपने 'गो-बीच' Arduino पर एक विशेष स्केच लोड करते हैं, जो इसे एक सीरियल इंटरफ़ेस में बदल देता है। फिर अपना वास्तविक स्केच लोड करें, लेकिन सामान्य अपलोड विकल्प के बजाय, आप IDE मेनू से एक विकल्प का उपयोग करते हैं जो 'Arduino को ISP के रूप में उपयोग करके' अपलोड करता है। 'गो-बीच' Arduino तब IDE से आपका वास्तविक स्केच लेता है, और इसे अपनी मेमोरी में लोड करने के बजाय प्रो मिनी के ISP पिन पर भेजता है। यह कैसे काम करता है, इसके बारे में अपना दिमाग लगाने के बाद यह मुश्किल नहीं है, लेकिन यह जटिलता की एक अतिरिक्त परत है जिससे आप बचना चाहते हैं। यदि ऐसा है, या आपके पास एक और Arduino नहीं है जिसे आप 'गो-बीच' के रूप में उपयोग कर सकते हैं, तो आप एक Arduino नैनो, या अन्य छोटे फॉर्म फैक्टर मॉडल में से एक खरीदना चाह सकते हैं, जिसमें USB इंटरफ़ेस शामिल है और प्रोग्रामिंग को एक आसान संभावना बनाता है।
यहां कुछ संसाधन दिए गए हैं जो आपको प्रक्रिया को समझने में मददगार लग सकते हैं। Arduino Reference विशेष रूप से लक्ष्य डिवाइस में एक नया बूटलोडर जलाने की बात कर रहा है, लेकिन आप उसी तरह से एक स्केच को आसानी से लोड कर सकते हैं। मैंने पाया कि जूलियन इलेट का वीडियो अवधारणा को बहुत स्पष्ट करता है, हालांकि वह Arduino संदर्भ में उस हिस्से को छोड़ देता है जो बताता है कि कैसे दो Arduinos को एक साथ तार करना है, और इसके बजाय एक ब्रेडबोर्ड पर एक नंगे चिप को प्रोग्राम करता है।
- Arduino संदर्भ मैनुअल - एक ISP के रूप में Arduino का उपयोग करना
- जूलियन इलेट का YouTube वीडियो - एक Arduino का ISP के रूप में उपयोग करना
चूंकि प्रो मिनी में 6 आईएसपी पिन आसानी से एक साथ समूहीकृत नहीं होते हैं, आपको डिकोड करने की आवश्यकता होती है कि कौन सा डिजिटल पिन 4 प्रोग्रामिंग पिन से संबंधित है (अन्य दो कनेक्शन सिर्फ वीसीसी और जीएनडी हैं - इसलिए बहुत सीधे हैं)। सौभाग्य से आपके लिए, मैं पहले ही इससे गुजर चुका हूं - और मैं आपके साथ ज्ञान साझा करने को तैयार हूं - मैं कितना उदार व्यक्ति हूं !!
Arduino Uno, और Arduino परिवार के कई अन्य लोगों के पास 3x2 ब्लॉक में आसानी से व्यवस्थित 6 पिन हैं, जैसे (www.arduino.cc से छवि)।
दुर्भाग्य से, प्रो मिनी नहीं करता है। जैसा कि आप नीचे देख सकते हैं, वे वास्तव में पहचानने में काफी आसान हैं और अभी भी 3 पिन के 2 ब्लॉक में व्यवस्थित हैं। MOSI, MISO, और SCK, Pro Mini और Arduino Uno दोनों पर क्रमशः डिजिटल पिन 11, 12 और 13 के समान हैं, और ISP प्रोग्रामिंग के लिए, बस 11 से 11, 12 से 12, और 13 से 13 को कनेक्ट करें। मिनी का रीसेट पिन यूनो पिन 10 से जुड़ा होना चाहिए, और प्रो मिनी का वीसीसी (5 वी)/ग्राउंड Arduino + 5v/ग्राउंड से जुड़ा होना चाहिए। (छवि www.arduino.cc से)
चरण 7: विधानसभा
जैसा कि मैंने उल्लेख किया है, मैंने मामले पर एक पंट लिया, और खेद व्यक्त किया। सभी घटकों को फिट करने के लिए एक वास्तविक निचोड़ था। वास्तव में मुझे पुश बटन संपर्कों को बग़ल में मोड़ना था, और इसे थोड़ा और उठाने के लिए बाहर की तरफ कुछ पैकिंग लगानी थी ताकि यह बॉक्स की गहराई में फिट हो जाए, और मुझे प्रत्येक तरफ से 2-3 मिमी पीसना पड़ा इसके लिए डिस्प्ले मॉड्यूल बोर्ड भी फिट हो।
मैंने अल्ट्रासोनिक सेंसर के माध्यम से प्रहार करने के मामले में 2 छेद ड्रिल किए। मैंने छेदों को थोड़ा बहुत छोटा ड्रिल किया और फिर धीरे-धीरे उन्हें एक छोटे रोटरी ग्राइंडर का उपयोग करके बढ़ाया, ताकि मैं उन्हें एक अच्छा 'पुश फिट' बना सकूं। दुर्भाग्य से, वे बॉक्स के अंदर से ग्राइंडर का उपयोग करने में सक्षम होने के लिए पक्षों के बहुत करीब थे, और यह बाहर से किया जाना था, जिसके परिणामस्वरूप कई खरोंच और स्केट के निशान थे जहां ग्राइंडर फिसल गया था - ओह ठीक है, यह सब तल पर है वैसे भी - कौन परवाह करता है..?
मैंने फिर एक छोर में एक स्लॉट काट दिया जो डिस्प्ले के माध्यम से पोक करने के लिए सही आकार है।फिर से - बॉक्स के आकार पर मेरा अनुमान मुझे पीछे की तरफ थोड़ा सा लगा क्योंकि स्लॉट ने मुझे डिस्प्ले के ऊपर एक बहुत पतला टुकड़ा छोड़ दिया, जो अनिवार्य रूप से टूट गया जब मैं इसे सुचारू रूप से दाखिल कर रहा था। ओह ठीक है - यही सुपर-गोंद का आविष्कार किया गया था …
अंत में, सभी घटकों को मोटे तौर पर बॉक्स में स्थित होने के साथ, मैंने मापा कि ढक्कन में छेद कहाँ रखा जाए, ताकि पुश बटन का शरीर अंतिम उपलब्ध स्थान में गिर जाए। अभी - अभी!!!
इसके बाद, मैंने परीक्षण करने के लिए सभी घटकों को एक साथ मिलाया, वे सभी मेरे झुकने और पीसने और ट्रिमिंग के बाद भी काम करते थे, उन सभी को मामले में इकट्ठा करने से पहले। आप डिस्प्ले मॉड्यूल के ठीक नीचे जम्पर कनेक्शन देख सकते हैं, Gnd से जुड़े Arduino (सफेद लीड) पर पिन 10 के साथ, इस प्रकार यूनिट को कैलिब्रेशन मोड में डाल दिया जाता है। डिस्प्ले मेरी बेंच से 122cms ऊपर पढ़ता है - इसने खिड़की के फ्रेम के ऊपर से वापस परावर्तित एक सिग्नल उठाया होगा (यह छत होने के लिए बहुत कम है)।
फिर यह गर्म गोंद बंदूक को तोड़ने और सभी घटकों को जूता-सींग लगाने का मामला था। ऐसा करने के बाद, मैंने पाया कि डिस्प्ले मॉड्यूल के शीर्ष और ढक्कन के बीच की छोटी निकासी, एक बार जब मॉड्यूल को जगह में चिपका दिया गया था, तो थोड़ा सा उभार छोड़ दिया जहां ढक्कन बिल्कुल फिट नहीं होगा जैसा कि मैं चाहूंगा. मैं उस दिन कुछ करने की कोशिश कर सकता हूं - या अधिक संभावना है, मैं नहीं करूंगा …
चरण 8: समाप्त लेख
कुछ पोस्ट-असेंबली परीक्षणों के बाद, और लकड़ी के टुकड़े की गहराई के लिए मेरे कोड में सुधार के लिए मैंने डिवाइस को खराब कर दिया था (जिसे मैंने अपनी गणना में पूरी तरह से अनदेखा कर दिया था - डी ओह !!), यह सब हो गया है. आखिरकार!
इकट्ठे परीक्षण
यूनिट के साथ बस मेरी बेंच पर नीचे की ओर बैठे हुए, जाहिर है कि कोई परावर्तित संकेत नहीं होगा, इसलिए इकाई सही ढंग से एक त्रुटि स्थिति दिखाती है। यदि निकटतम परावर्तक सतह इकाई की सीमा से परे हो तो भी यही बात लागू होगी।
ऐसा लगता है कि मेरी बेंच के ऊपर से फर्श तक 76cms (अच्छी तरह से, 72cms प्लस लकड़ी के टुकड़े की 4cm गहराई) है।
इकाई के नीचे, ट्रांसमीटर और रिसीवर को लकड़ी के टुकड़े पर लटका हुआ दिखा रहा है - मुझे वास्तव में इसे लकड़ी का एक टुकड़ा कहना बंद कर देना चाहिए - इसे अब गेज स्थिरीकरण और सटीक प्लेसमेंट प्लेटफॉर्म के रूप में संदर्भित किया जाएगा! शुक्र है, शायद यह आखिरी बार है जब मैं इसका जिक्र करूंगा;-)
ऊह - आप इसमें उन सभी गंदे खरोंच और स्केट के निशान देख सकते हैं …
… और यहां तैयार आइटम है, सामान्य ऑपरेटिंग मोड में रखा गया है, वास्तव में मेरे टैंक की क्षमता को निकटतम 5% तक माप रहा है। यह एक (बहुत) बारिश रविवार की दोपहर थी जिसने मुझे इस परियोजना को पूरा करते हुए देखा, इसलिए यूनिट पर बारिश की बूंदें, और बहुत ही सुखद 90% पढ़ना।
मुझे आशा है कि आपने इस निर्देश को पढ़ने में आनंद लिया है, और आपने Arduino प्रोग्रामिंग, भौतिकी और सोनार / अल्ट्रासोनिक प्रतिबिंब के उपयोग के बारे में कुछ सीखा है, अपनी परियोजना योजना में अनुमान लगाने के नुकसान, और यह कि आपको अपना बनाने के लिए प्रेरित किया गया है रेन वाटर टैंक गेज - और फिर इसका उपयोग करने के लिए वर्षा जल टैंक स्थापित करने के लिए, पर्यावरण की थोड़ी मदद करते हुए और आपके पानी के बिल पर बचत करते हुए।
कृपया आगे पढ़ें - अगले दिन क्या हुआ…!
चरण 9: पोस्टस्क्रिप्ट - एक सौ (और पांच) प्रतिशत?
तो, बरसात के रविवार के बाद सोमवार को, टैंक बिल्कुल उतना ही भरा हुआ था जितना संभवतः हो सकता था। चूंकि यह बहुत कम बार में से एक है जिसे मैंने कभी इसे पूरी तरह से भरा हुआ देखा है, मैंने सोचा कि यह गेज को बेंचमार्क करने का आदर्श समय होगा, लेकिन अनुमान लगाएं कि - यह 105% के रूप में पंजीकृत है, इसलिए स्पष्ट रूप से कुछ गड़बड़ थी।
मैंने अपनी डिपस्टिक निकाली और पाया कि पानी की अधिकतम गहराई के रूप में 140cms की मेरी मूल धारणाएं, और 16cms हेडरूम (टैंक के बाहर से बनाए गए दृश्य अनुमानों के आधार पर), दोनों वास्तविक माप से थोड़ी दूर थे। इसलिए अपने 100% बेंचमार्क के लिए वास्तविक डेटा से लैस, मैं अपने कोड को ट्विक करने और Arduino को पुनः लोड करने में सक्षम था।
अधिकतम पानी की गहराई 147 सेमी हो जाती है, माप बिंदु 160 सेमी पर बैठता है, 13 सेमी हेडरूम देता है (टैंक के भीतर हेडरूम का योग, टैंक की गर्दन की ऊंचाई, और हिस्से की गहराई … वाह), नहीं, क्या?! मेरा मतलब है गेज स्थिरीकरण और सटीक प्लेसमेंट प्लेटफॉर्म की गहराई!)।
मैक्सडेप्थ और हेडरूम वेरिएबल्स को तदनुसार सही करने के साथ-साथ सोनार ऑब्जेक्ट की अधिकतम रेंज को 160cms पर रीसेट करने के बाद, एक त्वरित रीटेस्ट ने 100% दिखाया जो कि 95% तक गिर गया क्योंकि मैंने गेज को थोड़ा ऊपर उठाया (एक छोटी राशि का अनुकरण करने के लिए) पानी का उपयोग किया गया है)।
काम हो गया!
पीएस - यह एक निर्देशयोग्य पर मेरा पहला प्रयास है। अगर आपको मेरी शैली, हास्य की भावना, गलतियों को स्वीकार करने की ईमानदारी पसंद है (अरे - यहां तक कि मैं भी परिपूर्ण नहीं हूं …), आदि - मुझे बताएं और यह मुझे एक और करने के लिए बढ़ावा दे सकता है।
चरण 10: बाद के विचार
प्रयोग करने योग्य क्षमता
इसलिए अब कुछ सप्ताह हो गए हैं जब मैंने इस निर्देश को प्रकाशित किया है, और मुझे प्रतिक्रिया में कई टिप्पणियां मिली हैं, जिनमें से कुछ कुछ वैकल्पिक तंत्रों का सुझाव दे रही हैं - इलेक्ट्रॉनिक और मैनुअल दोनों। लेकिन इसने मुझे सोचने पर मजबूर कर दिया, और कुछ ऐसा है जो शायद मुझे शुरुआत में ही बताना चाहिए था।
- मेरे टैंक में एक पंप है, जो जमीनी स्तर पर स्थापित है - टैंक के आधार से थोड़ा नीचे। चूंकि पंप सिस्टम का सबसे निचला बिंदु है, और पंप से पानी दबाव में है, मैं अपने टैंक की पूरी क्षमता का उपयोग कर सकता हूं।
- हालांकि - यदि आपके टैंक में पंप नहीं है, और गुरुत्वाकर्षण फ़ीड पर निर्भर है, तो टैंक की प्रभावी क्षमता आपके नल की ऊंचाई तक सीमित है। एक बार जब आपके टैंक में बचा पानी नल से कम हो जाता है, तो पानी नहीं बहेगा।
इसलिए, चाहे आप इलेक्ट्रॉनिक गेज, या मैनुअल दृष्टि ग्लास, या फ्लोट और फ्लैग टाइप सिस्टम का उपयोग कर रहे हों, बस इस बात से अवगत रहें कि पंप के बिना, आपके टैंक का प्रभावी 'आधार' वास्तव में टैंक के आउटलेट की ऊंचाई है या नल।
सिफारिश की:
वायुमंडलीय दबाव के आधार पर ऊंचाई मीटर (ऊंचाई मीटर): 7 कदम (चित्रों के साथ)
वायुमंडलीय दबाव के आधार पर ऊंचाई मीटर (ऊंचाई मीटर): [संपादित करें]; मैन्युअल रूप से बेसलाइन ऊंचाई इनपुट के साथ चरण 6 में संस्करण 2 देखें। यह एक Arduino नैनो और बॉश BMP180 वायुमंडलीय दबाव सेंसर पर आधारित एक Altimeter (Altitude Meter) का भवन विवरण है। डिजाइन सरल है लेकिन माप
मेटेन आन जल: वर्षा तीव्रता मीटर: 6 कदम
मेटेन आन वाटर: रेन इंटेंसिटी मीटर: इंट्रोइस डिवाइस को बारिश की तीव्रता को मापने के लिए बनाया गया है। वर्षा की मात्रा को मापने के कई तरीके हैं। हालांकि, अगर वर्षा की तीव्रता वांछित जानकारी है, तो अधिकांश माप उपकरण बहुत महंगे हैं। यह डिवाइस एक सस्ता और आसान
जल प्रवाह मीटर (अल्ट्रासोनिक) के साथ प्रवाह मापन: 5 कदम (चित्रों के साथ)
जल प्रवाह मीटर (अल्ट्रासोनिक) के साथ प्रवाह मापन: जल हमारे ग्रह के लिए एक महत्वपूर्ण संसाधन है। हम मनुष्यों को हर दिन पानी की आवश्यकता होती है। और पानी कई तरह के उद्योगों के लिए जरूरी है और हम इंसानों को इसकी हर दिन जरूरत होती है। जैसे-जैसे पानी अधिक मूल्यवान और दुर्लभ होता जा रहा है, प्रभावी ढंग से निगरानी और मानव
अल्ट्रासाउंड टैंक स्तर मीटर: 5 कदम (चित्रों के साथ)
अल्ट्रासाउंड टैंक स्तर मीटर: एक बड़े व्यास के कुएं, एक टैंक, या एक खुले कंटेनर में द्रव स्तर की निगरानी करने की आवश्यकता है? यह गाइड आपको दिखाएगा कि सस्ते इलेक्ट्रॉनिक्स का उपयोग करके सोनार गैर-संपर्क द्रव स्तर मीटर कैसे बनाया जाता है! ऊपर दिया गया स्केच इस बात का अवलोकन दिखाता है कि हमने टी के साथ क्या लक्ष्य रखा है
रेलवे की सुरक्षा के लिए Arduino पर तापमान, वर्षा जल और कंपन सेंसर का उपयोग करना: 8 कदम (चित्रों के साथ)
रेलवे की सुरक्षा के लिए एक Arduino पर तापमान, वर्षा जल और कंपन सेंसर का उपयोग करना: आधुनिक समाज में, रेल यात्रियों में वृद्धि का मतलब है कि रेल कंपनियों को मांग को पूरा करने के लिए नेटवर्क को अनुकूलित करने के लिए और अधिक करना होगा। इस परियोजना में हम छोटे पैमाने पर दिखाएंगे कि कैसे तापमान, वर्षा जल और कंपन सेंसर