विषयसूची:

खपत को ट्रैक करने के लिए स्वचालित वाटर डिस्पेंसर: 6 कदम
खपत को ट्रैक करने के लिए स्वचालित वाटर डिस्पेंसर: 6 कदम

वीडियो: खपत को ट्रैक करने के लिए स्वचालित वाटर डिस्पेंसर: 6 कदम

वीडियो: खपत को ट्रैक करने के लिए स्वचालित वाटर डिस्पेंसर: 6 कदम
वीडियो: Water Dispenser From Cardboard #diy #water #waterdispenser 2024, जुलाई
Anonim
खपत को ट्रैक करने के लिए स्वचालित वाटरडिस्पेंसर
खपत को ट्रैक करने के लिए स्वचालित वाटरडिस्पेंसर
खपत को ट्रैक करने के लिए स्वचालित वाटरडिस्पेंसर
खपत को ट्रैक करने के लिए स्वचालित वाटरडिस्पेंसर

नमस्ते!

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

रास्पबेरी पाई, कुछ सेंसर, एक पंप और थोड़े से ज्ञान के साथ, मैंने इसे यथासंभव अच्छा बनाने की कोशिश की।

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

GitHub रिपॉजिटरी:

आपूर्ति

माइक्रोकंट्रोलर्स

रास्पबेरी पाई 4

सेंसर और मॉड्यूल

मैंने 4 सेंसर का इस्तेमाल किया:

2xHC-SR04अल्ट्रासोनिक सेंसर

अल्ट्रासोनिक सेंसर अल्ट्रासोनिक तरंगों का उपयोग करके दूरी को मापते हैं। सेंसर हेड एक अल्ट्रासोनिक तरंग उत्सर्जित करता है और लक्ष्य से वापस परावर्तित तरंग प्राप्त करता है। अल्ट्रासोनिक सेंसर उत्सर्जन और रिसेप्शन के बीच के समय को मापकर लक्ष्य की दूरी को मापते हैं। मैंने उनमें से दो का उपयोग यह जांचने के लिए किया कि क्या पास में कोई बोतल है और टैंक में पानी की दूरी को मापने के लिए।

डेटा शीट

1x DS18B20 तापमान सेंसर

DS18B20 मैक्सिम इंटीग्रेटेड से 1-वायर प्रोग्रामेबल टेम्परेचर सेंसर है। यह व्यापक रूप से रासायनिक समाधान, खदानों या मिट्टी आदि जैसे कठोर वातावरण में तापमान को मापने के लिए उपयोग किया जाता है। मैंने इसका उपयोग पानी की टंकी के पानी के तापमान को मापने के लिए किया था।

डेटा शीट

1x RC522 RFID मॉड्यूल

RC522 एक 13.56MHz RFID मॉड्यूल है जो NXP सेमीकंडक्टर्स के MFRC522 कंट्रोलर पर आधारित है। मॉड्यूल I2C, SPI और UART का समर्थन कर सकता है और सामान्य रूप से RFID कार्ड और कुंजी फ़ॉब के साथ भेज दिया जाता है। यह आमतौर पर उपस्थिति प्रणालियों और अन्य व्यक्ति/वस्तु पहचान अनुप्रयोगों में उपयोग किया जाता है। इस परियोजना में, इसका उपयोग पहचान/लॉगिन प्रणाली के लिए किया जाता है।

डेटा शीट

और 2 एक्चुएटर्स:

1x पेरिस्टाल्टिक पंप 12-24V

मैंने टैंक से पानी की बोतल में पानी लाने के लिए एक क्रमाकुंचन पंप का इस्तेमाल किया। अधिकांश पंप बहुत धीमे थे, इसलिए मैं 24V संस्करण के लिए गया था जिसे मैं 24V पावर एडॉप्टर के साथ पावर देता हूं।

1x एलसीडी डिस्प्ले

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

डेटा शीट

झलार

आवरण की बात करें तो, मैंने होम डिपो (मेरे मामले में बेल्जियम में ब्रिको) से आपूर्ति के साथ एक DIY किया। मैंने प्लाईवुड का इस्तेमाल किया जिसे मैंने सही आकार में काटा। मैं इस बारे में बात करूंगा कि मैंने एक और कदम में अपना मामला कैसे बनाया, लेकिन यहां वे चीजें हैं जिनकी आपको आवश्यकता होगी:

  • 3x प्लाइवुड प्लैंक
  • 1x छोटा फ़नल
  • 1x पानी की टंकी (आप चुन सकते हैं कि आपको कौन सी राशि चाहिए, मैं 10L के लिए गया था)
  • 1x ड्रिप ट्रे

आप संलग्न बीओएम में सभी सामग्री और मूल्य निर्धारण पा सकते हैं।

चरण 1: सभी इलेक्ट्रॉनिक्स को जोड़ना

सभी इलेक्ट्रॉनिक्स को जोड़ना
सभी इलेक्ट्रॉनिक्स को जोड़ना
सभी इलेक्ट्रॉनिक्स को जोड़ना
सभी इलेक्ट्रॉनिक्स को जोड़ना

अब जब हमने सभी इलेक्ट्रॉनिक्स को जोड़ दिया है, तो उन्हें जोड़ने का समय आ गया है। मैंने दो फ्रिट्ज़िंग सर्किट बनाए, एक ब्रेडबोर्ड और एक योजनाबद्ध, आपको यह दिखाने के लिए कि सभी इलेक्ट्रॉनिक्स को कैसे और कहाँ जोड़ा जाना चाहिए। आप फ्रिटिंग का डाउनलोड लिंक यहां देख सकते हैं: https://fritzing.org/download/। जैसा कि पहले उल्लेख किया गया है, मैंने रास्पबेरी पाई का उपयोग किया और पानी के लिए एक आरएफआईडी स्कैनर, दो अल्ट्रासोनिक सेंसर, एक तापमान सेंसर, एक एलसीडी और एक पेरिस्टाल्टिक पंप को जोड़ा।

मैंने दो सर्किटों को एक पीडीएफ में संलग्न किया है, यदि आप इसे करीब से देखना चाहते हैं।

चरण 2: रास्पबेरी पाई की स्थापना

हम अपने रास्पबेरी पाई का उपयोग सब कुछ चलाने और नियंत्रित करने के लिए करेंगे: बैकएंड, फ्रंटएंड और डेटाबेस।

रास्पबेरी पाई स्वचालित रूप से नहीं चलती है। इसका इस्तेमाल शुरू करने के लिए हमें कुछ स्टेप्स से गुजरना होगा।

चरण 1: रास्पियन

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

चरण 2: छवि को एसडी में लिखना

अब जब आपके पास अपनी रास्पियन छवि है, तो आपको एसडी कार्ड में छवि फ़ाइल लिखने के लिए एक छवि लेखन सॉफ्टवेयर (मैं win32diskimager की सलाह देता हूं) की आवश्यकता होगी। पूरा ट्यूटोरियल यहां पाया जा सकता है।

चरण 3: रास्पबेरी पाई में लॉग इन करना

"पॉवरशेल" खोलें और "ssh [email protected]" टाइप करें। अगर सब कुछ ठीक हो जाता है, तो वे आपसे पासवर्ड मांगेंगे (डिफ़ॉल्ट पासवर्ड हमेशा रास्पबेरी होता है)। आम तौर पर, यह आपको रास्पबेरी पाई में लॉग इन करना चाहिए। अब हमें अपनी सेटिंग्स में कुछ बदलाव करने होंगे। टर्मिनल में sudo raspi-config टाइप करें और एंटर दबाएं। स्थानीयकरण विकल्पों पर नेविगेट करें> समय क्षेत्र बदलें और इसे अपने समय क्षेत्र पर सेट करें। आपको अपने वाई-फाई देश को अपने स्थान पर भी बदलना चाहिए। अंत में, इंटरफेसिंग विकल्पों पर जाएं और SPI, I2C और 1-वायर को सक्षम करें। सेंसर का सही तरीके से उपयोग करना महत्वपूर्ण होगा।

चरण 4: इंटरनेट कनेक्शन सेट करना

हम वाईफाई नेटवर्क का उपयोग करेंगे। आप इसके द्वारा अपना होम नेटवर्क जोड़ सकते हैं:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

कनेक्शन बनाने के लिए आपको अपने पाई को रीबूट करना होगा। यह जांचने के लिए कि क्या यह काम करता है, आप ifconfig का उपयोग यह जांचने के लिए कर सकते हैं कि कोई IP पता है या नहीं।

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

सबसे पहले, कमांड के निम्नलिखित अनुक्रम के साथ सिस्टम को अपडेट और अपग्रेड करना सबसे अच्छा है:

  1. sudo apt dist-upgrad --auto-remove -y
  2. सुडो उपयुक्त अपग्रेड
  3. सुडो उपयुक्त अद्यतन
  4. sudo apt autoremove

एक बार यह हो जाने के बाद, हमें अपने वेबसर्वर और डेटाबेस के लिए निम्नलिखित पैकेजों की आवश्यकता होगी:

अमरीका की एक मूल जनजाति

sudo apt apache2 -y. स्थापित करें

पीएचपी

sudo उपयुक्त php. स्थापित करें

sudo apt phpMyAdmin -y. स्थापित करें

पासवर्ड सेट करने के लिए कहने पर एक सुरक्षित MySQL पासवर्ड सेट करना न भूलें।

मारियाडीबी

sudo apt mariadb-server mariadb-client -y. स्थापित करें

sudo apt php-mysql -y. स्थापित करें

sudo systemctl पुनरारंभ apache2.service

चरण 6: पायथन पुस्तकालय स्थापित करना

बैकएंड के लिए, हमें पायथन के लिए कुछ पुस्तकालयों की आवश्यकता होगी। हम इन्हें pip3 का उपयोग करके स्थापित करेंगे, क्योंकि हम python3 का उपयोग कर रहे हैं।

pip3 mysql-कनेक्टर-अजगर स्थापित करें

pip3 फ्लास्क-सॉकेटियो स्थापित करें

pip3 फ्लास्क-कोर्स स्थापित करें

pip3 gevent स्थापित करें

pip3 gevent-websocket स्थापित करें

sudo apt python3-mysql.connector -y. स्थापित करें

pip3 mfrc522 स्थापित करें! (हमें RFID स्कैनर का उपयोग करने के लिए इसकी आवश्यकता होगी)

चरण 7: विजुअल स्टूडियो कोड तैयार करना

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

यदि आपने अभी तक SSH का उपयोग करके दूरस्थ विकास स्थापित नहीं किया है, तो आप इसे यहाँ करने के लिए चरण पा सकते हैं।

चरण 3: डेटाबेस बनाना

डेटाबेस बनाना
डेटाबेस बनाना

हम अपने सभी सेंसर डेटा और उपयोगकर्ता डेटा को डेटाबेस में संग्रहीत करेंगे।

मेरे डेटाबेस में 5 टेबल हैं:

युक्ति

टेबल डिवाइस में डिवाइस आईडी होता है, जो डिवाइस को ही संदर्भित करता है। डिवाइस का नाम डिवाइस का नाम देता है, इस मामले में अल्ट्रासोनिक सेंसर, तापमान सेंसर, … डिवाइस टाइप डिवाइस का प्रकार (सेंसर या एक्ट्यूएटर) देता है।

इतिहास

तालिका इतिहास में सभी सेंसर इतिहास शामिल हैं, साथ में दिनांक (इतिहास दिनांक) इतिहास जोड़ा गया था और इतिहास में क्षण का मूल्य। इसमें दो विदेशी कुंजी भी हैं:

  • डिवाइस आईडी, किसी विशिष्ट लॉग को डिवाइस से जोड़ने के लिए
  • UserID, किसी विशिष्ट उपयोगकर्ता को लॉग से जोड़ने के लिए (ऐसा इसलिए है क्योंकि हम RFID का उपयोग करते हैं, और हम इतिहास लॉग को एक विशिष्ट उपयोगकर्ता में जोड़ना चाहते हैं)

उपयोगकर्ता

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

पात्र

टेबल कंटेनर में सभी अलग-अलग कंटेनर होते हैं। इसकी एक आईडी है, एक कंटेनर स्थान है (यह एक उद्यम, घर या कुछ और हो सकता है)। अंत में, इसमें मैक्सलेवल है जो कंटेनर की अधिकतम मात्रा के लिए खड़ा है।

समायोजन

तालिका सेटिंग्स में एक सेटिंग आईडी होती है, और यह प्रत्येक उपयोगकर्ता के दैनिक लक्ष्य + उपयोगकर्ता द्वारा दैनिक लक्ष्य को जोड़ने की तिथि को ट्रैक करती है। यह विदेशी कुंजी UserID की व्याख्या करता है।

डेटाबेस के तहत मेरे GitHub रिपॉजिटरी में डेटाबेस का डंप पाया जा सकता है।

चरण 4: बैकएंड की स्थापना

वर्किंग बैकएंड के बिना कोई प्रोजेक्ट नहीं है।

बैकएंड में 4 अलग-अलग चीजें होती हैं:

सहायकों

हेल्पर्स विभिन्न सेंसर और एक्चुएटर्स के लिए उपयोग किए जाने वाले सभी वर्ग हैं। तापमान सेंसर (DS18B20) के लिए, अल्ट्रासोनिक सेंसर (HCSR05) के लिए दूरी को मापने में सक्षम होने के लिए और एलसीडी के लिए स्क्रीन पर संदेश लिखने में सक्षम होने के लिए एक सहायक है।

खजाने

रिपॉजिटरी फ़ोल्डर में, आपको 2 पायथन फाइलें मिलेंगी:

  • Database.py जो आपके डेटाबेस से पंक्तियों को निकालने में सहायक है। यह डेटाबेस को निष्पादित करना और पढ़ना आसान बनाता है।
  • DataRepository.py जिसमें सभी SQL क्वेरी शामिल हैं, जिनका उपयोग मुख्य कोड (app.py) में किया जाता है। इनका उपयोग डेटाबेस से डेटा प्राप्त करने, अद्यतन करने या हटाने के लिए किया जाता है।

app.py

यह परियोजना का मुख्य बैकएंड कोड है। यह सभी पिन और मोड को परिभाषित करके सेटअप करता है और इसमें पंप को काम करने, तापमान प्राप्त करने, उपयोगकर्ता प्राप्त करने आदि के लिए कोड होता है। इसमें डेटाबेस और सभी socketio.on से डेटा पुनर्प्राप्त करने के लिए उपयोग किए जा रहे मार्ग भी शामिल हैं। यह सुनिश्चित करने के लिए कि प्रत्येक फ़ंक्शन सही समय पर काम करता है, प्रत्येक HTML पृष्ठ के लिए एक अलग socketio.on है।

config.py

हमारे पास एक फ़ाइल बची है: config.py । यह आपके डेटाबेस से जुड़ने के लिए कॉन्फ़िगरेशन विकल्पों वाली फ़ाइल है। अपने डेटाबेस क्रेडेंशियल सेट करना न भूलें।

बैकएंड के तहत मेरे भंडार में बैकएंड पाया जा सकता है।

चरण 5: फ्रंटएंड सेट करना

फ्रंटएंड की स्थापना
फ्रंटएंड की स्थापना
फ्रंटएंड की स्थापना
फ्रंटएंड की स्थापना

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

मेरे GitHub रिपॉजिटरी में, आपको मेरा फ्रंटएंड कोड> फ्रंटएंड के तहत मिलेगा। यह महत्वपूर्ण है कि आप इसे अपने रास्पबेरी पाई के /var/html फ़ोल्डर में पेस्ट करें ताकि इसे वेबसर्वर से एक्सेस करने योग्य बनाया जा सके।

इसमें कुछ HTML फ़ाइलें होती हैं, जो विभिन्न पृष्ठों पर ले जाती हैं। आपको मेरी स्क्रीन.सीएसएस भी मिलेगी जिसमें सभी सीएसएस शामिल हैं जिन्हें आपको मेरी परियोजना की तरह दिखने की आवश्यकता होगी। अंत में, आपके पास स्क्रिप्ट के अंतर्गत अलग-अलग JavaScript फ़ाइलें होंगी। ये स्क्रिप्ट मेरे डेटाबेस या बैकएंड से डेटा दिखाने के लिए मेरे बैकएंड के साथ संचार करती हैं।

बैकएंड मेरे भंडार में फ्रंटेंड के तहत पाया जा सकता है।

चरण 6: आवरण बनाना

आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना
आवरण बनाना

अगर हम मेरे मामले के बारे में बात कर रहे हैं, तो दो मुख्य भाग हैं:

बाहरी आवरण

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

मेरे निर्मित के सटीक माप के लिए, मैंने मामले में उपयोग की जाने वाली प्लेटों के सभी आकारों के साथ एक पीडीएफ संलग्न किया।

पानी की टंकी

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

सिफारिश की: