Inhoudsopgave:

Vuilnissysteem: 7 stappen
Vuilnissysteem: 7 stappen

Video: Vuilnissysteem: 7 stappen

Video: Vuilnissysteem: 7 stappen
Video: Durf jij een patatje te bestellen tussen deze motorbende? | Mensenkennis 2024, November
Anonim
Vuilnissysteem
Vuilnissysteem

We besloten te proberen een manier te vinden om ofwel de hoeveelheid afval in een buurt of een sensor in elk afval in de buurt te volgen om te proberen de afvalverwerking efficiënter te maken. We dachten dat als er elke twee weken een vrachtwagen komt ophalen, wat als ik of mijn buurman uiteindelijk maar een klein beetje weggooit. Zou het niet inefficiënt zijn om een vrachtwagen te sturen waar de helft van de buurt geen volle vuilnisbakken stuurde? Het zou geweldig zijn als het mogelijk was om de vuilnisbak van onze buren te zien vullen en vervolgens hun afval te gebruiken als de mijne vol was en die van hen leeg was en vice versa. We besloten om de ultrasone sensor, HC-SR04, samen met een Raspberry Pi te gebruiken om dit project aan te pakken.

Benodigdheden

Ultrasone sensor (HC-SR04)

Raspberry Pi (we gebruikten Pi 4 Model B)

Breadboard

Startkabels

Paar weerstanden (3 x 1k ohm)

Stap 1: HC-SR04 aansluiten

HC-SR04 aansluiten
HC-SR04 aansluiten

Omdat we de Raspberry Pi gebruiken, moeten we een spanningsdeler gebruiken om de spanning te regelen die naar de GPIO-pinnen van de Pi gaat, omdat deze slechts 3,3v toestaan. De HC-SR04 gebruikt 5V, maar moet worden teruggebracht tot 3,3V bij aansluiting op de Pi. Sluit respectievelijk de 5V- en grondpinnen aan en bevestig volgens uw programma de echo- en triggerpinnen aan de respectieve pinnen. In ons programma gebruikten we pin 23 en 24 voor respectievelijk echo en trigger.

Stap 2: Mosquitto en Paho MQTT

Voordat we beginnen met programmeren op Python om de ultrasone sensor met de Pi te laten werken, moeten we deze applicaties installeren om de ultrasone sensor te laten communiceren met onze programmeersoftware Node-RED. Mosquitto is een MQTT-makelaar die u op de Pi kunt gebruiken, terwijl Paho MQTT de bibliotheek is waarmee u in Python kunt coderen om de sensor te laten communiceren met de MQTT-makelaar. Om beide te installeren, typt u deze opdrachten op uw Pi-terminal

sudo apt update

sudo apt install -y mosquitto mosquitto-clients

sudo apt-get install python3-pip

sudo pip3 installeer paho-mqtt

Stap 3: Python-programma voor ultrasone sensor

Dit is het programma dat ik heb gebruikt om de binnenkomende gegevens van de sensor te lezen en ook te publiceren naar de MQTT-makelaar.

Stap 4: Knooppunt-RED

Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED

Sommige knooppunten zijn niet vooraf geïnstalleerd in het programma, dus u moet deze mogelijk vanuit de paletten installeren. Degene die je moet installeren zijn node-red-dashboard en node-red-node-sqlite.

Hier gaan we onze programmeersoftware en de sensor gebruiken. Het eerste knooppunt dat u nodig hebt, is het MQTT-in-knooppunt en dat stelt ons in staat om onze sensor te gebruiken die het programma van bovenaf uitvoert om gegevens naar deze software te verzenden. Het bereikknooppunt dat we hebben gebruikt, draait de waarden die we hebben om (dwz 5 cm is vol van het programma, dus we draaien het om naar 100%). Na het bereikknooppunt hebben we 2 functieknooppunten, een om het bericht op ons dashboard weer te geven en een om een visual te laten zien dat de rommel vol is. Het programma voor de functieknooppunten is bijgevoegd.

Indien mogelijk zou deze stroom kunnen worden gebruikt voor meerdere ultrasone sensoren. Voor ons project moesten we echter simulatiegegevens doen omdat we niet in staat waren om meer sensoren te bemachtigen. De manier waarop we dit hebben gedaan, lijkt erg op elkaar, maar we hebben knoppen waarop de gebruiker kan klikken om willekeurig 1-10 procent van het afval toe te voegen aan elk van de afvalbakken. We gebruikten 2 knoppen, een om afval toe te voegen en een om te wissen. De meter, berichten en de indicator zijn nog steeds precies hetzelfde, de code om het afval te tellen en bij te houden, is echter een beetje anders.

Stap 5: Gegevens loggen

Gegevens loggen
Gegevens loggen
Gegevens loggen
Gegevens loggen
Gegevens loggen
Gegevens loggen

We besloten dat het een goed idee zou zijn om te registreren hoe vol de vuilniszakken zijn als de vrachtwagen komt om de vuilniszakken te legen. Met behulp van het sqlite-knooppunt kunnen we gegevens lezen en schrijven die deze ook op de Pi opslaan. U zou dit knooppunt moeten installeren zoals ik eerder heb gezegd.

De stappen voor het maken en loggen van gegevens gaan als volgt:

1. Maak de database

2. Log de gegevens in

3. Trek aan de gegevens om ze op ons dashboard weer te geven

4. Wis en verwijder de gegevens

De manier waarop SQL werkt, is dat u het onderwerp CREATE TABLE, INSERT INTO, SELECT FROM en DELETE FROM moet maken om het onderwerp uit te voeren. Met behulp van tijdstempelknooppunten kunnen we onderwerpen uitvoeren naar het sqlite-knooppunt dat elk van deze functies uitvoert (maken, invoegen, selecteren en verwijderen). We hoeven de database maar één keer aan te maken en als het klaar is, kunnen we er gegevens in loggen. Zodra de database is gemaakt, kunnen we gegevens loggen en hebben we gebruikersinvoer opnieuw gebruikt om te loggen wanneer de vrachtwagen is gearriveerd. We hebben het zo gemaakt dat u geen gegevens kunt loggen totdat de vrachtwagen mag komen, wat 5 vuilnisbakken is met een capaciteit van 80% (als vol). We hebben ook het bereikknooppunt opnieuw gebruikt om de 500 terug te schalen naar een 0-100%. We hebben dan de mogelijkheid om alle gegevens uit de database te verwijderen als we dat willen. Het UI-tabelknooppunt is een knooppunt waarmee we de tabel op een mooi opgemaakte manier op ons dashboard kunnen zien.

Stap 6: Lay-out

Nadat dit allemaal is voltooid, kunt u met behulp van Node-RED een lay-out maken die u wilt. Op het zijtabblad kun je ze plaatsen zoals je wilt en er zijn nog veel meer aanpassingsopties die je hebt. Ook bijgevoegd is mijn stroom voor mijn hele programma.

Stap 7: Conclusie

Na voltooiing van dit project zijn er gebieden waar we het programma verder kunnen zien groeien. Ik heb nooit een manier gevonden om de logboekregistratie automatisch te laten plaatsvinden, want de enige manier waarop we dat konden doen, was door met een interval in te loggen en we zouden geen herhalingsnummers nodig hebben als de vuilniswagen één keer zou komen. Ik denk dat dit deels te wijten is aan de manier waarop we besloten hebben om het sterk afhankelijk te maken van de functieknooppunten en de programmering, omdat we ons meer op ons gemak voelen met die programmering. Na het verkennen nadat we klaar waren, was het duidelijk dat er voor alles knooppunten zijn en het had het leven een stuk eenvoudiger kunnen maken als we de functie van schakelaar en rbe-knooppunten eerder hadden gevonden. Er was ook een node gemaakt voor ultrasone sensoren die we niet aan het werk kregen. Het zou dingen gemakkelijker hebben gemaakt omdat er geen behoefte zou zijn aan MQTT of het Python-programma, omdat het slechts een knooppunt is met de trigger- en echo-pinnen. We besloten er omheen te werken door het Python-programma te maken zoals je hierboven hebt gezien. Een enorme tip voor iedereen die in Node-RED wil duiken, is dat je veel debug-knooppunten moet gebruiken om erachter te komen of elke stroom werkt en uitvoert wat je wilt / nodig hebt.

Aanbevolen: