Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Koble til HC-SR04
- Trinn 2: Mosquitto og Paho MQTT
- Trinn 3: Python -program for ultralydssensor
- Trinn 4: Node-RØD
- Trinn 5: Loggdata
- Trinn 6: Oppsett
- Trinn 7: Konklusjon
Video: Søppelsystem: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
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
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:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte