ዝርዝር ሁኔታ:

SmartBin: 4 ደረጃዎች
SmartBin: 4 ደረጃዎች

ቪዲዮ: SmartBin: 4 ደረጃዎች

ቪዲዮ: SmartBin: 4 ደረጃዎች
ቪዲዮ: Возведение перегородок санузла из блоков. Все этапы. #4 2024, ህዳር
Anonim
Image
Image

የዚህ ፕሮጀክት ዋና ዓላማ ቢያንስ አንድ Raspberry Pi የሚጠቀም የኤሌክትሮኒክ መሣሪያ መፍጠር ነው። ቡድኑ በ 5 የወደፊት ሜካኒካዊ መሐንዲሶች እና በአንድ አውቶሜሽን መሐንዲስ የተሠራ ነው። የእኛ ፕሮጀክት በቆሻሻ ማጠራቀሚያ ፊት ላይ በማዕከሉ ውስጥ በሚገኘው የእንቅስቃሴ መመርመሪያ ስር በእግር እንቅስቃሴ የሚነሳ እና የሚዘጋ በራስ -ሰር የሚነሳ የቆሻሻ መጣያ መሥራት ነው። የ Wifi ዩኤስቢ ዱላ መረጃን ወደ ድር ጣቢያ ለመላክ ያገለግላል። ይህ ማጠራቀሚያ “ዘ ስማርትቢን” ይባላል። ከላይ ያለው አስቂኝ ቪዲዮ የእኛን የፈጠራ ስማርትቢን ያስተዋውቃል።

ይህንን ፕሮጀክት እና ይህንን አስደናቂ ስማርትቢን ለማከናወን ብዙ መሣሪያዎች አስፈላጊ ነበሩ-

  • አንድ ሜትር
  • ጠንካራ ሙጫ
  • የሚጣበቅ ቴፕ
  • የእንጨት መሰንጠቂያ
  • ጠመዝማዛ
  • አንድ መሰርሰሪያ ማሽን
  • መቆንጠጫ
  • ቢላዋ

ደረጃ 1 SmartBin መሣሪያዎች

ስማርትቢን መሣሪያዎች
ስማርትቢን መሣሪያዎች
ስማርትቢን መሣሪያዎች
ስማርትቢን መሣሪያዎች

ስማርትቢን በአረንጓዴ ፣ ብርቱካንማ እና ቀይ የ LED መብራቶች የተዋቀረ ሲሆን ይህም በመያዣው በግራ በኩል ባለው እቃ ላይ የተቀመጠ ሲሆን ይህም ምን ያህል እንደተሞላ ይጠቁማል። እነዚህ መብራቶች በግልጽ የሚታዩ እና የቆሻሻ ቦርሳውን ለመተካት አስፈላጊ በሚሆንበት ጊዜ ተጠቃሚውን ያስጠነቅቃሉ። ጥቅም ላይ የዋለው የፕሮግራም ቋንቋ ፓይዘን ነው። የሚለካው የመያዣው የመሙላት ደረጃ ወደሚከተለው ድር ጣቢያ ይተላለፋል-

ያገለገሉ ንጥረ ነገሮች እዚህ አሉ ግን በቀላሉ አማራጭ መፍትሄ ማግኘት ይችላሉ-

  • 1 ቢን (“የመወዛወዝ ሽፋን” መያዣ)
  • ማጠራቀሚያውን ለመክፈት 1 Servomotor
  • 1 Raspberry Pi 2
  • Raspberry Pi እና servomotor ን ለማቅረብ 2 የኃይል አቅርቦቶች (5V የሞባይል ስልክ ባትሪ መሙያ እና 6V የኃይል አቅርቦት)
  • 1 የቢንጣውን የመሙላት ደረጃ ለመለካት የአልትራሳውንድ ዳሳሽ
  • አንዳንድ ኤልኢዲዎች የመሙያ ደረጃውን ለማሳየት (4 አረንጓዴ ፣ 2 ብርቱካናማ እና 1 ቀይ)
  • 1 እንቅስቃሴን ለመለየት የአልትራሳውንድ እንቅስቃሴ ጠቋሚ
  • 1 16 ጊባ ኤስዲ-ካርድ
  • የኤሌክትሪክ ተከላካዮች (10.000 Ohms ፣ 2000 Ohms እና 1000 Ohms)
  • ወደ ድር ጣቢያው ገመድ አልባ ስርጭትን ለማንቃት 1 WiFi usb stick።
  • 1 የዳቦ ሰሌዳ እና አንዳንድ Raspberry ኬብሎች

የተገመተው የማምረቻ ዋጋ 80 € ነው።

ደረጃ 2 የ Raspberry Box እና የ LED አሞሌ ማምረት

የ Raspberry Box እና የ LED አሞሌ ማምረት
የ Raspberry Box እና የ LED አሞሌ ማምረት
የ Raspberry Box እና የ LED አሞሌ ማምረት
የ Raspberry Box እና የ LED አሞሌ ማምረት
የ Raspberry Box እና የ LED አሞሌ ማምረት
የ Raspberry Box እና የ LED አሞሌ ማምረት

Raspberry ሣጥን ለማምረት ፣ የእንጨት መሰንጠቂያ ይጠቀሙ። ንፁህ መስሎ እንዲታይ እያንዳንዱን የሳጥን ጎን በሪቶች ያያይዙት። ስሙ እንደሚጠቆመው ፣ ይህ ሳጥን የ Raspberry Pi ን ብቻ ሳይሆን ከታች የሚያስቀምጡትን የእንቅስቃሴ ዳሳሽንም ያካትታል። ሳጥኑ ከተገነባ በኋላ ልክ እንደ ቢን በተመሳሳይ ቀለም ይሳሉ። ይህንን ሣጥን ለመፍጠር የ3 -ል ማተሚያ ቴክኖሎጂ ጥቅም ላይ ሊውል ይችላል።

የ LED አሞሌን ለማምረት ፣ የ LED መብራቶች እንዲጫኑ ቀዳዳዎችን የሚቆፍሩበትን የኤሌክትሪክ ቱቦ ይጠቀሙ። የ LED አሞሌ እንዲሁ መቀባት አለበት። ሁሉም ነገር ዝግጁ በሚሆንበት ጊዜ በዲቪዲው ውስጥ ያሉትን ኤልዲዎች ይጫኑ እና የኤሌክትሪክ ግንኙነቱን ያድርጉ። እያንዳንዱን የ LED ኬብሎች በማጣበቂያ ቴፕ በትክክል ለመቁጠር ትኩረት ይስጡ። በገመድ ጊዜ እያንዳንዱን ኤልኢዲ ለመለየት ይረዳዎታል።

በመጨረሻም ሳጥኑን እና የ LED አሞሌውን ከመያዣዎ ፊት ለፊት ያያይዙት።

ደረጃ 3 - የክዳን ክፍል

የክዳን ክፍል
የክዳን ክፍል
የክርን ክፍል
የክርን ክፍል

የመያዣውን ክዳን በተመለከተ ፣ የመጀመሪያው እርምጃ ሰርቶሞተርን ከሽፋኑ ጋር ማጣበቅ ነው። የማሻሻያው ማራዘሚያ ከዚህ በፊት መደረግ አለበት። ተጣጣፊው ቀደም ሲል በእጅ የተሠራውን ማቆሚያ ያቆማል። የአልትራሳውንድ ዳሳሹን በትክክለኛው ቦታ ላይ ለመያዝ የሽቦ ሳጥኑን ወደ ክዳኑ ያያይዙ እና በውስጡ ቀዳዳ ያድርጉ። በክዳኑ ላይ ገመዶችን በቴፕ በትክክል ማያያዝዎን ያረጋግጡ።

ደረጃ 4 የሶፍትዌር ክፍል እና የውሂብ ማግኛ

የሶፍትዌር ክፍል እና የውሂብ ማግኛ
የሶፍትዌር ክፍል እና የውሂብ ማግኛ
የሶፍትዌር ክፍል እና የውሂብ ማግኛ
የሶፍትዌር ክፍል እና የውሂብ ማግኛ
የሶፍትዌር ክፍል እና የውሂብ ማግኛ
የሶፍትዌር ክፍል እና የውሂብ ማግኛ

የሶፍትዌሩን ክፍል በተመለከተ እኛ የፓይዘን ፕሮግራም ቋንቋን ተጠቀምን። ፕሮግራሙ ሲበራ በ Raspberry Pi በሚሰራው በ SD- ካርድ ውስጥ ይቀመጣል። የሽቦ አሠራሩ ከላይ ይገኛል። የ Gpio ፒኖች ምስል ከዚህ በታች ባለው አገናኝ ላይ ለሁሉም የራስበሪ ዓይነቶች ይገኛል።

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

የእንቅስቃሴ መፈለጊያውን ለመተካት የአልትራሳውንድ ዳሳሽ መጠቀም ይቻላል ፣ በኮዱ ውስጥ ‹if loop› መፍጠር ብቻ ያስፈልግዎታል።

ከላይ እንደተጠቀሰው ፣ ቢን የተሞላበትን ደረጃ የሚመለከት መረጃ በ wix.com ላይ ወደተፈጠረ ድር ጣቢያ ይተላለፋል። በዚህ ድር ጣቢያ ላይ የቡድን አባላትን ፣ ሃርድዌርን እና የሶፍትዌር ማቅረቢያዎችን የሚሰበስቡ የተለያዩ ትሮችን ማግኘት ይችላሉ ፣… የሚስብ ትር በእውነቱ በቀጥታ ከ SmartBin የቆሻሻ መጣያ መጠንን በተመለከተ መረጃውን የሚሰበስብ እና ከመረጃው ጋር ግራፍ የሚፈጥር “የውሂብ ጎታ” ትር ነው።. ግራፉ የመሙላት ደረጃን ዝግመተ ለውጥ ያሳያል። መረጃዎችን ከድር ጣቢያው ማየት ወይም ማውረድ ይቻላል። ከዚህ በታች ያለው አገናኝ እኛ የተጠቀምንበት ድር ጣቢያ ነው እና እንዴት በፓይዘን በ 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 Crl + O ን ይጫኑ ፣ ይጫኑ: ከዚያ ያስገቡ ፣ ይጫኑ - C trl + X

እንደ የመጨረሻ ኮድ መስመር ይፃፉ -sudo ዳግም ማስነሳት

እንዲሁም ለፕሮጀክቱ ጥቅም ላይ የዋለውን ሙሉ የፓይዘን ኮድ የሆነውን ዓባሪውን ማውረድ ይችላሉ። ሁለቱም ኮዶች በአንድ ጊዜ ይሰራሉ!

ዋናው.py ኮድ እዚህ አለ

RPi. GPIO ን እንደ GPIO ያስመጡ የውጪ ጊዜን የማስመጣት ጊዜ አስመጪ csv

GPIO.setmode (GPIO. BCM)

GPIO. ማስጠንቀቂያዎች (ሐሰት)

capteurP = 7

servo = 17

GPIO.setup (servo ፣ 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 (26 ፣ GPIO. OUT)

ትሪ = 23

ኢኮ = 24

GPIO.setup (Trig, GPIO. OUT)

GPIO.setup (Echo ፣ GPIO. IN)

GPIO. ማስጠንቀቂያዎች (ሐሰት)

GPIO.output (5 ፣ ሐሰት)

GPIO.output (6 ፣ ሐሰት) GPIO.output (13 ፣ ሐሰት) GPIO.output (19 ፣ ሐሰት) GPIO.output (20 ፣ ሐሰት)

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 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 (ትሪግ ፣ ሐሰት)

GPIO.input (Echo) == 0 እና timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

GPIO.input (Echo) == 1:

finImpulsion = ጊዜ። ጊዜ () timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = ርቀት ከሆነ (ርቀት 1-ርቀት 2) <1 እና (distance2-distance1) 0.4: dis = round ((60-distance)*5/6, 1) with open ('capteur.csv', 'w') as csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now () ፣ '%Y-%m-%d%H:%M:%S') ህትመት ('ጊዜ ፦ {0} Quantitee: 1 1' ') writerow ([time_str, dis]) memory = -0.1 ርቀት ከሆነ <52.5: GPIO.output (5 ፣ True) ሌላ GPIO.output (5 ፣ ሐሰት) ርቀት ከሆነ <45: GPIO.output (6 ፣ True) ሌላ ፦ GPIO.output (6 ፣ ሐሰት) ርቀት ከሆነ <37.5: GPIO.output (13 ፣ እውነት) ሌላ - GPIO.output (13 ፣ ሐሰት) ርቀት ከሆነ <30: GPIO.output (19 ፣ እውነት) ሌላ - GPIO.output (19 ፣ ሐሰት) ርቀት ከሆነ <22.5: GPIO.output (20 ፣ እውነት) ሌላ - GPIO.output (20 ፣ ሐሰት) ርቀት ከሆነ <15: GPIO.output (21 ፣ እውነት) ሌላ - GPIO.output (21 ፣ ሐሰት) ርቀት ከሆነ <7.5: GPIO.output (26 ፣ እውነት) ሌላ - GPIO.output (26 ፣ ሐሰት)

የ csvcontrol.py ኮድ እዚህ አለ። የተፈጠረውን ".json" ፋይል በ main.py ተመሳሳይ ማውጫ ውስጥ መለጠፉን አይርሱ። የ ".json" ፋይል በ google ኤፒአይ የተፈጠረ ነው። ቅጽበታዊ ገጽ እይታ በስዕሎች ውስጥ ይገኛል።

የማስመጣት datetimeimport time አስመጪ csv ማስመጣት gspread

ከ oauth2client.service_account ማስመጣት ServiceAccountCredentials

ከጊዜ ወደ ጊዜ የእንቅልፍ ማስመጣት ዱካ መከታተል

timec2 = 'lol'

እውነት በሚሆንበት ጊዜ time.sleep (5) loc = ('capteur.csv') በክፍት (loc) እንደ csvfile: readCSV = csv.reader (csvfile, delimiter = ',') ለ ረድፍ በንባብ CS: ህትመት (ረድፍ [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/ መንዳት "]

ምስክርነቶች = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("ግራፍ"). sheet1 wks = wks.append_row ((timec, distance))

የሚመከር: