विषयसूची:

संपर्क रहित पानी का फव्वारा: 9 कदम (चित्रों के साथ)
संपर्क रहित पानी का फव्वारा: 9 कदम (चित्रों के साथ)

वीडियो: संपर्क रहित पानी का फव्वारा: 9 कदम (चित्रों के साथ)

वीडियो: संपर्क रहित पानी का फव्वारा: 9 कदम (चित्रों के साथ)
वीडियो: 52 GAJ KA DAMAN | PRANJAL DAHIYA | AMAN JAJI | RENUKA PANWAR | MUKESH JAJI | SAHIL SANDHU 2024, जून
Anonim
संपर्क रहित पानी का फव्वारा
संपर्क रहित पानी का फव्वारा

एक एमसीटी छात्र के रूप में मेरे पहले वर्ष के अंत के लिए मुझे एक ऐसा प्रोजेक्ट बनाने का काम सौंपा गया था जिसमें पूरे साल के पाठ्यक्रमों से उठाए गए सभी कौशल शामिल थे।

मैं एक ऐसे प्रोजेक्ट की तलाश में था जो मेरे शिक्षकों द्वारा निर्धारित सभी आवश्यकताओं की जांच करे और साथ ही मेरे लिए मज़ेदार भी हो। जब मैं किसी ऐसे विषय की तलाश कर रहा था जो मैं मदद नहीं कर सकता था, लेकिन कोविड -19 से प्रेरित महसूस कर रहा था (यह दुनिया भर में फैलने से ठीक पहले था।) मैंने एक संपर्क रहित पानी का फव्वारा / डिस्पेंसर चुना, क्योंकि यह एक तरह की पेशकश करेगा पानी निकलने से पहले कुछ बटन छुए बिना पानी पीना।

यह परियोजना यह पता लगाने के लिए एक दूरी सेंसर का उपयोग करती है कि क्या पानी के उत्पादन के तहत एक कप या गिलास रखा गया है, फिर फव्वारा 60 सेकंड (100 मिलीलीटर / मिनट) के लिए पानी का उत्पादन करने के लिए आगे बढ़ेगा। यह इसे और अधिक सुसंगत बनाने के लिए है क्योंकि यह पता लगाना कि क्या कांच को दूर खींच लिया गया है, एक कार्य के लिए बहुत कठिन/धीमा साबित हुआ, यही वजह है कि एक टाइमर लगाया गया था। आपका गिलास १०० मिली पानी से भर जाने के बाद आप ५ सेकंड तक प्रतीक्षा कर सकते हैं और अगर ग्लास अभी भी दूरी सेंसर के सामने है तो यह एक और समय भरने के लिए आगे बढ़ेगा (इसका मतलब है कि दो अलग-अलग भरने के बीच ५ सेकंड का समय भी है। आइटम)।

आपूर्ति

अवयव

- 1x रास्पबेरीपी (मैंने चौथा संस्करण इस्तेमाल किया लेकिन पुराने संस्करण भी काम कर सकते हैं) - 1x S8050 ट्रांजिस्टर या 1x PN2222 ट्रांजिस्टर भी काम कर सकते हैं- 1x फोटोरेसिस्टर- 1x HC-SR04 (अल्ट्रासोनिक डिस्टेंस सेंसर) - 1x RFID-RC522- 3x अलग रंग एलईडी (नीला, पीला, लाल) - 1x LCD1602- 1x सक्रिय बजर- 1x PCF8574- 1x MCP3008- 1x पानी पंप (एक 12v क्रमिक वृत्तों में सिकुड़नेवाला पंप इस्तेमाल किया गया था, इस मद के लिए लिंक)

- 1x डीसी बिजली की आपूर्ति (12 वी, 600 एमएएच) - 3 स्पॉट के साथ 1x पावर ईंट- 3x ब्रेडबोर्ड (आप शायद कम उपयोग कर सकते हैं) - रास्पबेरीपी जीपीआईओ पिन के लिए टी-कोबबलर- टी-कोबबलर केबल (पाई और मोची के बीच जोड़ने के लिए)

प्रयुक्त सामग्री और उपकरण

- निम्नलिखित ड्रिल बिट्स के साथ एक ड्रिल:

- 4 मिमी (स्क्रू के लिए पूर्व-ड्रिल छेद के लिए) - 15 मिमी (दूरी सेंसर के लिए छेद ड्रिल करने के लिए)

- कोई भी स्क्रूड्राइवर- 45 मिमी लंबे 30 स्क्रू- 20 मिमी के 6 स्क्रू- दरवाजे के लिए 2 टिका- लगभग 130 सेमी की एमडीएफ की एक प्लेट 80 सेमी- कुछ फाइलें

चरण 1: सर्किट को असेंबल करना

सर्किट को असेंबल करना
सर्किट को असेंबल करना
सर्किट को असेंबल करना
सर्किट को असेंबल करना
सर्किट को असेंबल करना
सर्किट को असेंबल करना

सर्किट के लिए हमारे पास 2 सेंसर, एक दूरी सेंसर और एक फोटोरेसिस्टर है। दूरी सेंसर का उपयोग यह पता लगाने के लिए किया जाता है कि क्या पानी के फव्वारे की सीमा में एक कप रखा गया है और वैकल्पिक रूप से मैंने एक फोटोरेसिस्टर जोड़ा है, इसका उपयोग यह पता लगाने के लिए किया जाता है कि क्या किसी के द्वारा आवरण खोला गया है जो इसे खोलने वाला नहीं है। उसके ऊपर हमारे पास एक RFID रीडर है जिसका उपयोग एक मैकेनिक को प्रमाणित करने के लिए किया जा सकता है जिसे पानी के भंडार को फिर से भरने के लिए या किसी अन्य यांत्रिक समस्या के लिए मामले को खोलने की आवश्यकता होती है।

सक्रिय तत्वों के लिए हमारे पास LCD1602, सक्रिय बजर और एक क्रमिक वृत्तों में सिकुड़नेवाला पंप है, LCD का उपयोग स्थिति प्रदर्शित करने के लिए किया जाता है जैसे कि मामला खुला है या पंप चल रहा है और साथ ही डिवाइस का IP पता दिखाया जाएगा, बजर है जब किसी को अधिकृत किए बिना मामला खोला गया हो तो एक खतरनाक आवाज करता था।

मैंने नीचे सर्किट के ब्रेडबोर्ड और योजनाबद्ध दृश्य जोड़े हैं।

चरण 2: हमारा रास्पबेरीपी सेट करना

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

अब आप अपने एसडीकार्ड को अपने रास्पबेरीपी में डाल सकते हैं और इसे बूट कर सकते हैं, पीआई को अपने कंप्यूटर से कनेक्ट कर सकते हैं और एसएसएच पर अपने पीआई से कनेक्ट करने के लिए पुट्टी का उपयोग कर सकते हैं। मैं पुट्टी का उपयोग करने के बजाय अपने पीआई से कनेक्ट करने के लिए निम्न आदेश का उपयोग करता हूं। "ssh [email protected]" यह समय समाप्त हो सकता है, इसलिए धैर्य रखें और पाई के बूट होने की प्रतीक्षा करें। पासवर्ड के लिए पूछे जाने पर हम "रास्पबेरी" का डिफ़ॉल्ट पासवर्ड भर देंगे। किसी को भी अपने रास्पबेरी पाई तक पहुंचने से रोकने के लिए लॉग इन करने के बाद इस पासवर्ड को बदलना सुनिश्चित करें।

अब हम अपने कोड के लिए आवश्यक कार्यक्षमता प्रदान करने के लिए अपने पाई को कॉन्फ़िगर करेंगे। कॉन्फ़िगरेशन मेनू खोलने के लिए "sudo raspi-config" का उपयोग करें और यहां हम इंटरफेसिंग विकल्प पर जाएंगे।

यहाँ के तहत हम निम्नलिखित विकल्पों को चालू करेंगे:- SPI- I2C

अपने पाई पर वायरलेस इंटरनेट कनेक्शन सेटअप करने के लिए इस गाइड का पालन करें, आपके द्वारा इसे सफलतापूर्वक करने के बाद हम अपने आवश्यक पैकेज स्थापित करने के लिए प्राप्त कर सकते हैं।

पैकेज: (आदेशों को उसी क्रम में चलाएँ जैसे वे यहाँ नोट किए गए हैं)

हमारे Pi-sudo apt update && apt upgrade -y. के लिए नवीनतम अपडेट प्राप्त करने के लिए निम्नलिखित

हमारे MySQL सर्वर और वेबसर्वर को स्थापित करें- sudo apt install mariadb-server apache2

मैं इस गाइड में बाद में डेटाबेस को सेटअप करने के लिए MySQL वर्कबेंच का उपयोग करूंगा, यदि आप इसका उपयोग नहीं करते हैं और phpmyadmin पसंद करते हैं तो आप इसे निम्न कमांड के साथ इंस्टॉल कर सकते हैं, आप किसी भी अन्य MySQL क्लाइंट का उपयोग करने के लिए स्वतंत्र हैं जब तक आप 'डेटाबेस को ठीक से आयात करने में सक्षम हैं।- sudo apt install phpmyadmin

उपरोक्त सभी को करने के बाद हमें अपने डेटाबेस के लिए एक उपयोगकर्ता बनाने की आवश्यकता है। अपने MySQL सर्वर में लॉग इन करने के लिए "sudo mysql -u root" का उपयोग करें, यहां हम अपने संबंधित पासवर्ड के साथ db_admin नामक एक उपयोगकर्ता बनाएंगे, रखें यह पासवर्ड बाद के निर्देशों में कहीं के लिए नोट किया गया है। *.* पर सभी विशेषाधिकार प्रदान करें "db_admin"@"%" को "yourPasswordHere" द्वारा अनुदान विकल्प के साथ पहचाना जाता है;

MySQL टर्मिनल से बाहर निकलने के लिए "\q" कमांड का उपयोग करें।

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

sudo pip3 फ्लास्क फ्लास्क-कॉर्स फ्लास्क-सॉकेटियो गीवेंट गीवेंट-वेबसोकेट ग्रीनलेट spi SPI-Pyspidev स्थापित करें

साथ ही निम्नलिखित MySQL कनेक्ट अजगर पैकेजसुडो उपयुक्त स्थापित करें python3-mysql.connector -y

यदि सब कुछ ठीक रहा तो अब आप निम्न पते के साथ अपने वेब ब्राउज़र पर अपने पाई पर जा सकते हैं

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

बैकएंड की स्थापना
बैकएंड की स्थापना

यहां मैं यह बताने जा रहा हूं कि आप स्वयं बैकएंड को कैसे सेटअप कर सकते हैं, पहले नीचे से rar फाइल डाउनलोड करें, इसे कुछ अस्थायी निर्देशिका में अनरार करें। निम्नलिखित क्रेडेंशियल के साथ FileZilla या WinSCP के साथ अपने रास्पबेरीपी से कनेक्ट करें:

IP: 169.254.10.1उपयोगकर्ता: piPassword: रास्पबेरी (यदि आपने पासवर्ड बदला है तो इसे यहां भी करें)

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

अपने FTP प्रोग्राम को अगले चरण के लिए खुला रखें!

अब अपने SSH कनेक्शन के साथ अपना कमांड प्रॉम्प्ट फिर से खोलें क्योंकि हमें वेबसर्वर में कुछ बदलाव करने की आवश्यकता है ताकि फ्रंटएंड बैकएंड के साथ संचार कर सके। हम डिफ़ॉल्ट Apache2 कॉन्फिग फाइल को खोलने और इसे थोड़ा संशोधित करने जा रहे हैं: sudo nano /etc/apache2/sites-available/000-default.conf

हमारे द्वारा अभी खोली गई कॉन्फ़िग फ़ाइल में DocumentRoot के नीचे निम्न पंक्तियाँ जोड़ें: ProxyPass /api/ https://127.0.0.1:5000/api/ProxyPassReverse /api/

आप एक उदाहरण के लिए संलग्न छवि पर एक नज़र डाल सकते हैं।

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

अपनी फाइलों को स्थानांतरित करने से पहले हमें अपनी फ्रंटएंड फाइलों को स्थानांतरित करना शुरू करने से पहले कुछ करना होगा। आपके द्वारा पहले बनाए गए एसएसएच कनेक्शन के साथ अपना कमांड प्रॉम्प्ट खोलें और हमारे रास्पबेरीपी के रूट उपयोगकर्ता पर स्विच करने के लिए नीचे दिए गए कमांड का उपयोग करें: "सुडो सु -"

इसके बाद हम अपने रूट यूजर के पासवर्ड को निम्न कमांड से बदल सकते हैं: "passwd" यह आपको एक नया पासवर्ड इनपुट करने के लिए कहेगा, ऐसा करने के बाद आप अपने एफ़टीपी प्रोग्राम पर वापस स्विच कर सकते हैं और अपने रूट क्रेडेंशियल्स के साथ लॉगिन कर सकते हैं:

आईपी: 169.254.10.1उपयोगकर्ता: रूटपासवर्ड:

नीचे से rar फ़ाइल डाउनलोड करें और इसे एक अस्थायी फ़ोल्डर में अनरार करें, आप इन फ़ाइलों को अपने रास्पबेरीपी में निम्न निर्देशिका /var/www/html/ में ले जा सकते हैं, यह करने के बाद आप http:/ पर फ़्रंटएंड पर जा सकते हैं /169.254.10.1, आप अभी तक बातचीत नहीं कर सकते क्योंकि बैकएंड अभी तक नहीं चल रहा है, मैं आपको इस गाइड में बाद में दिखाऊंगा कि यह कैसे करना है।

चरण 5: हमारी परियोजना के लिए डेटाबेस आयात करना

हमारी परियोजना के लिए डेटाबेस आयात करना
हमारी परियोजना के लिए डेटाबेस आयात करना
हमारी परियोजना के लिए डेटाबेस आयात करना
हमारी परियोजना के लिए डेटाबेस आयात करना

अपना पसंदीदा MySQL सर्वर प्रबंधन प्रोग्राम खोलें और चरण 2 में हमारे द्वारा बनाए गए क्रेडेंशियल के साथ अपने रास्पबेरी पाई से कनेक्ट करें।

नीचे से डेटाबेस डंप डाउनलोड करें और इसे सामान्य रूप से आयात करें, MySQL कार्यक्षेत्र आप फ़ाइल> ओपन SQL स्क्रिप्ट पर जाएंगे और आपके द्वारा डाउनलोड किए गए डेटाबेस डंप का चयन करेंगे। फिर CTRL + SHIFT + ENTER दबाएं और SQL स्क्रिप्ट को चलाया जाना चाहिए और संरचना डेटाबेस के लिए बनाया जाना चाहिए।

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

चरण 6: हमारी परियोजना शुरू करना

हमारी परियोजना शुरू करना
हमारी परियोजना शुरू करना
हमारी परियोजना शुरू करना
हमारी परियोजना शुरू करना

इससे पहले कि हम अपना प्रोजेक्ट शुरू कर सकें, हमें config.py फ़ाइल में डेटाबेस क्रेडेंशियल्स को बदलने की आवश्यकता है, यदि आपने निर्देशों का ठीक उसी तरह पालन किया है जैसा कि इस गाइड ने कहा है तो आप इन्हें /home/pi/Documents/Backend/src/config.py के तहत पा सकते हैं। यहां आपको db_config वेरिएबल के क्रेडेंशियल्स को बदलने की जरूरत है, जो हमारे डेटाबेस के लिए पहले बनाए गए क्रेडेंशियल्स से मेल खाते हैं। मैंने नीचे इस फ़ाइल में आप जो देखेंगे उसका एक उदाहरण जोड़ा है।

उसके बाद आप एक.service फ़ाइल जोड़ेंगे, यह फ़ाइल सुनिश्चित करेगी कि रास्पबेरीपी शुरू होने पर हमारी परियोजना शुरू हो जाएगी, सुनिश्चित करें कि आपने बैकएंड फ़ाइलों को स्थापित करने के लिए निर्देशिका को उचित रूप से बदल दिया है। सर्विस फाइल बनाने के लिए निम्न कमांड का उपयोग करें: sudo nano /etc/systemd/system/dispenser.serviceयह एक सर्विस फाइल बनाएगा और नीचे दिए गए कोड को इस फाइल में कॉपी पेस्ट करेगा।

[इकाई]विवरण=जल औषधि के बाद=mysql.service

[सेवा]प्रकार=सरल रीस्टार्ट=alwaysRestartSec=1उपयोगकर्ता=piExecStart=/usr/bin/python3 /home/pi/Documents/Backend/index.py

[इंस्टॉल करें]वांटेडबाय=मल्टी-यूजर.टारगेट

उस लाइन को संशोधित करें जहां यह /home/pi/Documents/Backend/index.py कहती है, जहां आपने अपनी बैकएंड फाइलें स्थापित की हैं, यदि आप इसे सही तरीके से नहीं करते हैं तो प्रोजेक्ट सही ढंग से शुरू नहीं होगा! मैं नीचे एक उदाहरण फ़ाइल जोड़ूंगा।

आपके द्वारा ऐसा करने और टेक्स्ट एडिटर से बाहर निकलने के बाद हम निम्नलिखित कमांड के साथ सेवा को सक्षम कर सकते हैं: - sudo systemctl daemon-reload- sudo systemctl इनेबल डिस्पेंसर- sudo systemctl स्टार्ट डिस्पेंसर

और एक अतिरिक्त के रूप में हम चला सकते हैं: sudo systemctl स्थिति डिस्पेंसर यह हमारी सेवा के बारे में कुछ जानकारी दिखाएगा, अगर यह सक्रिय है या नहीं, …

चरण 7: मामला

मामला
मामला
मामला
मामला
मामला
मामला
मामला
मामला

बधाई हो हम लगभग वहां हैं, मैं कुछ तस्वीरें जोड़ूंगा जो मेरे प्रोजेक्ट के लिए उपयोग किए गए आयामों को सटीक रूप से दिखाएंगे, मैंने 18 मिमी मोटी एमडीएफ प्लेटों का उपयोग किया है, आप वैकल्पिक रूप से एक अलग मोटाई का उपयोग कर सकते हैं। मेरे आवरण को आपके डिजाइन के लिए एक दिशानिर्देश के रूप में इस्तेमाल किया जा सकता है या आप जो मैंने बनाया है उसे फिर से बना सकते हैं। (यदि आप एमडीएफ की एक अलग मोटाई का उपयोग करते हैं तो मेरे चित्र अब आपको मेरा डिज़ाइन बनाने की अनुमति नहीं देंगे, इसे अनुकूलित करना सुनिश्चित करें!) मेरे द्वारा बनाए गए पैनल: - 32 सेमी के 2 पैनल 42 सेमी (साइड पैनल) - 24 सेमी के 1 पैनल द्वारा 32 सेमी (नीचे की प्लेट) - 16 सेमी के 2 पैनल 24 सेमी (सामने की प्लेट जहां एलसीडी रहती है और पड़ोसी प्लेट) - 28 सेमी का 24 सेमी (सामने से दिखाई देने वाली मध्य प्लेट) का 1 पैनल - 30 सेमी का 24 सेमी (शीर्ष प्लेट) का 1 पैनल

चरण 8: अंतिम उत्पाद की प्रशंसा करें

अंतिम उत्पाद की प्रशंसा करें
अंतिम उत्पाद की प्रशंसा करें
अंतिम उत्पाद की प्रशंसा करें
अंतिम उत्पाद की प्रशंसा करें

आप अंत तक पहुँच चुके हैं और उम्मीद है कि अब तक आप पूरी बात को हकीकत में बदलने में कामयाब रहे हैं। यदि आप केवल एक राहगीर हैं जो पढ़ रहे हैं, तो भी आपका स्वागत है, मैं आपको अंतिम चरण तक पढ़ने के लिए धन्यवाद देता हूं!

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

चरण 9: समस्याएं

मैं परियोजना को उसकी वर्तमान स्थिति में एक कार्यशील प्रोटोटाइप के रूप में रखूंगा जो बहुत अधिक सुधार देख सकता है।

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

मैंने अपना कोड अपने गिटलैब सर्वर पर अपलोड कर दिया है और वहां आप पूरे कोड को देख सकते हैं:https://git.damon.sh/Yimura/project-1

सिफारिश की: