Оглавление:

Система мусора: 7 шагов
Система мусора: 7 шагов

Видео: Система мусора: 7 шагов

Видео: Система мусора: 7 шагов
Видео: 7 ШАГОВ по очистке мусора в Windows 11. Как удалять временные файлы в Виндовс 11? 2024, Ноябрь
Anonim
Система мусора
Система мусора

Мы решили попытаться найти способ отслеживать либо количество мусора в районе, либо датчик в каждом мусоре в районе, чтобы попытаться сделать вывоз мусора более эффективным. Мы думали, что если грузовик приезжает каждые две недели за сбором, что, если я или мой сосед в конечном итоге выбросят лишь немного. Разве не будет неэффективным отправить грузовик туда, где половина жителей района не отправила полные мусорные баки? Было бы замечательно, если бы можно было видеть, как мусор наших соседей наполняется, а затем использовать их мусор, если мой был полон, а их - пустым, и наоборот. Мы решили использовать ультразвуковой датчик HC-SR04 вместе с raspberry pi, чтобы попытаться реализовать этот проект.

Запасы

Ультразвуковой датчик (HC-SR04)

Raspberry Pi (мы использовали Pi 4 Model B)

Макетная плата

Соединительные кабели

Пара резисторов (3 x 1 кОм)

Шаг 1: Подключение HC-SR04

Подключение HC-SR04
Подключение HC-SR04

Поскольку мы используем Raspberry Pi, нам нужно использовать делитель напряжения для регулирования напряжения, поступающего на контакты GPIO Pi, поскольку они допускают только 3,3 В. HC-SR04 использует 5 В, но его необходимо снизить до 3,3 В при подключении к Pi. Подключите контакты 5V и заземления соответственно и в соответствии с вашей программой прикрепите контакты эха и триггера к соответствующим контактам. В нашей программе мы использовали контакты 23 и 24 для эха и триггера соответственно.

Шаг 2: Mosquitto и Paho MQTT

Прежде чем мы начнем программировать на Python, чтобы ультразвуковой датчик работал с Pi, мы должны установить эти приложения, чтобы ультразвуковой датчик мог взаимодействовать с нашим программным обеспечением Node-RED. Mosquitto - это брокер MQTT, который вы можете использовать на Pi, в то время как Paho MQTT - это библиотека, которая позволяет вам писать код на Python, чтобы датчик мог взаимодействовать с брокером MQTT. Чтобы установить оба из них, вы должны ввести эти команды на своем терминале Pi.

sudo apt update

sudo apt install -y mosquitto mosquitto-clients

sudo apt-get install python3-pip

sudo pip3 установить paho-mqtt

Шаг 3: Программа Python для ультразвукового датчика

Это программа, которую я использовал для чтения входящих данных с датчика, а также для публикации в брокере MQTT.

Шаг 4: Узел-КРАСНЫЙ

Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ

Некоторые узлы не предустановлены в программе, поэтому вам может потребоваться установить ее из палитр. Вам нужно установить node-red-dashboard и node-red-node-sqlite.

Здесь мы начинаем использовать наше программное обеспечение для программирования и датчик. Первый узел, который вам понадобится, - это узел MQTT-in, который позволяет нам использовать наш датчик, запускающий программу сверху, для отправки данных в это программное обеспечение. Узел диапазона, который мы использовали, переворачивает значения, которые у нас есть (т.е. 5 см заполнено программой, поэтому мы переворачиваем его на 100%). После узла диапазона у нас есть 2 функциональных узла, один для отображения сообщения на нашей панели инструментов, а другой для визуального отображения того, что мусор заполнен. Программа для функциональных узлов прилагается.

Если возможно, этот поток можно будет использовать для нескольких ультразвуковых датчиков. Однако для нашего проекта нам пришлось сделать данные моделирования, так как мы не смогли достать больше датчиков. То, как мы это сделали, очень похоже, но у нас есть кнопки, которые пользователь может нажимать, чтобы случайным образом добавить 1-10 процентов мусора в каждый из мусора. Мы использовали 2 кнопки, одну для добавления мусора и одну для очистки. Датчик, сообщения и индикатор остались прежними, хотя код для подсчета и подсчета мусора немного отличается.

Шаг 5: Регистрация данных

Данные журнала
Данные журнала
Данные журнала
Данные журнала
Данные журнала
Данные журнала

Мы решили, что было бы неплохо записать, насколько полон мусор, когда грузовик приезжает выгрузить мусор. С помощью узла sqlite мы можем читать и записывать данные, которые также сохраняют их в Pi. Как я уже говорил, вам нужно будет установить этот узел.

Шаги по созданию и регистрации данных следующие:

1. Создайте базу данных

2. Зарегистрируйте данные.

3. Вытяните данные, чтобы отобразить их на нашей панели управления.

4. Очистите и удалите данные.

Принцип работы SQL заключается в том, что вам нужно создать выполнение темы, которая включает CREATE TABLE, INSERT INTO, SELECT FROM и DELETE FROM. Используя узлы timestamp, мы можем выполнять темы для узла sqlite, который выполняет каждую из этих функций (создание, вставку, выбор и удаление). Нам нужно создать базу данных только один раз, и как только это будет сделано, мы сможем записывать в нее данные. После создания базы данных мы можем регистрировать данные, и мы снова использовали вводимые пользователем данные, чтобы регистрировать приход грузовика. Мы сделали это так, чтобы вы не могли регистрировать данные до тех пор, пока не разрешат подъехать грузовику, а это 5 мусорных баков при 80% вместимости (считается заполненной). Мы также снова использовали узел диапазона, чтобы снова масштабировать 500 до 0–100%. Затем у нас есть возможность удалить все данные из базы данных, если мы захотим. Узел таблицы пользовательского интерфейса - это узел, который позволяет нам видеть таблицу в красиво отформатированном виде на нашей панели инструментов.

Шаг 6: макет

После того, как все это будет завершено, вы можете создать желаемый макет с помощью Node-RED. На боковой вкладке вы сможете расположить их так, как вам нравится, и у вас есть еще много вариантов настройки. Также прилагается мой поток для всей моей программы.

Шаг 7: Заключение

По завершении этого проекта есть области, в которых мы можем увидеть дальнейшее развитие программы. Я никогда не находил способа сделать регистрацию автоматически, поскольку единственный способ, которым мы могли это сделать, - это регистрировать журнал через определенные промежутки времени, и нам не потребовались бы какие-либо повторяющиеся числа, если бы мусоровоз приехал один раз. Я думаю, что это отчасти связано с тем, что мы решили сделать это в значительной степени зависимым от функциональных узлов и программирования, поскольку нам это программирование более комфортно. После изучения после того, как мы закончили, стало ясно, что есть узлы для всего, и это могло бы значительно облегчить жизнь, если бы мы обнаружили функцию узлов switch и rbe ранее. Также был узел для ультразвуковых датчиков, который нам не удалось задействовать. Это упростило бы задачу, поскольку не было бы необходимости в MQTT или программе Python, поскольку это всего лишь узел с триггерным и эхо-контактами. Мы решили обойти это, сделав программу Python, как вы видели выше. Огромный совет для всех, кто хочет погрузиться в Node-RED, заключается в том, что вы должны использовать множество узлов отладки, чтобы выяснить, работает ли каждый поток и выводит ли то, что вы хотите / нужно.

Рекомендуемые: