विषयसूची:

स्मार्टबिन: 4 कदम
स्मार्टबिन: 4 कदम

वीडियो: स्मार्टबिन: 4 कदम

वीडियो: स्मार्टबिन: 4 कदम
वीडियो: 'Smart plastic' material is step forward toward soft, flexible robotics and electronics [1/4] 2024, नवंबर
Anonim
Image
Image

इस परियोजना का मुख्य उद्देश्य एक इलेक्ट्रॉनिक उपकरण बनाना है जो कम से कम एक रास्पबेरी पाई का उपयोग करता है। टीम 5 भविष्य के मैकेनिकल इंजीनियरों और एक ऑटोमेशन इंजीनियर से बनी है। हमारी परियोजना में एक ट्रैश कैन बनाना शामिल है जो ट्रैश कैन के सामने केंद्र में स्थित मोशन डिटेक्टर के नीचे एक पैर की गति से स्वचालित रूप से खुलता और बंद होता है। किसी वेबसाइट पर डेटा भेजने के लिए Wifi USB स्टिक का उपयोग किया जाता है। इस बिन को "द स्मार्टबिन" कहा जाता है। ऊपर दिया गया विनोदी वीडियो हमारे अभिनव स्मार्टबिन का परिचय देता है।

इस परियोजना और इस उल्लेखनीय स्मार्टबिन को पूरा करने के लिए, कई उपकरण आवश्यक थे:

  • एक मीटर
  • मजबूत गोंद
  • एक चिपकने वाला टेप
  • एक लकड़ी की आरी
  • एक स्क्रूड्राइवर
  • एक ड्रिल मशीन
  • एक दबाना
  • एक चाकू

चरण 1: स्मार्टबिन उपकरण

स्मार्टबिन उपकरण
स्मार्टबिन उपकरण
स्मार्टबिन उपकरण
स्मार्टबिन उपकरण

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

यहां वे तत्व दिए गए हैं जिनका उपयोग किया गया है लेकिन आप आसानी से एक वैकल्पिक समाधान पा सकते हैं:

  • 1 बिन ("स्विंग कवर" बिन)
  • 1 बिन खोलने के लिए सर्वोमोटर
  • 1 रास्पबेरी पाई 2
  • रास्पबेरी पाई और सर्वोमोटर की आपूर्ति के लिए 2 बिजली की आपूर्ति (5V मोबाइल फोन चार्जर और 6V बिजली की आपूर्ति)
  • 1 बिन के भरने के स्तर को मापने के लिए अल्ट्रासोनिक सेंसर
  • भरने के स्तर को प्रदर्शित करने के लिए कुछ एलईडी (4 हरा, 2 नारंगी और 1 लाल)
  • 1 एक गति का पता लगाने के लिए अल्ट्रासोनिक गति डिटेक्टर
  • १ १६जीबी एसडी-कार्ड
  • विद्युत प्रतिरोधक (10.000 ओम, 2000 ओम और 1000 ओम)
  • वेबसाइट पर वायरलेस ट्रांसमिशन को सक्षम करने के लिए 1 वाईफाई यूएसबी स्टिक।
  • 1 ब्रेडबोर्ड और कुछ रास्पबेरी केबल

अनुमानित विनिर्माण मूल्य 80 € है।

चरण 2: रास्पबेरी बॉक्स और एलईडी बार का निर्माण

रास्पबेरी बॉक्स और एलईडी बार का निर्माण
रास्पबेरी बॉक्स और एलईडी बार का निर्माण
रास्पबेरी बॉक्स और एलईडी बार का निर्माण
रास्पबेरी बॉक्स और एलईडी बार का निर्माण
रास्पबेरी बॉक्स और एलईडी बार का निर्माण
रास्पबेरी बॉक्स और एलईडी बार का निर्माण

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

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

अंत में, बॉक्स और एलईडी बार को अपने बिन के सामने संलग्न करें।

चरण 3: ढक्कन भाग

ढक्कन भाग
ढक्कन भाग
ढक्कन भाग
ढक्कन भाग

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

चरण 4: सॉफ्टवेयर पार्ट और डेटा अधिग्रहण

सॉफ्टवेयर पार्ट और डेटा अधिग्रहण
सॉफ्टवेयर पार्ट और डेटा अधिग्रहण
सॉफ्टवेयर पार्ट और डेटा अधिग्रहण
सॉफ्टवेयर पार्ट और डेटा अधिग्रहण
सॉफ्टवेयर पार्ट और डेटा अधिग्रहण
सॉफ्टवेयर पार्ट और डेटा अधिग्रहण

सॉफ्टवेयर भाग के संबंध में, हमने पायथन प्रोग्रामिंग भाषा का उपयोग किया। कार्यक्रम एसडी-कार्ड में सहेजा जाता है जिसे चालू होने पर रास्पबेरी पाई द्वारा चलाया जाएगा। वायरिंग योजना ऊपर उपलब्ध है। नीचे दिए गए लिंक पर सभी रास्पबेरी प्रकारों के लिए जीपीओ पिन छवि उपलब्ध है:

www.raspberrypi-spy.co.uk/2012/06/simple-g…

आंदोलन डिटेक्टर को बदलने के लिए एक अल्ट्रासोनिक सेंसर का उपयोग करना संभव है, आपको कोड में "अगर लूप" बनाने की आवश्यकता है।

जैसा कि ऊपर उल्लेख किया गया है, बिन भरे जाने के स्तर से संबंधित डेटा को wix.com पर बनाई गई वेबसाइट पर प्रेषित किया जाता है। इस वेबसाइट पर, आप विभिन्न टैब पा सकते हैं जो टीम के सदस्यों, हार्डवेयर और सॉफ्टवेयर प्रस्तुति को इकट्ठा करते हैं, … दिलचस्प टैब वास्तव में "डेटाबेस" टैब है जो सीधे स्मार्टबिन से ट्रैश की मात्रा के बारे में जानकारी एकत्र करता है और डेटा के साथ एक ग्राफ बनाता है।. ग्राफ भरने के स्तर के विकास को प्रदर्शित करता है। वेबसाइट से डेटा देखना या डाउनलोड करना संभव है। नीचे दिया गया लिंक वह वेबसाइट है जिसका हमने उपयोग किया है और आपको दिखाएगा कि पायथन के साथ Google शीट पर कैसे पढ़ना और लिखना है:

www.makeuseof.com/tag/read-write-google-sh…

कोड के "ऑटोरन भाग" के संबंध में, टर्मिनल में लिखें: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

फिर, स्क्रिप्ट के अंत में जो अभी-अभी खुली है, इन दो कोड पंक्तियों को लिखें: python /home/pi/main.py & python /home/pi/csvcontrol.py &

ऑरोरन को सेव करने के लिए, प्रेस करें: C trl + O फिर, दबाएं: एंटर करें, फिर दबाएं: C trl + X

अंतिम कोड लाइन के रूप में लिखें: सुडो रीबूट

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

यहाँ main.py कोड है:

RPI. GPIO को GPIO के रूप में आयात करें आयात डेटाटाइम आयात समय आयात csv

GPIO.सेटमोड (GPIO. BCM)

GPIO.चेतावनी (गलत)

कैप्चर पी = 7

सर्वो = 17

GPIO.setup (सर्वो, GPIO. OUT)

GPIO.setup(capteurP, GPIO. IN)

pwm=GPIO. PWM(17, 50)

GPIO.setup(5, GPIO. OUT)

GPIO.setup(6, GPIO. OUT) GPIO.setup(13, GPIO. OUT) GPIO.setup(19, GPIO. OUT) GPIO.setup(20, GPIO. OUT) GPIO.setup(21, GPIO. OUT) GPIO.setup(26, GPIO. OUT)

ट्रिग = 23

गूंज = 24

GPIO.setup (ट्रिग, GPIO. OUT)

GPIO.setup (इको, GPIO. IN)

GPIO.चेतावनी (गलत)

GPIO.output(5, गलत)

GPIO.output(6, False) GPIO.output(13, False) GPIO.output(19, False) GPIO.output(20, False) GPIO.output(21, False) GPIO.output(26, False)

GPIO.output (ट्रिग, गलत)

टाइमसेट = समय। समय ()

दूरी = १०० स्मृति = ० समय। नींद(२) pwm.start(१२.५)

जबकि सच:

timetac = time.time() यदि GPIO.input(capteurP) और timetac-timeset0.9: pwm. ChangeDutyCycle(2.5) time.sleep(0.2) memory=-0.5 pwm. ChangeDutyCycle(0) timetac = time.time() time.sleep(0.5) if timetac-timeset>15 or memory>0.4: if memory>0.4: pwm. ChangeDutyCycle(2.5) time.sleep(1) for x in range(0, 1): # GPIO.output(Trig, सच) समय.नींद (0.01) GPIO.output(Trig, False)

जबकि GPIO.input(Echo)==0 और timetac-timeset<17: timetac = time.time() पहली आवेग = time.time()

जबकि GPIO.input(Echo)==1:

finImpulsion = time.time () अगर टाइमटैक-टाइमसेट <17: दूरी 1 = राउंड ((फिन इंपल्सन - डेब्यू इंपल्सन) * 340 * 100/2, 1) दूरी 2 = दूरी अगर (दूरी 1-दूरी 2) <1 और (दूरी 2-दूरी 1) 0.4: डिस = राउंड ((६०-डिस्टेंस) * ५/६, १) ओपन ('कैप्चर.सीएसवी', 'डब्ल्यू') के साथ सीएसवीफाइल के रूप में: कैप्टेरराइटर = सीएसवी। राइटर (सीएसवीफाइल) टाइम_स्ट्र = डेटटाइम। डेटटाइम। स्ट्रफटाइम (डेटटाइम).datetime.now(), '%Y-%m-%d %H:%M:%S') print('Time:{0} Quantitee:{1}'.format(time_str, dis)) Capteurwriter. राइटरो ([time_str, डिस]) मेमोरी = -0.1 अगर दूरी <52.5: GPIO.output(5, True) और: GPIO.output(5, False) अगर दूरी <45: GPIO.output(6, True) और: GPIO.output(6, False) अगर दूरी <37.5: GPIO.output(13, True) और: GPIO.output(13, False) अगर दूरी <30: GPIO.output(19, True) और: GPIO.output(19, गलत) अगर दूरी <22.5: GPIO.output(20, True) और: GPIO.output(20, False) अगर दूरी <15: GPIO.output(21, True) और: GPIO.output(21, False) अगर दूरी <7.5: GPIO.output(26, True) और: GPIO.output(26, False)

यहाँ csvcontrol.py कोड है। बनाई गई ".json" फ़ाइल को main.py की उसी निर्देशिका में पेस्ट करना न भूलें। ".json" फ़ाइल Google API के साथ बनाई गई है। तस्वीरों में एक स्क्रीनशॉट उपलब्ध है।

आयात डेटाटाइमआयात समय आयात सीएसवी आयात जीस्प्रेड

oauth2client.service_account से आयात ServiceAccountCredentials

समय से आयात नींद आयात ट्रेसबैक

timec2 = 'योग्य'

जबकि सच: time.sleep(5) loc=('capteur.csv') ओपन (लोक) के साथ csvfile के रूप में: readCSV = csv.reader(csvfile, delimiter=', ') readCSV में पंक्ति के लिए: प्रिंट (पंक्ति [0]) टाइमसी=पंक्ति[0] प्रिंट(पंक्ति[1]) दूरी=पंक्ति[1]दूरी=फ्लोट(str(दूरी)) अगर timec2!=timec: timec2=timec प्रिंट('समय:{0} मात्रा:{ 1}'। प्रारूप (समय सी, दूरी))

स्कोप्स = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ चलाना"]

क्रेडेंशियल = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', SCOPES) gc = gspread.authorize(credentials) wks= gc.open("graph").sheet1 wks= wks.append_row((timec, दूरी))

सिफारिश की: