Съдържание:

Система за боклук: 7 стъпки
Система за боклук: 7 стъпки

Видео: Система за боклук: 7 стъпки

Видео: Система за боклук: 7 стъпки
Видео: Строение клетки за 8 минут (даже меньше) 2024, Ноември
Anonim
Система за боклук
Система за боклук

Решихме да се опитаме да проследим или запълването на боклука в общността, или сензор във всеки боклук в квартала, за да се опитаме да направим изхвърлянето на боклук по -ефективно. Мислехме, че ако камион идва на всеки две седмици за събиране, какво ще стане, ако аз или съседът ми изхвърлим само малко. Не би ли било неефективно да изпратим камион, където половината от квартала не е изпратил пълни кофи за боклук? Би било чудесно, ако беше възможно да видим кофата за боклук на нашия съсед и след това да използва техния боклук, ако моят е пълен и техният е празен и обратно. Решихме да използваме ултразвуковия сензор, HC-SR04 заедно с малиново пи, за да се опитаме да се справим с този проект.

Консумативи

Ултразвуков сензор (HC-SR04)

Raspberry Pi (използвахме Pi 4 модел B)

Платка

Кабелни кабели

Няколко резистора (3 x 1k ohm)

Стъпка 1: Свързване на HC-SR04

Свързване на HC-SR04
Свързване на HC-SR04

Тъй като използваме Raspberry Pi, трябва да използваме делител на напрежение, за да регулираме напрежението, влизащо в GPIO щифтовете на Pi, тъй като те позволяват само 3.3v. HC-SR04 използва 5V, но трябва да бъде понижен до 3.3V, когато го свързвате към Pi. Свържете съответно 5V и заземяващите щифтове и според вашата програма прикрепете ехото и тригерните щифтове към уважителните щифтове. В нашата програма използвахме пин 23 и 24 съответно за ехо и тригер.

Стъпка 2: Mosquitto и Paho MQTT

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

sudo apt актуализация

sudo apt install -y mosquitto mosquitto -clients

sudo apt-get install python3-pip

sudo pip3 инсталирайте paho-mqtt

Стъпка 3: Програма Python за ултразвуков сензор

Това е програмата, която използвах, за да чета входящите данни от сензора и също така да ги публикувам в брокера на MQTT.

Стъпка 4: Node-RED

Възел-ЧЕРВЕН
Възел-ЧЕРВЕН
Възел-ЧЕРВЕН
Възел-ЧЕРВЕН
Възел-ЧЕРВЕН
Възел-ЧЕРВЕН
Възел-ЧЕРВЕН
Възел-ЧЕРВЕН

Някои възли не са предварително инсталирани в програмата, така че може да се наложи да го инсталирате от палитрите. Тези, които трябва да инсталирате, са node-red-dashboard и node-red-node-sqlite.

Тук започваме да използваме нашия софтуер за програмиране и сензора. Първият възел, от който се нуждаете, е MQTT-in Node и това ни позволява да използваме нашия сензор, изпълняващ програмата отгоре, за да изпращаме данни към този софтуер. Възелът на диапазона, който използвахме, обръща стойностите, които имаме (т.е. 5 см е пълен от програмата, така че го обръщаме на 100%). След възела на диапазона имаме 2 функционални възела, един за показване на съобщението към таблото ни за управление и един за визуално представяне, че боклукът е пълен. Приложена е програмата за функционалните възли.

Ако е възможно, този поток би могъл да се използва за множество ултразвукови сензори. За нашия проект обаче трябваше да направим симулационни данни, тъй като не успяхме да се доберем до повече сензори. Начинът, по който направихме това, е много подобен, но имаме бутони, които потребителят може да кликне, за да добави на случаен принцип 1-10 процента от боклука във всеки от боклуците. Използвахме 2 бутона, един за добавяне на боклук и един за изчистване. Манометърът, съобщенията и индикаторът са все същите, кодът за отчитане и отчитане на боклука е малко по -различен.

Стъпка 5: Регистриране на данни

Регистриране на данни
Регистриране на данни
Регистриране на данни
Регистриране на данни
Регистриране на данни
Регистриране на данни

Решихме, че би било добра идея да запишем колко пълни са боклуците, когато камионът дойде да изпразни боклуците. С помощта на sqlite възела можем да четем и записваме данни, което също ги записва в Pi. Трябва да инсталирате този възел, както вече казах.

Стъпките за създаване и регистриране на данни са както следва:

1. Създайте базата данни

2. Влезте в данните

3. Изтеглете данните, за да се покажат на нашето табло за управление

4. Изчистете и изтрийте данните

Начинът, по който работи SQL, е, че трябва да създадете изпълнение на темата, която е CREATE TABLE, INSERT INTO, SELECT FROM и DELETE FROM. Използвайки възли с времеви маркировки, можем да изпълняваме теми към sqlite възела, който изпълнява всяка от тези функции (създаване, вмъкване, избор и изтриване). Трябва само да създадем базата данни веднъж и след като приключи, можем да регистрираме данни в нея. След като базата данни е създадена, можем да регистрираме данни и отново използвахме потребителски вход, за да регистрираме, когато камионът дойде. Направихме го така, че не можете да регистрирате данни, докато не бъде разрешено камиона да дойде, което е 5 боклука с 80% капацитет (счита се за пълен). Ние също използвахме възела на диапазона отново, за да мащабираме 500 обратно до 0-100%. След това имаме възможност да изтрием всички данни от базата данни, ако искаме. Възелът на таблицата на потребителския интерфейс е възел, който ни позволява да виждаме таблицата по добре форматиран начин на нашето табло за управление.

Стъпка 6: Оформление

След като всичко това приключи, можете да създадете оформление, което искате, с помощта на Node-RED. В страничния раздел ще можете да ги поставите колкото искате и има много повече опции за персонализиране, които имате. Приложен е и моят поток за цялата ми програма.

Стъпка 7: Заключение

След приключване на този проект има области, в които можем да видим, че програмата ще се развива допълнително. Никога не намерих начин да направя регистрирането автоматично, тъй като единственият начин, по който можем да го направим, е да се регистрира на интервал и няма да имаме нужда от повторни номера, ако камионът за боклук дойде веднъж. Мисля, че това отчасти се дължи на това как решихме да го направим силно зависим от функционалните възли и програмирането, тъй като сме по -удобни с това програмиране. След проучване, след като приключихме, беше ясно, че има създадени възли за всичко и това би могло да направи живота много по -лесен, ако открихме функцията на възли за превключване и rbe по -рано. Имаше и възел, направен за ултразвукови сензори, който не успяхме да работим. Това би улеснило нещата, тъй като нямаше да има нужда от MQTT или програмата Python, тъй като това е просто възел с щифтове за задействане и ехо. Решихме да заобиколим това, като направихме програмата Python, както видяхте по -горе. Огромен съвет за всеки, който иска да се потопи в Node-RED, е, че трябва да използвате много възли за отстраняване на грешки, за да разберете дали всеки поток работи и извежда това, което искате/имате нужда.

Препоръчано: