תוכן עניינים:

SmartBin: 4 שלבים
SmartBin: 4 שלבים

וִידֵאוֹ: SmartBin: 4 שלבים

וִידֵאוֹ: SmartBin: 4 שלבים
וִידֵאוֹ: Guardforce's Smart Waste Bin 2024, נוֹבֶמבֶּר
Anonim
Image
Image

המטרה העיקרית של פרויקט זה היא ליצור מכשיר אלקטרוני שמשתמש לפחות ב- Raspberry Pi אחד. הצוות מורכב מ -5 מהנדסי מכונות עתידיים ומהנדס אוטומציה אחד. הפרויקט שלנו כולל יצירת פח אשפה שנפתח ונסגר באופן אוטומטי על ידי תנועת רגליים מתחת לגלאי התנועה הממוקם במרכז בחזית פח האשפה. מקל USB Wifi משמש לשליחת נתונים לאתר. הפח הזה נקרא "ה- SmartBin". הסרטון ההומוריסטי לעיל מציג את ה- SmartBin החדשני שלנו.

על מנת לבצע את הפרויקט הזה ואת ה- SmartBin המדהים הזה, היו צורך בכמה כלים:

  • מטר
  • דבק חזק
  • סרט דבק
  • מסור עץ
  • מברג
  • מכונת מקדחה
  • מהדק
  • סכין

שלב 1: ציוד SmartBin

ציוד SmartBin
ציוד SmartBin
ציוד SmartBin
ציוד SmartBin

ה- SmartBin מורכב מנורות LED ירוקות, כתומות ואדומות, המונחות על מתקן בצד השמאלי של הפח שיציין עד כמה הוא מלא. אורות אלה יהיו גלויים בבירור ויזהירו את המשתמש בעת הצורך להחליף את שקית האשפה. שפת התכנות בה משתמשים היא פייתון. רמת המילוי הנמדדת של הפח מועברת לאתר הבא:

להלן האלמנטים שהיו בשימוש אך תוכל למצוא פתרון חלופי בקלות:

  • פח אחד (סל "כיסוי נדנדה")
  • 1 מנוע סרוו לפתיחת האשפה
  • 1 פטל פטל 2
  • 2 ספקי כוח (מטען טלפון סלולרי 5V ואספקת חשמל 6V) לאספקת ה- Raspberry Pi והמנוע.
  • חיישן אולטרסאונד למדידת רמת המילוי של הפח
  • כמה נוריות להצגת רמת המילוי (4 ירוק, 2 כתום ואדום אחד)
  • גלאי תנועה אולטרסאונד לאיתור תנועה
  • כרטיס SD בנפח 1 ג'יגה-בתים
  • נגדים חשמליים (10.000 אוהם, 2000 אוהם ו 1000 אוהם)
  • מקל USB מסוג WiFi אחד כדי לאפשר שידור אלחוטי לאתר.
  • לוח קרש אחד וכמה פטל פטל

מחיר הייצור המשוער הוא 80 €.

שלב 2: ייצור קופסת הפטל וסרגל ה- LED

ייצור קופסת הפטל ובר הלדים
ייצור קופסת הפטל ובר הלדים
ייצור קופסת הפטל ובר הלדים
ייצור קופסת הפטל ובר הלדים
ייצור קופסת הפטל ובר הלדים
ייצור קופסת הפטל ובר הלדים

כדי לייצר את קופסת הפטל, השתמש במסור עץ. מהדקים כל צד של הקופסה בעזרת מסמרות כדי שייראה נקי. כפי ששמו מרמז, התיבה הזו היא תכיל לא רק את Raspberry Pi אלא תכלול גם את חיישן התנועה שתמקם בתחתית. לאחר בניית הקופסה, צבעו אותה באותו צבע כמו הפח. ניתן להשתמש בטכנולוגיית הדפסה תלת מימדית ליצירת קופסה זו.

לייצור מוט הלדים, השתמש בתעלה חשמלית בה אתה מקדח חורים על מנת לאפשר התקנת נורות הלד. יש לצבוע גם את סרגל הלד. כשהכל מוכן, התקן את הלדים בתעלה וחיבר את החשמל. שימו לב למספר נכון כל כבלי LED עם סרט דבק. זה יעזור לך לזהות כל נורית במהלך החיווט.

לבסוף, חבר את הקופסה ואת סרגל ה- LED לחזית הפח שלך.

שלב 3: חלק המכסה

חלק המכסה
חלק המכסה
חלק המכסה
חלק המכסה

בנוגע למכסה הפח, השלב הראשון הוא הדבקת מנוע השרוול למכסה. יש לבצע הרחבה של המינוף בעבר. הידית תפגע בעצירה שבעבר נעשתה בעבודת יד. חבר את תיבת הבורג למכסה ועשה בה חור על מנת להחזיק את החיישן הקולי במיקום הנכון. וודא שאתה מחבר כבלים בצורה נכונה על המכסה בעזרת סרט.

שלב 4: חלק תוכנה ורכישת נתונים

רכישת תוכנה ורכישת נתונים
רכישת תוכנה ורכישת נתונים
רכישת תוכנה ורכישת נתונים
רכישת תוכנה ורכישת נתונים
רכישת תוכנה ורכישת נתונים
רכישת תוכנה ורכישת נתונים

בנוגע לחלק התוכנה, השתמשנו בשפת התכנות של פייתון. התוכנית נשמרת בכרטיס ה- SD שיופעל על ידי ה- Raspberry Pi כשהוא מופעל. תוכנית החיווט זמינה למעלה. תמונת סיכות ה- Gpio זמינה לכל סוגי הפטל בקישור שלהלן:

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

אפשר להשתמש בחיישן קולי להחלפת גלאי התנועה, אתה רק צריך ליצור "אם לולאה" בקוד.

כפי שצוין לעיל, הנתונים הנוגעים לרמה שאליה ממלאים את הסל מועברים לאתר שנוצר ב- wix.com. באתר זה תוכלו למצוא כרטיסיות שונות המאגדות חברי צוות, מצגת חומרה ותוכנה, … הכרטיסייה המעניינת היא למעשה הכרטיסייה "מסד נתונים" אשר אוספת את המידע בנוגע לכמות האשפה ישירות מה- SmartBin ויוצרת גרף עם הנתונים. הגרף מציג את התפתחות רמת המילוי. אפשר לראות או להוריד נתונים מהאתר. הקישור שלהלן הוא האתר בו השתמשנו ויראה לך כיצד לקרוא ולכתוב בגיליונות גוגל עם פייתון:

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 ואז לחץ על: Enter ואז לחץ על: C trl + X

כתוב כשורת הקוד האחרונה: sudo reboot

תוכל גם להוריד את הקובץ המצורף שהוא קוד הפייתון המלא המשמש לפרויקט. שני הקודים מופעלים בו זמנית!

להלן קוד main.py:

ייבוא RPi. GPIO כ- GPIO ייבוא זמן יבוא זמן יבוא csv

GPIO.setmode (GPIO. BCM)

GPIO.setwarnings (שקר)

capteurP = 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.setwarnings (שקר)

פלט 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 (טריג, שקר)

timeset = time.time ()

מרחק = 100 זיכרון = 0 זמן. שינה (2) pwm.start (12.5)

בעוד שזה נכון:

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) אם timetac-timeset> 15 או זיכרון> 0.4: if memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) for x in range (0, 1): # GPIO.output (Trig, True) time.sleep (0.01) GPIO.output (טריג, שקר)

בעוד GPIO.input (Echo) == 0 ו- timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

בעוד GPIO.input (הד) == 1:

finImpulsion = time.time () if timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = distance if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = עגול ((60-מרחק)*5/6, 1) עם פתוח ('capteur.csv', 'w') כ- csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') הדפס ('זמן: {0} כמות: {1}'. פורמט (time_str, dis)) capteurwriter. writerow ([time_str, dis]) memory = -0.1 if distance <52.5: GPIO.output (5, True) else: GPIO.output (5, False) if distance <45: GPIO.output (6, True) else: GPIO.output (6, False) if distance <37.5: GPIO.output (13, True) else: GPIO.output (13, False) if distance <30: GPIO.output (19, True) else: GPIO.output (19, False) if distance <22.5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) אם המרחק <7.5: GPIO.output (26, True) אחר: GPIO.output (26, False)

להלן קוד csvcontrol.py. אל תשכח להדביק את הקובץ ".json" שנוצר באותה ספריה של main.py. קובץ ".json" נוצר באמצעות Google API. צילום מסך זמין בתמונות.

יבוא datetime יבוא זמן יבוא csv יבוא gspread

מאת oauth2client.service_account ייבוא ServiceAccountCredentials

מעת לעת ייבוא שנתיים ייבוא עקבות

timec2 = 'חחח'

בעוד נכון: time.sleep (5) loc = ('capteur.csv') עם open (loc) בתור csvfile: readCSV = csv.reader (csvfile, delimiter = ',') לשורה ב- readCSV: print (שורה [0]) timec = שורה [0] הדפסה (שורה [1]) מרחק = שורה [1] מרחק = צף (str (מרחק)) אם timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. פורמט (זמן, מרחק))

SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ נהיגה"]

credentials = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (אישורים) wks = gc.open ("גרף"). sheet1 wks = wks.append_row ((timec, מרחק))

מוּמלָץ: