Съдържание:
- Стъпка 1: Оборудване SmartBin
- Стъпка 2: Производство на малинова кутия и LED лента
- Стъпка 3: Частта на капака
- Стъпка 4: Придобиване на софтуерни части и данни
Видео: SmartBin: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Основната цел на този проект е да създаде електронно устройство, което използва поне един Raspberry Pi. Екипът е съставен от 5 бъдещи машинни инженери и един инженер по автоматизация. Нашият проект се състои в създаването на кошче за боклук, което се отваря и затваря автоматично, задействано от движение на крака под детектора за движение, разположен в центъра в предната част на кофата за боклук. Wifi USB стик се използва за изпращане на данни до уебсайт. Този контейнер се нарича "The SmartBin". Хумористичното видео по -горе представя нашия иновативен SmartBin.
За да се осъществи този проект и този забележителен SmartBin, бяха необходими няколко инструмента:
- Метър
- Силно лепило
- Лепяща лента
- Трион за дърво
- Отвертка
- Пробивна машина
- Скоба
- Нож
Стъпка 1: Оборудване SmartBin
SmartBin се състои от зелени, оранжеви и червени LED светлини, които са поставени върху осветително тяло от лявата страна на кошчето, което показва колко е напълнено. Тези светлини ще бъдат ясно видими и ще предупреждават потребителя, когато е необходимо да се смени торбата за боклук. Използваният език за програмиране е Python. Измереното ниво на пълнене на контейнера се предава на следния уебсайт:
Ето елементите, които са били използвани, но лесно можете да намерите алтернативно решение:
- 1 контейнер (контейнер "люлеещ се капак")
- 1 Сервомотор за отваряне на кошчето
- 1 Малина Пи 2
- 2 захранвания (5V зарядно за мобилен телефон и 6V захранване) за захранване на Raspberry Pi и сервомотора
- 1 Ултразвуков сензор за измерване нивото на пълнене на кофата
- Някои светодиоди за показване на нивото на пълнене (4 зелени, 2 оранжеви и 1 червено)
- 1 Ултразвуков детектор на движение за откриване на движение
- 1 16Gb SD карта
- Електрически резистори (10 000 ома, 2000 ома и 1000 ома)
- 1 WiFi usb стик, който позволява безжично предаване до уебсайта.
- 1 Платка и някои малинови кабели
Прогнозната производствена цена е 80 €.
Стъпка 2: Производство на малинова кутия и LED лента
За производството на кутия с малини използвайте трион за дърво. Закрепете всяка страна на кутията с нитове, за да изглежда чиста. Както подсказва името му, това поле ще съдържа не само Raspberry Pi, но ще включва и сензор за движение, който ще поставите в долната част. След като кутията е построена, я боядисайте в същия цвят като кошчето. Технологията за 3D печат може да се използва за създаване на тази кутия.
За производството на LED лентата използвайте електрически канал, в който пробивате отвори, за да позволите инсталирането на LED светлините. LED лентата също трябва да бъде боядисана. Когато всичко е готово, инсталирайте светодиодите в канала и направете електрическата връзка. Обърнете внимание на правилното номериране на всеки LED кабел с лепяща лента. Това ще ви помогне да идентифицирате всеки светодиод по време на окабеляване.
Накрая прикрепете кутията и LED лентата към предната част на кошчето.
Стъпка 3: Частта на капака
Що се отнася до капака на кошчето, първата стъпка е да залепите сервомотора към капака. Трябва предварително да се направи разширяване на ливъриджа. Лостът ще удари стоп, който преди това е бил ръчно изработен. Прикрепете винтова кутия към капака и направете дупка в нея, за да държите ултразвуковия сензор в правилната позиция. Уверете се, че сте прикрепили правилно кабелите към капака с лента.
Стъпка 4: Придобиване на софтуерни части и данни
По отношение на софтуерната част използвахме езика за програмиране на python. Програмата се записва в SD картата, която ще се стартира от Raspberry Pi, когато е включена. Схемата за окабеляване е налична по -горе. Изображението на щифтовете Gpio е достъпно за всички видове малини на връзката по -долу:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Възможно е да използвате ултразвуков сензор, за да замените детектора за движение, просто трябва да създадете "цикъл на if" в кода.
Както бе споменато по -горе, данните относно нивото, до което е запълнена кошчето, се предават на уебсайт, създаден на wix.com. На този уебсайт можете да намерите различни раздели, които събират членове на екипа, представяне на хардуер и софтуер,… Интересният раздел всъщност е раздела „База данни“, който събира информацията за количеството боклук директно от SmartBin и създава графика с данните. Графиката показва развитието на нивото на пълнене. Възможно е да видите или изтеглите данни от уебсайта. Връзката по -долу е уебсайтът, който използвахме и ще ви покаже как да четете и пишете в google листове с python:
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
Можете също така да изтеглите прикачения файл, който е пълният код на python, използван за проекта. И двата кода се изпълняват едновременно!
Ето кода main.py:
импортиране на RPi. GPIO като GPIOимпортиране на дата и час време за импортиране импортиране на csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (False)
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 (Trig, GPIO. OUT)
GPIO.setup (Echo, 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 време.сън (2) pwm.start (12.5)
докато е вярно:
timetac = time.time () ако GPIO.input (capteurP) и timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) памет = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0.5), ако timetac-timeset> 15 или memory> 0.4: if memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) за x в обхват (0, 1): # GPIO.output (Trig, Вярно) time.sleep (0.01) GPIO.output (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 = разстояние if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = кръг ((60-разстояние)*5/6, 1) с отворен ('capteur.csv', 'w') като csv файл: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') print ('Време: {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), ако разстояние <37,5: GPIO.output (13, True) иначе: GPIO.output (13, False), ако разстояние <30: GPIO.output (19, True) иначе: GPIO.output (19, False), ако разстояние <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. На снимките има екранна снимка.
import datetimeimport time import csv import gspread
от oauth2client.service_account импортиране ServiceAccountCredentials
от време импортиране спящ импорт проследяване обратно
timec2 = 'хаха'
while True: time.sleep (5) loc = ('capteur.csv') с отворен (loc) като csvfile: readCSV = csv.reader (csvfile, delimiter = ',') за ред в readCSV: print (ред [0]) timec = ред [0] печат (ред [1]) разстояние = ред [1] разстояние = поплавък (str (разстояние)), ако timec2! = timec: timec2 = timec print ('Време: {0} Количество: { 1}.. Формат (timec, разстояние))
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 (идентификационни данни) wks = gc.open ("графика"). sheet1 wks = wks.append_row ((timec, разстояние))
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра
SmartBin: 8 стъпки
SmartBin: Este é um projeto para um system inteligente de coletas, no qual os caminh õ es de lixo recebem dados das lixeiras, identificando a quantidade de lixo presente em cada uma delas, e uma rota de coleta tra ç ada, com base nas informa