Innholdsfortegnelse:

Søppelsystem: 7 trinn
Søppelsystem: 7 trinn

Video: Søppelsystem: 7 trinn

Video: Søppelsystem: 7 trinn
Video: 😮 Bunker im Hürtgenwald und die letzten Panzer in Aachen! 2024, November
Anonim
Søppelsystem
Søppelsystem

Vi bestemte oss for å prøve å spore enten et nabolags søppelfylling eller en sensor i hvert søppel i nabolaget for å prøve å gjøre avfallshåndtering mer effektivt. Vi trodde at hvis det kommer en lastebil annenhver uke for en innsamling, hva om jeg eller naboen min bare kaster ut litt. Ville det ikke vært ineffektivt å sende en lastebil hvor halvparten av nabolaget ikke’sendte full søppelbøtter? Det ville være flott hvis det var mulig å se naboens søppelbøtte fylle og deretter bruke søppelet hvis mitt var fullt og deres var tomt og omvendt. Vi bestemte oss for å bruke ultralydssensoren, HC-SR04 sammen med en bringebærpi for å prøve å takle dette prosjektet.

Rekvisita

Ultralydsensor (HC-SR04)

Raspberry Pi (vi brukte Pi 4 Model B)

Brødbrett

Hoppekabler

Par motstander (3 x 1k ohm)

Trinn 1: Koble til HC-SR04

Koble til HC-SR04
Koble til HC-SR04

Siden vi bruker Raspberry Pi, må vi bruke en spenningsdeler for å regulere spenningen som går inn i Pi's GPIO -pinner, ettersom de bare tillater 3,3v. HC-SR04 bruker 5V, men må settes ned til 3,3V når du kobler den til Pi. Koble henholdsvis 5V og jordpinnene, og fest programmet i henhold til programmet til ekko- og utløserpinnene til de respektable pinnene. I programmet vårt brukte vi pin 23 og 24 for henholdsvis ekko og trigger.

Trinn 2: Mosquitto og Paho MQTT

Før vi begynner å programmere på Python for å få ultralydssensoren til å fungere med Pi, bør vi installere disse programmene for å få ultralydsensoren til å kommunisere med programmeringsprogramvaren Node-RED. Mosquitto er en MQTT -megler som du kan bruke på Pi mens Paho MQTT er biblioteket som lar deg kode i Python for å få sensoren til å kommunisere med MQTT -megleren. For å installere begge disse ville du skrive disse kommandoene på Pi -terminalen

sudo apt oppdatering

sudo apt install -y mygg mygg -klienter

sudo apt-get install python3-pip

sudo pip3 installer paho-mqtt

Trinn 3: Python -program for ultralydssensor

Dette er programmet jeg brukte til å lese innkommende data fra sensoren og også publisere for MQTT -megleren.

Trinn 4: Node-RØD

Node-RØD
Node-RØD
Node-RØD
Node-RØD
Node-RØD
Node-RØD
Node-RØD
Node-RØD

Noen noder er ikke forhåndsinstallert i programmet, så du må kanskje installere det fra palettene. De du må installere er node-red-dashboard og node-red-node-sqlite.

Det er her vi begynner å bruke programmeringsprogramvaren og sensoren. Den første noden du trenger er MQTT-in-noden, og det lar oss bruke sensoren vår som kjører programmet ovenfra for å sende data til denne programvaren. Områdetoden vi brukte, vender verdiene vi har (dvs. 5 cm er full fra programmet, så vi vender det til 100%). Etter rekkevidde -noden har vi to funksjonsnoder, en for å vise meldingen til dashbordet vårt og en for å vise en visuell at søpla er full. Programmet for funksjonsnodene er vedlagt.

Om mulig vil denne strømmen kunne brukes for flere ultralydsensorer. For prosjektet vårt måtte vi imidlertid gjøre simuleringsdata da vi ikke klarte å få tak i flere sensorer. Måten vi gjorde dette på er veldig lik, men vi har knapper som brukeren kan klikke for tilfeldig å legge til 1-10 prosent av søppelet i hvert av søppelet. Vi brukte 2 knapper, en for å legge til søppel og en for å rydde. Måleren, meldingene og indikatoren er fremdeles nøyaktig den samme som koden for å telle og beholde tellingen av søppelet er litt annerledes.

Trinn 5: Loggdata

Loggdata
Loggdata
Loggdata
Loggdata
Loggdata
Loggdata

Vi bestemte oss for at det ville være en god idé å logge hvor full søpla er når lastebilen kommer for å tømme søppelet. Ved hjelp av sqlite -noden kan vi lese og skrive data som også lagrer den til Pi. Du må installere denne noden som jeg har sagt før.

Trinnene for å opprette og logge data går som følger:

1. Lag databasen

2. Logg dataene

3. Trekk i dataene som skal vises på dashbordet

4. Slett og slett dataene

Måten SQL fungerer på er at du må opprette emnet som er CREATE TABLE, INSERT INTO, SELECT FROM og DELETE FROM. Ved å bruke tidsstempelnoder kan vi utføre emner til sqlite -noden som utfører hver av disse funksjonene (opprett, sett inn, velg og slett). Vi trenger bare å lage databasen en gang, og når den er ferdig, kan vi logge data til den. Når databasen er opprettet, kan vi logge data, og vi brukte brukerinput igjen for å logge når lastebilen har kommet. Vi gjorde det slik at du ikke kan logge data før lastebilen får komme, som er 5 søppel med 80% kapasitet (regnes som full). Vi brukte også områdenoden igjen for å skalere 500 tilbake til 0-100%. Vi har da muligheten til å slette alle data fra databasen hvis vi ønsker det. UI -tabellnoden er en node som lar oss se tabellen på en pent formatert måte på dashbordet vårt.

Trinn 6: Oppsett

Etter at alt dette er ferdig kan du lage et oppsett du ønsker ved hjelp av Node-RED. På sidefanen vil du kunne plassere dem slik du vil, og det er mange flere tilpasningsmuligheter du har. Vedlagt følger også flyten min for hele programmet.

Trinn 7: Konklusjon

Etter å ha fullført dette prosjektet, er det områder hvor vi kan se at programmet vokser videre. Jeg fant aldri en måte å gjøre loggingen automatisk, da den eneste måten vi kunne gjøre det på var å logge med et intervall, og vi ville ikke trenge noen repeterende tall hvis søppelbilen kom en gang. Jeg tror dette delvis skyldes hvordan vi bestemte oss for å gjøre det sterkt avhengig av funksjonsnodene og programmeringen ettersom vi er mer komfortable med den programmeringen. Etter å ha utforsket etter at vi var ferdige, var det klart at det er noder laget for alt, og det kunne ha gjort livet mye enklere hvis vi hadde funnet funksjonen til switch og rbe nodes tidligere. Det ble også laget en node for ultralydsensorer som vi ikke fikk til å fungere. Det ville ha gjort ting enklere, da det ikke ville være behov for MQTT eller Python -programmet, ettersom det bare er en node med trigger- og ekkopinnene. Vi bestemte oss for å omgå det ved å lage Python -programmet som du så ovenfor. Et stort tips for alle som ønsker å dykke ned i Node-RED er at du bør bruke mange feilsøkingsnoder for å finne ut om hver flyt fungerer og sender ut det du ønsker/trenger.

Anbefalt: