विषयसूची:

गिलाउम मेरिलॉन द्वारा क्लीनबॉट: 8 कदम
गिलाउम मेरिलॉन द्वारा क्लीनबॉट: 8 कदम

वीडियो: गिलाउम मेरिलॉन द्वारा क्लीनबॉट: 8 कदम

वीडियो: गिलाउम मेरिलॉन द्वारा क्लीनबॉट: 8 कदम
वीडियो: Redmi Note 9 Pro Camera test 2024, जुलाई
Anonim
गिलाउम मेउरिलॉन द्वारा क्लीनबॉट
गिलाउम मेउरिलॉन द्वारा क्लीनबॉट
गिलाउम मेउरिलॉन द्वारा क्लीनबॉट
गिलाउम मेउरिलॉन द्वारा क्लीनबॉट

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

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

चरण 1: भागों का संग्रह

भागों का संग्रह
भागों का संग्रह
भागों का संग्रह
भागों का संग्रह
भागों का संग्रह
भागों का संग्रह
भागों का संग्रह
भागों का संग्रह

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

भागों की सूची को एक फ़ाइल के रूप में शामिल किया जाएगा, ताकि आप आसानी से उन भागों की खोज कर सकें जिनकी आपको आवश्यकता होगी।

मैंने रास्पबेरी पाई के बगल में एक Arduino Uno का उपयोग करने का निर्णय लिया, ताकि मैं अपने रास्पबेरी पाई पर जोर दिए बिना अपने सेंसर को कुशलता से पढ़ सकूं। मैंने ऊनो के लिए भी चुना क्योंकि इसकी घड़ी की गति अच्छी है, और एनालॉग पिन के कारण। मैं अपने रास्पबेरी पाई के लिए एक ADC (उदा। MCP3008) का उपयोग कर सकता था, लेकिन मुझे बहुत अधिक तारों की आवश्यकता होती, यह अधिक महंगा होता और मेरे Pi को बहुत अधिक मेहनत करनी पड़ती।

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

हिस्सों की सूची:

  • रास्पबेरी पाई 3 कम से कम 8GB माइक्रोएसडी क्लास 10 और एक केस के साथ;
  • रास्पबेरी पाई टी-मोची और ब्रेडबोर्ड (ओं);
  • Arduino Uno या इसी तरह (अधिमानतः एक सभ्य एडीसी के साथ एक गैर-चीनी संस्करण, कुछ चीनी में एआरईएफ मुद्दे हैं) किसी प्रकार के मामले के साथ;
  • एक ईथरनेट केबल;
  • ए (टूटा हुआ) रोबोट वैक्यूम;
  • 3x HC-SR04 अल्ट्रासोनिक मॉड्यूल;
  • 1x हॉल सेंसर मॉड्यूल;
  • विभिन्न मूल्यों में कई प्रतिरोधक;
  • एक एलडीआर;
  • 6x 18650 ली-आयन बैटरी + 12 वी के लिए 3-सेल धारक (अधिमानतः आपको नई बैटरी का उपयोग करना चाहिए या इससे भी बेहतर लीपो बैटरी का उपयोग करना चाहिए, ये लंबे समय तक चलेंगे);
  • १८६५० (या आप जिस भी प्रकार की बैटरी का उपयोग करेंगे) १२ वी ३-सेल चार्जिंग पीसीबी;
  • आपके घटकों को मिलाप करने के लिए कुछ पीसीबी DIY बोर्ड;
  • पॉलीयुरेथेन प्लास्टिक की एक शीट;
  • एक लैपटॉप/डेस्कटॉप कंप्यूटर।

उपकरण सूची:

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

सॉफ्टवेयर सूची (वैकल्पिक):

  • Adobe XD: वायरफ्रेमिंग और एक प्रोटोटाइप बनाना;
  • फ्रिट्ज़िंग: एक विद्युत योजना बनाना;
  • PyCharm प्रोफेशनल: तैनाती और दूरस्थ दुभाषिया का उपयोग करने की क्षमताओं के साथ Python IDE;
  • पोटीन: पाई के साथ त्वरित और आसान ssh कनेक्शन;
  • Etcher.io: रास्पियन छवि को एसडी कार्ड में फ्लैश करने के लिए आसान टूल;
  • Win32DiskImager: मौजूदा रास्पियन सेटअप से छवि बनाने का आसान टूल;
  • प्रोग्रामर नोटपैड: सरल उपकरण जिसका उपयोग आप /boot/cmdline.txt फ़ाइल को सुरक्षित रूप से संपादित करने के लिए कर सकते हैं।

चरण 2: स्प्रे-पेंटिंग और इंटरफ़ेस डिज़ाइन करना

स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग
स्प्रे-पेंटिंग और इंटरफेस डिजाइनिंग

इससे पहले कि मैं डिज़ाइन बनाना शुरू करता, मैंने बाहरी हिस्से को स्प्रे-पेंट किया, क्योंकि मुझे रंग बिल्कुल पसंद नहीं थे। मैं दुकान पर गया और एक प्लास्टिक प्राइमर, सफेद रंग की एक कैन और फ़िरोज़ा की एक कैन को ऊपर के केस को फिर से स्प्रे करने के लिए उठाया।

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

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

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

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

अगला तार्किक कदम यह सोचना शुरू करना था कि मैं MySQL डेटाबेस में कौन सा डेटा स्टोर करना चाहता हूं। बहुत से लोग अपने वैक्यूम के बारे में जानना पसंद नहीं करते हैं, इसलिए मैं उपयोगकर्ताओं और उनके लॉगिन डेटा के लिए टेबल के साथ-साथ सेंसर (बैटरी, दूरी और धूल कंटेनर) के लिए टेबल के साथ गया।

छवि आपको टेबल के बीच सभी संबंधों के साथ, MySQL वर्कबेंच में खींची गई मेरी टेबल का लेआउट दिखाती है।

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

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

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

चरण 4: भागों को एक साथ जोड़ना

भागों को एक साथ जोड़ना
भागों को एक साथ जोड़ना
भागों को एक साथ जोड़ना
भागों को एक साथ जोड़ना

डेटाबेस योजना बनाने के बाद, मैंने सभी भागों को एक साथ काम करने वाले प्रोटोटाइप में जोड़ने के लिए ब्रेडबोर्ड और वायरिंग का उपयोग करना शुरू कर दिया।

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

रास्पबेरी पाई की स्थापना
रास्पबेरी पाई की स्थापना

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

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

हेडलेस मोड को सक्षम करने के लिए, ताकि आप पीआई तक पहुंच सकें, आपको अपने कंप्यूटर पर पुट्टी इंस्टॉल करना होगा। अगला कदम Etcher द्वारा बनाए गए बूट फ़ोल्डर में जाना है, और फ़ाइल cmdline.txt को अपने पसंदीदा टेक्स्ट एडिटर, पूर्व प्रोग्रामर नोटपैड के साथ खोलना है। इस पाठ को फ़ाइल के अंत में जोड़ें:

आईपी = 169.254.10.1

बस सुनिश्चित करें कि आप एक नई लाइन नहीं बनाते हैं, इसे लाइन के अंत में जोड़ें!

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

पोटीन खोलें, और आईपी एड्रेस टाइप करें: 169.254.10.1। अब YES पर क्लिक करें और लॉग इन करें, डिफ़ॉल्ट उपयोगकर्ता नाम pi है और पासवर्ड रास्पबेरी है।

अगला, अप-टू-डेट प्राप्त करने के लिए निम्न आदेश निष्पादित करें:

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

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

सुडो एमकेडीआईआर प्रोजेक्ट1

cd project1 python3 -m pip install --upgrad pip setuptools Wheel virtualenv python3 -m venv --system-site-packages venv

चरण 6: वेब-एप्लिकेशन लिखना

वेब-एप्लिकेशन लिखना
वेब-एप्लिकेशन लिखना

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

बैकएंड को कोड करते समय, मैंने एप्लिकेशन के लिए फ्रंट एंड भी लिखा, जिसमें कुछ तत्वों के लिए HTML, CSS और जावास्क्रिप्ट शामिल हैं। मैंने अपनी स्टाइलशीट के लिए ITCSS पद्धति और BEM संकेतन का उपयोग किया।

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

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

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

चरण 7: आवरण समाप्त करने के लिए टुकड़े बनाना

आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना
आवरण समाप्त करने के लिए टुकड़े बनाना

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

पहला ब्रैकेट शीर्ष पर एक छेद भरने के लिए बनाया गया है, जहां एक डिस्प्ले बैठता था। मैंने डिस्प्ले को ऑन/ऑफ स्विच से बदल दिया ताकि बैटरी वास्तव में बंद हो सके।

अन्य ब्रैकेट मेरे HC-SR04 अल्ट्रासोनिक सेंसर के लिए एक समर्थन है जो डिवाइस के सामने स्थित हैं।

आखिरी काम जो करना बाकी था, वह था पहियों में से एक के सुदृढीकरण में एक छेद को काटना, और एक चुंबक डालना, ताकि मैं पहिया के घुमावों की निगरानी कर सकूं।

इन कोष्ठकों को खत्म करने के बाद, मैंने उन्हें उस पेंट से स्प्रे-पेंट भी किया, जो मैंने छोड़ा था, ताकि इसे डिजाइन में फिट किया जा सके।

चरण 8: कोड

प्रोग्राम को स्थापित करने के लिए, फ़ाइल code.zip डाउनलोड करें और इसे प्रोजेक्ट 1 निर्देशिका में अनज़िप करें।

इसके बाद, इस आदेश को रास्पियन या पुट्टी पर टर्मिनल में निष्पादित करें:

sudo cp project1/conf/project-1* /etc/systemd/system/

sudo cp project1/conf/project1-* /etc/systemd/system/sudo systemctl डेमॉन-रीलोड sudo systemctl प्रोजेक्ट -1 को सक्षम करें * sudo systemctl प्रोजेक्ट 1 को सक्षम करें * sudo systemctl nginx को पुनरारंभ करें

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

आनंद लेना!

सिफारिश की: