Оглавление:
- Шаг 1. Оборудование SmartBin
- Шаг 2: Изготовление коробки Raspberry Box и светодиодной панели
- Шаг 3: крышка
- Шаг 4: программная часть и сбор данных
Видео: SmartBin: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Основная цель этого проекта - создать электронное устройство, в котором используется хотя бы один Raspberry Pi. Команда состоит из 5 будущих инженеров-механиков и одного инженера по автоматизации. Наш проект состоит в создании мусорного ведра, которое открывается и закрывается автоматически при движении ноги под детектором движения, расположенным в центре на передней части мусорного ведра. USB-накопитель Wifi используется для отправки данных на веб-сайт. Эта корзина называется «SmartBin». В юмористическом видео выше представлен наш инновационный SmartBin.
Чтобы реализовать этот проект и этот замечательный SmartBin, потребовалось несколько инструментов:
- Метр
- Крепкий клей
- Скотч
- Пила по дереву
- Отвертка
- Сверлильный станок
- Зажим
- Нож
Шаг 1. Оборудование SmartBin
SmartBin состоит из зеленого, оранжевого и красного светодиодных индикаторов, которые размещаются на приспособлении с левой стороны бункера, что указывает на то, насколько он заполнен. Эти индикаторы будут хорошо видны и будут предупреждать пользователя о необходимости замены мешка для мусора. Используемый язык программирования - Python. Измеренный уровень заполнения бункера передается на следующий веб-сайт:
Вот элементы, которые использовались, но вы можете легко найти альтернативное решение:
- 1 корзина (корзина с откидной крышкой)
- 1 серводвигатель для открытия бункера
- 1 Raspberry Pi 2
- 2 блока питания (зарядное устройство для мобильного телефона 5 В и блок питания 6 В) для питания Raspberry Pi и серводвигателя
- 1 ультразвуковой датчик для измерения уровня заполнения бункера
- Некоторые светодиоды для отображения уровня заполнения (4 зеленых, 2 оранжевых и 1 красный)
- 1 ультразвуковой датчик движения для обнаружения движения
- 1 SD-карта 16 ГБ
- Электрические резисторы (10.000 Ом, 2000 Ом и 1000 Ом)
- 1 USB-накопитель WiFi для беспроводной передачи на веб-сайт.
- 1 Макетная плата и некоторые кабели Raspberry
Ориентировочная цена изготовления 80 €.
Шаг 2: Изготовление коробки Raspberry Box и светодиодной панели
Для изготовления ящика «Малина» воспользуйтесь пилой по дереву. Закрепите коробку заклепками со всех сторон, чтобы она выглядела чистой. Как следует из названия, эта коробка будет содержать не только Raspberry Pi, но также будет включать датчик движения, который вы разместите внизу. Когда ящик будет построен, покрасьте его в тот же цвет, что и мусорное ведро. Для создания этой коробки можно использовать технологию 3D-печати.
Для изготовления светодиодной планки используйте электрический канал, в котором вы просверливаете отверстия для установки светодиодных фонарей. Светодиодная полоса также должна быть покрашена. Когда все будет готово, установите светодиоды в воздуховод и выполните электрическое подключение. Обратите внимание на то, чтобы правильно пронумеровать каждый светодиодный кабель с помощью липкой ленты. Это поможет вам идентифицировать каждый светодиод во время подключения.
Наконец, прикрепите коробку и светодиодную панель к передней части корзины.
Шаг 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 (Ложь)
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 time.sleep (2) pwm.start (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: если память> 0,4: pwm. ChangeDutyCycle (2.5) time.sleep (1) для x в диапазоне (0, 1): # GPIO.output (Trig, True) 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 (), если timetac-timeset <17: distance1 = round ((finImpulsion - debutImpulsion) * 340 * 100/2, 1) distance2 = distance if (distance1-distance2) <1 and (distance2-distance1) 0.4: dis = round ((60-расстояние) * 5/6, 1) с open ('capteur.csv', 'w') как csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '% Y-% m-% d% H:% M:% S') print ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. Writerow ([time_str, dis]) memory = -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) иначе: GPIO.output (13, False), если расстояние <30: GPIO.output (19, True) else: GPIO.output (19, False), если расстояние <22,5: GPIO.output (20, True) иначе: GPIO.output (20, False), если расстояние <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. Скриншот доступен на картинках.
Дата импорта, время, время, импорт, csv, импорт, gspread
из oauth2client.service_account импорт ServiceAccountCredentials
от времени импорт сна импорт трассировки
timec2 = 'лол'
while True: time.sleep (5) loc = ('capteur.csv') с open (loc) как csvfile: readCSV = csv.reader (csvfile, delimiter = ',') для строки в readCSV: print (row [0]) timec = row [0] print (row [1]) distance = row [1] distance = float (str (distance)) if 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.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))
Рекомендуемые:
Распознавание лиц на Raspberry Pi 4B за 3 шага: 3 шага
Обнаружение лиц на Raspberry Pi 4B за 3 шага: в этом руководстве мы собираемся выполнить обнаружение лиц на Raspberry Pi 4 с помощью Shunya O / S, используя библиотеку Shunyaface. Shunyaface - это библиотека распознавания / обнаружения лиц. Проект направлен на достижение максимальной скорости обнаружения и распознавания с помощью
Как установить плагины в WordPress за 3 шага: 3 шага
Как установить плагины в WordPress за 3 шага: в этом уроке я покажу вам основные шаги по установке плагина wordpress на ваш сайт. В основном вы можете установить плагины двумя разными способами. Первый способ - через ftp или через cpanel. Но я не буду перечислять это, потому что он действительно комп
Прямая трансляция HD-видео 4G / 5G с дрона DJI с малой задержкой [3 шага]: 3 шага
Прямая трансляция HD-видео 4G / 5G с дрона DJI с малой задержкой [3 шага]: следующее руководство поможет вам получать прямые видеопотоки HD-качества практически с любого дрона DJI. С помощью мобильного приложения FlytOS и веб-приложения FlytNow вы можете начать потоковую передачу видео с дрона
Протез руки, напечатанный на 3D-принтере за 4 шага !: 4 шага
Протез руки, напечатанный на 3D-принтере за 4 шага !: Этот проект - протез руки, напечатанный мной, я хочу получить больше знаний о протезировании и 3D-печати. Хотя это не лучший проект, это отличный способ получить практический опыт и научиться создавать
SmartBin: 8 шагов
SmartBin: Este é um projeto para um sistema inteligente de coletas, no qual os caminh õ es de lixo Recebem dados das lixeiras, идентификация квантидаде-де-ликсо, присутствующем в cada uma delas, e uma rota de coleta tra ç ada, com base n