Բովանդակություն:
- Քայլ 1: SmartBin սարքավորում
- Քայլ 2. Ազնվամորու տուփի և LED բարերի արտադրություն
- Քայլ 3: Կափարիչի մաս
- Քայլ 4. Softwareրագրաշարի մաս և տվյալների ձեռքբերում
Video: SmartBin: 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս նախագծի հիմնական նպատակն է ստեղծել էլեկտրոնային սարք, որն օգտագործում է առնվազն մեկ Raspberry Pi: Թիմը բաղկացած է 5 ապագա մեխանիկական ինժեներներից և մեկ ավտոմատացման ինժեներից: Մեր նախագիծը բաղկացած է աղբարկղ պատրաստելուց, որը ինքնաբերաբար բացվում և փակվում է ՝ ոտքի շարժումով շարժվող դետեկտորի տակ, որը գտնվում է աղբարկղի առջևի կենտրոնում: Wifi USB սկավառակն օգտագործվում է տվյալներ վեբ կայք ուղարկելու համար: Այս աղբարկղը կոչվում է «The SmartBin»: Վերը նշված հումորային տեսանյութը ներկայացնում է մեր նորարարական SmartBin- ը:
Այս նախագիծը և այս ուշագրավ SmartBin- ը իրականացնելու համար անհրաժեշտ էին մի քանի գործիքներ.
- Մի մետր
- Ուժեղ սոսինձ
- Կպչուն ժապավեն
- Փայտե սղոց
- Պտուտակահան
- Հորատման մեքենա
- Սեղմիչ
- Դանակ
Քայլ 1: SmartBin սարքավորում
SmartBin- ը բաղկացած է կանաչ, նարնջագույն և կարմիր LED լույսերից, որոնք տեղադրված են աղբարկղի ձախ կողմում գտնվող ամրացման վրա, ինչը ցույց կտա, թե որքանով է այն լցված: Այս լույսերը հստակ տեսանելի կլինեն և կզգուշացնեն օգտվողին, երբ անհրաժեշտ է փոխարինել աղբարկղը: Օգտագործվող ծրագրավորման լեզուն Python- ն է: Աղբարկղի լցված մակարդակը փոխանցվում է հետևյալ կայքէջին ՝
Ահա այն տարրերը, որոնք օգտագործվել են, բայց դուք կարող եք հեշտությամբ գտնել այլընտրանքային լուծում.
- 1 աղբարկղ («պտտվող ծածկ»)
- 1 սերվոմոտոր `աղբարկղը բացելու համար
- 1 ազնվամորի պի 2
- 2 Էներգամատակարարում (5 Վ բջջային հեռախոսի լիցքավորիչ և 6 Վ էլեկտրամատակարարում) `Raspberry Pi- ին և սերվոմոտորին մատակարարելու համար
- 1 Ուլտրաձայնային տվիչ `աղբարկղի լցոնման մակարդակը չափելու համար
- Որոշ լուսադիոդներ ՝ լրացման մակարդակը ցուցադրելու համար (4 կանաչ, 2 նարնջագույն և 1 կարմիր)
- 1 Ուլտրաձայնային շարժման դետեկտոր `շարժում հայտնաբերելու համար
- 1 16 Գբ SD քարտ
- Էլեկտրական ռեզիստորներ (10.000 Օմ, 2000 Օմ և 1000 Օմ)
- 1 WiFi USB ձողիկ ՝ անլար փոխանցումը դեպի կայք միացնելու համար:
- 1 տախտակ և որոշ ազնվամորու մալուխներ
Արտադրության գինը 80 € է:
Քայլ 2. Ազնվամորու տուփի և LED բարերի արտադրություն
Ազնվամորու տուփը պատրաստելու համար օգտագործեք փայտի սղոց: Ամրացրեք տուփի յուրաքանչյուր կողմը պտուտակներով, որպեսզի այն մաքուր տեսք ունենա: Ինչպես նշվում է իր անունից, այս տուփը պարունակում է ոչ միայն Raspberry Pi, այլև կներառի շարժման տվիչ, որը դուք կտեղադրեք ներքևում: Տուփը կառուցվելուց հետո ներկեք այն նույն գույնով, ինչ աղբարկղը: Այս տուփը ստեղծելու համար կարող է օգտագործվել 3D տպագրության տեխնոլոգիան:
LED բարը պատրաստելու համար օգտագործեք էլեկտրական խողովակ, որի մեջ անցքեր եք հորատում `թույլ տալով լուսադիոդային լույսերը տեղադրվել: LED բարը նույնպես պետք է ներկված լինի: Երբ ամեն ինչ պատրաստ է, տեղադրեք LED- ները խողովակում և կատարեք էլեկտրական միացում: Ուշադրություն դարձրեք յուրաքանչյուր LED մալուխի սոսինձ ժապավենով ճիշտ համարակալմանը: Դա կօգնի ձեզ բացահայտել յուրաքանչյուր LED- ը էլեկտրագծերի տեղադրման ընթացքում:
Վերջապես, տուփը և LED բարը ամրացրեք ձեր աղբարկղի առջևի մասում:
Քայլ 3: Կափարիչի մաս
Ինչ վերաբերում է աղբամանի կափարիչին, ապա առաջին քայլը սերվոմոտորին սոսնձելն է կափարիչին: Լծակի երկարաձգումը պետք է նախապես կատարվի: Լծակը կհարվածի մի կանգառի, որը նախկինում ձեռքի աշխատանք էր: Կափարիչին ամրացրեք պտուտակային տուփ և դրա մեջ անցք կատարեք, որպեսզի ուլտրաձայնային տվիչը ճիշտ դիրքում պահվի: Համոզվեք, որ կափարիչի վրա մալուխները ճիշտ կցել եք ժապավենով:
Քայլ 4. Softwareրագրաշարի մաս և տվյալների ձեռքբերում
Ինչ վերաբերում է ծրագրային ապահովման հատվածին, մենք օգտագործեցինք python ծրագրավորման լեզուն: Programրագիրը պահվում է SD քարտում, որը միացնելու դեպքում գործարկվելու է Raspberry Pi- ի կողմից: Էլեկտրագծերի սխեման հասանելի է վերևում: Gpio կապում պատկերը հասանելի է ազնվամորու բոլոր տեսակների համար ՝ ստորև բերված հղումով.
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Շարժման դետեկտորին փոխարինելու համար հնարավոր է օգտագործել ուլտրաձայնային տվիչ, պարզապես անհրաժեշտ է կոդի մեջ ստեղծել «եթե օղակ»:
Ինչպես վերը նշվեց, աղբարկղը լցված մակարդակին վերաբերող տվյալները փոխանցվում են wix.com կայքում ստեղծված կայքին: Այս կայքում կարող եք գտնել տարբեր ներդիրներ, որոնք հավաքում են թիմի անդամներին, ապարատային և ծրագրային ապահովման ներկայացում…. Գրաֆիկը ցուցադրում է լցոնման մակարդակի էվոլյուցիան: Հնարավոր է տեսնել կամ ներբեռնել տվյալները կայքից: Ստորև բերված հղումը այն կայքն է, որը մենք օգտագործել ենք և ձեզ ցույց կտա, թե ինչպես կարդալ և գրել google թերթերում python- ով.
www.makeuseof.com/tag/read-write-google-sh…
Կոդի «autorun մասի» վերաբերյալ տերմինալում գրեք ՝ sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Այնուհետև, նոր բացված սցենարի վերջում գրեք այս երկու ծածկագրի տողերը ՝ python /home/pi/main.py & python /home/pi/csvcontrol.py &
Aurorun- ը պահելու համար սեղմեք ՝ C trl + O Հետո, սեղմեք ՝ Մտնել Հետո, սեղմեք ՝ C trl + X
Գրեք որպես վերջին կոդի տող `sudo reboot
Կարող եք նաև ներբեռնել հավելվածը, որը նախագծի համար օգտագործվող պիթոնի ամբողջական ծածկագիրն է: Երկու կոդերն էլ գործարկվում են միաժամանակ:
Ահա main.py կոդը ՝
ներմուծել RPi. GPIO- ն որպես GPIOimport ամսաթվերի ներմուծման ժամանակը ներմուծման csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (Կեղծ)
capteurP = 7
սերվո = 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 (21, GPIO. OUT) GPIO.setup (26, GPIO. OUT)
Հեռացում = 23
Էխո = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Էխո, GPIO. IN)
GPIO.setwarnings (Կեղծ)
GPIO.output (5, կեղծ)
GPIO.output (6, կեղծ) GPIO.output (13, կեղծ) GPIO.output (19, կեղծ) GPIO.output (20, կեղծ) GPIO.output (21, կեղծ) GPIO.output (26, կեղծ)
GPIO.output (Trig, False)
timeset = time.time ()
հեռավորություն = 100 հիշողություն = 0 անգամ: քուն (2) pwm. սկիզբ (12.5)
իսկական True:
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: եթե memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) x միջակայքում (0, 1):, Trueշմարիտ) time.sleep (0.01) GPIO.putput (Trig, False)
մինչ GPIO.input (Echo) == 0 և timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
իսկ GPIO.input (Echo) == 1:
finImpulsion = time.time () if timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = distance if (distance1-distance2) <1 և (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: գրող ([time_str, dis]) հիշողություն = -0.1, եթե հեռավորությունը <52.5: GPIO.output (5, True) այլ ՝ GPIO.output (5, False) եթե հեռավորությունը <45: GPIO.output (6, True) այլ: 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, Սխալ) եթե հեռավորությունը <22.5: GPIO.output (20, True) այլ ՝ GPIO.output (20, False) եթե հեռավորությունը <15: GPIO.output (21, True) այլ ՝ GPIO.output (21, False) եթե հեռավորությունը <7.5: GPIO.putput (26, True) այլ ՝ GPIO.output (26, False)
Ահա csvcontrol.py ծածկագիրը: Մի մոռացեք, որ ստեղծված «.json» ֆայլը տեղադրեք main.py- ի նույն գրացուցակում: «. Json» ֆայլը ստեղծվում է google API- ով: Նկարներում առկա է սքրինշոթ:
ներմուծել datetimeimport ժամանակ ներմուծել csv ներմուծել gspread
oauth2client.service_account ներմուծումից ServiceAccountCredentials
ժամանակից ներմուծել քնի ներմուծման հետագծում
timec2 = 'լոլ'
while True: time.sleep (5) loc = ('capteur.csv') բաց (loc) որպես csvfile: readCSV = csv.reader (csvfile, delimiter = ',') ընթերցման տողի համար]) timec = տող [0] տպագիր (տող [1]) հեռավորություն = տող [1] հեռավորություն = բոց (հեռավորություն)) եթե timec2! = timec: timec2 = timec տպագիր (':ամանակը ՝ {0} Քանակական: { 1} '. Ֆորմատ (timec, հեռավորություն))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ քշել »]
հավատարմագրեր = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
SmartBin: 8 քայլ
SmartBin: Este é um projeto para um sistema inteligente de coletas, no qual os caminh õ es de lixo Recebem dados das lixeiras, identificando a quantidade de lixo presente em cada uma delas, euma rota de coleta tra ç ada, com base nas info