Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Tilslutning af HC-SR04
- Trin 2: Mosquitto og Paho MQTT
- Trin 3: Python -program til ultralydssensor
- Trin 4: Node-RØD
- Trin 5: Logning af data
- Trin 6: Layout
- Trin 7: Konklusion
Video: Affaldssystem: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Vi besluttede at prøve at finde en måde at spore enten et kvarters samfundsaffald eller en sensor i hvert affald i kvarteret for at forsøge at gøre affaldsaffald mere effektivt. Vi tænkte, at hvis der kommer en lastbil hver anden uge til en afhentning, hvad nu hvis jeg eller min nabo kun endte med at smide lidt ud. Ville det ikke være ineffektivt at sende en lastbil, hvor halvdelen af kvarteret ikke’sendte fulde skraldespande? Det ville være fantastisk, hvis det var muligt at se vores nabos skraldespand fylde og derefter bruge deres skrald, hvis mit var fyldt og deres var tomt og omvendt. Vi besluttede at bruge ultralydssensoren, HC-SR04 sammen med en hindbærpi til at prøve at tackle dette projekt.
Forbrugsvarer
Ultralydssensor (HC-SR04)
Raspberry Pi (vi brugte Pi 4 Model B)
Brødbræt
Jumper kabler
Par modstande (3 x 1k ohm)
Trin 1: Tilslutning af HC-SR04
Da vi bruger Raspberry Pi, skal vi bruge en spændingsdeler til at regulere spændingen, der går ind i Pi's GPIO -ben, da de kun tillader 3,3v. HC-SR04 bruger 5V, men skal sænkes til 3,3V, når den sluttes til Pi. Tilslut henholdsvis 5V- og jordstifterne, og fastgør ekko- og triggerstifterne i henhold til dit program til de respektfulde stifter. I vores program brugte vi pin 23 og 24 til henholdsvis ekko og trigger.
Trin 2: Mosquitto og Paho MQTT
Inden vi begynder at programmere på Python for at få ultralydssensoren til at fungere med Pi, bør vi installere disse applikationer for at få ultralydssensoren til at kommunikere med vores programmeringssoftware Node-RED. Mosquitto er en MQTT -mægler, som du kan bruge på Pi, mens Paho MQTT er biblioteket, der giver dig mulighed for at kode i Python for at få sensoren til at kommunikere med MQTT -mægleren. For at installere begge disse ville du skrive disse kommandoer på din Pi -terminal
sudo apt opdatering
sudo apt installere -y myg myg -klienter
sudo apt-get install python3-pip
sudo pip3 installer paho-mqtt
Trin 3: Python -program til ultralydssensor
Dette er det program, jeg brugte til at læse de indgående data fra sensoren og også offentliggøre til MQTT -mægleren.
Trin 4: Node-RØD
Nogle noder er ikke forudinstalleret i programmet, så du skal muligvis installere det fra paletterne. Dem, du skal installere, er node-red-dashboard og node-red-node-sqlite.
Det er her, vi begynder at bruge vores programmeringssoftware og sensoren. Den første node, du skal bruge, er MQTT-in Node, og det giver os mulighed for at bruge vores sensor, der kører programmet ovenfra, til at sende data til denne software. Områdeknuden, vi brugte, vender de værdier, vi har (dvs. 5 cm er fuld fra programmet, så vi vender det til 100%). Efter rækkeviddeknuden har vi 2 funktionsnoder, en til at vise meddelelsen til vores dashboard og en til at vise en visual, at skraldet er fuldt. Programmet for funktionsnoderne er vedhæftet.
Hvis det er muligt, ville denne strømning kunne bruges til flere ultralydssensorer. Til vores projekt var vi imidlertid nødt til at lave simuleringsdata, da vi ikke kunne få fingre i flere sensorer. Måden, vi gjorde dette på, ligner meget, men vi har knapper, som brugeren kan klikke på for tilfældigt at tilføje 1-10 procent af affaldet i hvert skraldespand. Vi brugte 2 knapper, en til at tilføje affald og en til at rydde. Måleren, meddelelser og indikatoren er stadig nøjagtig den samme, som koden til at tælle og beholde tællingen af affaldet er dog lidt anderledes.
Trin 5: Logning af data
Vi besluttede, at det ville være en god idé at logge, hvor fyldt affaldet er, når lastbilen kommer for at tømme affaldet. Ved hjælp af sqlite -noden er vi i stand til at læse og skrive data, som også gemmer dem til Pi. Du skulle installere denne knude, som jeg har sagt før.
Trinene til at oprette og logge data går som følger:
1. Opret databasen
2. Log dataene
3. Træk i dataene for at blive vist på vores dashboard
4. Ryd og slet dataene
Den måde, SQL fungerer på, er, at du skal oprette eksekver emnet, som er Opret tabel, indsæt i, vælg fra og slet fra. Ved hjælp af tidsstempelnoder kan vi eksekvere emner til sqlite -noden, der udfører hver af disse funktioner (opret, indsæt, vælg og slet). Vi behøver kun at oprette databasen én gang, og når den er færdig, kan vi logge data til den. Når databasen er oprettet, kan vi logge data, og vi brugte brugerinput igen til at logge, når lastbilen er kommet. Vi lavede det, så du ikke kan logge data, før lastbilen får lov at komme, hvilket er 5 skrald med 80% kapacitet (betragtes som fuld). Vi brugte også rækkeviddeknuden igen til at skalere 500 tilbage til 0-100%. Vi har derefter mulighed for at slette alle data fra databasen, hvis vi vil. UI -tabelnoden er en node, der giver os mulighed for at se tabellen på en pænt formateret måde på vores dashboard.
Trin 6: Layout
Når alt dette er afsluttet, kan du oprette et layout, du gerne vil have ved hjælp af Node-RED. På sidefanen kan du placere dem, som du vil, og der er mange flere tilpasningsmuligheder, du har. Vedhæftet er også mit flow for hele mit program.
Trin 7: Konklusion
Efter afslutningen af dette projekt er der områder, hvor vi kan se programmet blive vokset yderligere. Jeg fandt aldrig en måde at foretage logningen automatisk, da den eneste måde, vi kunne gøre det på, var ved at logge med et interval, og vi ville ikke have brug for gentagelsesnumre, hvis skraldespanden kom en gang. Jeg tror, at dette til dels skyldes, hvordan vi besluttede at gøre det stærkt afhængigt af funktionsnoderne og programmeringen, da vi er mere komfortable med den programmering. Efter at have undersøgt, efter at vi var færdige, var det klart, at der er knudepunkter til alt, og det kunne have gjort livet meget lettere, hvis vi havde fundet funktionen af switch og rbe -noder tidligere. Der var også lavet en knude til ultralydssensorer, som vi ikke fik til at fungere. Det ville have gjort tingene lettere, da der ikke var behov for MQTT eller Python -programmet, da det bare er en knude med trigger- og ekko -benene. Vi besluttede at omgå det ved at lave Python -programmet som du så ovenfor. Et stort tip til alle, der ønsker at dykke ned i Node-RED, er, at du skal bruge en masse fejlfindingsnoder til at finde ud af, om hvert flow fungerer og udsender det, du ønsker/har brug for.
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)