Мазмуну:
- 1 -кадам: SmartBin жабдуулары
- 2 -кадам: Raspberry Box жана LED тилкесин өндүрүү
- 3 -кадам: Капкактын бөлүгү
- 4 -кадам: Программалык бөлүк жана маалыматтарды алуу
Video: SmartBin: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул долбоордун негизги максаты - жок дегенде бир Raspberry Pi колдонгон электрондук түзүлүштү түзүү. Команда 5 болочок механик инженерден жана бир автоматика инженеринен турат. Биздин долбоор таштанды челегинин маңдайындагы борбордо жайгашкан кыймыл детекторунун астындагы бут кыймылы менен автоматтык түрдө ачылуучу жана жабылуучу таштанды челегин жасоодон турат. Wifi USB таягы веб -сайтка маалыматтарды жөнөтүү үчүн колдонулат. Бул кутуча "SmartBin" деп аталат. Жогорудагы күлкүлүү видео инновациялык SmartBinибизди тааныштырат.
Бул долбоорду жана укмуштуудай SmartBinди ишке ашыруу үчүн бир нече инструменттер керек болгон:
- Бир метр
- Мыкты желим
- Желим скотч
- Жыгач араа
- Бурагыч
- Бургулоочу машина
- Кыскыч
- Бычак
1 -кадам: SmartBin жабдуулары
SmartBin жашыл, кызгылт сары жана кызыл түстөгү LED чырактардан турат, алар урнанын сол жагында орнотулган, бул анын канчалык толтурулганын көрсөтөт. Бул жарыктар так көрүнүп турат жана таштанды салынуучу баштыкты алмаштыруу керек болгондо колдонуучуну эскертет. Колдонулган программалоо тили Python. Урнанын толтурулган деңгээли төмөнкү вебсайтка берилет:
Бул жерде колдонулган элементтер бар, бирок сиз башка чечимди оңой таба аласыз:
- 1 кутуча
- 1 Контейнерди ачуу үчүн сервомотор
- 1 Raspberry Pi 2
- Raspberry Pi жана сервомотор менен камсыз кылуу үчүн 2 энергия булактары (5В мобилдик телефондун заряддагыч түзүлүшү жана 6В электр менен камсыздоо)
- 1 УЗИ сенсору урнанын толтуруу деңгээлин өлчөө үчүн
- Кээ бир LEDлар толтуруу деңгээлин көрсөтүү үчүн (4 жашыл, 2 кызгылт сары жана 1 кызыл)
- 1 УЗИ кыймыл детектору кыймылды аныктоо үчүн
- 1 16Гб SD-карта
- Электр каршылыгы (10.000 Ом, 2000 Ом жана 1000 Ом)
- Вебсайтка зымсыз өткөрүүнү иштетүү үчүн 1 WiFi USB таякчасы.
- 1 Breadboard жана Raspberry кабелдери
Болжолдуу өндүрүштүк баасы 80 €.
2 -кадам: Raspberry Box жана LED тилкесин өндүрүү
Raspberry кутусун өндүрүү үчүн жыгач арааны колдонуңуз. Таза көрүнүшү үчүн кутучанын ар бир тарабын тойколор менен бекиңиз. Аты айтып тургандай, бул кутуда Raspberry Pi гана эмес, түбүнө жайгаштырыла турган кыймыл сенсору да камтылган. Куту курулган соң, аны урнанын түсүнө боёгула. Бул кутуну түзүү үчүн 3D басып чыгаруу технологиясын колдонсо болот.
LED тилкесин өндүрүү үчүн, LED чырактарын орнотууга уруксат берүү үчүн тешиктерди бурган электр каналын колдонуңуз. LED тилкеси да боёлушу керек. Баары даяр болгондон кийин, каналга LED диоддорун орнотуп, электр байланышын жасаңыз. Ар бир LED кабелин скотч менен туура номерлөөгө көңүл буруңуз. Бул зымдарды өткөрүү учурунда ар бир LEDди аныктоого жардам берет.
Акыр -аягы, кутуну жана LED тилкесин таштанды челегиңиздин алдына тиркеңиз.
3 -кадам: Капкактын бөлүгү
Урнанын капкагына келсек, биринчи кадам - сервомоторду капкакка жабыштыруу. Левередждин узартылышы мурда жасалышы керек. Рычаг мурда колго жасалган аялдамага тийет. УЗИ сенсорун туура абалда кармоо үчүн капкакка бурамалуу кутуну тагып, тешик жасаңыз. Кабелдин капкагына скотч менен туура бекиткениңизди текшериңиз.
4 -кадам: Программалык бөлүк жана маалыматтарды алуу
Программалык бөлүккө келсек, биз питон программалоо тилин колдондук. Бул программа Raspberry Pi иштетилген SD-картада сакталат. Кабелдик схемасы жогоруда жеткиликтүү. Gpio казыктарынын сүрөтү төмөндөгү шилтемеде малинанын бардык түрлөрү үчүн жеткиликтүү:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Кыймыл детекторун алмаштыруу үчүн УЗИ сенсорун колдонсо болот, жөн эле коддо "эгерде цикл" түзүү керек.
Жогоруда айтылгандай, урнанын толтуруу деңгээлине тиешелүү маалыматтар wix.com сайтында түзүлгөн вебсайтка берилет. Бул веб -сайттан сиз команданын мүчөлөрүн, аппараттык жана программалык камсыздоону чогулткан ар кандай өтмөктөрдү таба аласыз … Кызыктуу өтмөк чындыгында таштандылардын өлчөмү тууралуу маалыматты SmartBinден чогулткан жана маалыматтар менен график түзүүчү "Маалыматтар базасы" өтмөгү.. График толтуруу деңгээлинин эволюциясын көрсөтөт. Бул веб -сайттан маалыматтарды көрүп же жүктөп алууга болот. Төмөндөгү шилтеме биз колдонгон вебсайт жана сизге 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 &
Аврорун сактоо үчүн, басыңыз: C trl + O Андан кийин, басыңыз: Enter Андан кийин, басыңыз: C trl + X
Акыркы код сабы катары жазыңыз: sudo reboot
Сиз ошондой эле долбоор үчүн колдонулган толук питон коду болгон тиркемени жүктөй аласыз. Эки код бир убакта иштейт!
Бул жерде main.py коду:
GPO импорттун RPi. GPIO импорттоо датасы импорт убактысын импорттоо csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (False)
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 (21, GPIO. OUT) GPIO.setup (26, GPIO. OUT)
Триг = 23
Эхо = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Эхо, GPIO. IN)
GPIO.setwarnings (False)
GPIO.output (5, False)
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 (Trig, False)
timeset = time.time ()
аралык = 100 эс = 0 убакыт
чын болсо:
timetac = time.time () if GPIO.input (capteurP) and 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) x for x диапазонунда (0, 1): # GPIO.output (Trig, True) time.sleep (0.01) GPIO.output (Trig, False)
GPIO.input (Эхо) == 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) расстояние 2 = дистанция (расстояние1-дистанция2) <1 жана (аралык2-аралык1) 0,4: dis = тегерек ((60-аралык)*5/6, 1) csvfile катары ачык ('capteur.csv', 'w') менен: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') басып чыгаруу ('Убакыт: {0} Quantitee: {1}'. формат (time_str, dis)) капитан. жазуучу ([time_str, dis]) эстутум = -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) else: GPIO.output (13, False) if distance <30: GPIO.output (19, True) else: GPIO.output (19, False) эгер алыстык <22.5: GPIO.output (20, True) башка: 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 менен түзүлгөн. Скриншот сүрөттөрдө бар.
импорттоо datetimeimport убакыт импорт csv импорт gspread
oauth2client.service_account импортунан ServiceAccountCredentials
убакыттан импорттук уйку импорттук трекбэк
timec2 = 'lol'
while True: time.sleep (5) loc = ('capteur.csv') with open (loc) with csvfile: readCSV = csv.reader (csvfile, delimiter = ',') readCSV: print (катар [0]) timec = катар [0] басып чыгаруу (катар [1]) расстояние = катар [1] расстояние = калкып чыгуу (str (расстояние)) if timec2! = timec: timec2 = timec print ('Убакыт: {0} Quantitee: { 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 ((тайм, аралык))
Сунушталууда:
Кантип кадам эсептегич жасоо керек?: 3 кадам (сүрөттөр менен)
Step Counter кантип жасалат ?: Мен көптөгөн спортто жакшы аткарчумун: жөө басуу, чуркоо, велосипед тебүү, бадминтон ойноо ж.б. Мейли, менин ичимди карачы ……. Ооба, баары бир мен машыгуу үчүн кайра баштоону чечтим. Мен кандай жабдыктарды даярдашым керек?
IPodдо Doomду 5 жеңил кадам менен ойноңуз !: 5 кадам
Doom'ду IPodдо 5 жеңил кадам менен ойноңуз!: Doom жана башка ондогон оюндарды ойноо үчүн iPod'уңузда Rockboxту кантип кош жүктөө керектиги боюнча этап-этабы менен көрсөтмө. Бул чындыгында оңой нерсе, бирок менин iPodдо кыйроо ойноп жатканымды көргөндөрдүн көбү дагы эле таң калышат жана көрсөтмө менен чаташып кетишет
WordPressке плагиндерди 3 кадам менен кантип орнотсо болот: 3 кадам
WordPressке плагиндерди 3 этапта кантип орнотуу керек: Бул үйрөткүчтө мен сизге веб -сайтыңызга WordPress плагинин орнотуу үчүн эң маанилүү кадамдарды көрсөтөм. Негизи плагиндерди эки башка жол менен орнотсоңуз болот. Биринчи ыкма ftp же cpanel аркылуу болот. Бирок мен аны тизмектебейм, анткени бул чындыгында нааразы
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
SmartBin: 8 кадам
SmartBin: Este é жалпы системанын интеллектуалдык деӊгээлинде, эч кандай сапатка ээ эмес, эсиңизде болсун, сиз өзүңүздү өзүңүз билиңиз, сиз өзүңүздү ким экениңизди билиңиз, биз өзүбүздүн маалыматыбызды