Innehållsförteckning:
- Tillbehör
- Steg 1: Anslutning av HC-SR04
- Steg 2: Mosquitto och Paho MQTT
- Steg 3: Python -program för ultraljudssensor
- Steg 4: Nod-RÖD
- Steg 5: Loggningsdata
- Steg 6: Layout
- Steg 7: Slutsats
Video: Sopsystem: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Vi bestämde oss för att försöka spåra antingen ett kvarters gemenskapens sopor eller en sensor i varje sopor i grannskapet för att försöka effektivisera soporna. Vi trodde att om en lastbil kommer varannan vecka för en insamling, tänk om jag eller min granne bara hamnade ut lite. Skulle det inte vara ineffektivt att skicka en lastbil där hälften av grannskapet inte skickade fulla papperskorgar? Det skulle vara bra om det var möjligt att se vår grannes sopkärl fylla och sedan använda deras sopor om mitt var fullt och deras var tomt och vice versa. Vi bestämde oss för att använda ultraljudssensorn, HC-SR04 tillsammans med en hallon pi för att försöka ta itu med detta projekt.
Tillbehör
Ultraljudssensor (HC-SR04)
Raspberry Pi (vi använde Pi 4 Model B)
Bakbord
Startkablar
Par motstånd (3 x 1k ohm)
Steg 1: Anslutning av HC-SR04
Eftersom vi använder Raspberry Pi måste vi använda en spänningsdelare för att reglera spänningen i Pi: s GPIO -stift eftersom de bara tillåter 3,3v. HC-SR04 använder 5V men måste sänkas till 3,3V när den ansluts till Pi. Anslut 5V respektive jordstiftet och fäst eko- och triggerstiftet enligt dina program till de respektfulla stiften. I vårt program använde vi stift 23 och 24 för eko respektive trigger.
Steg 2: Mosquitto och Paho MQTT
Innan vi börjar programmera på Python för att få ultraljudssensorn att fungera med Pi, bör vi installera dessa applikationer för att få ultraljudssensorn att kommunicera med vår programmeringsprogramvara Node-RED. Mosquitto är en MQTT -mäklare som du kan använda på Pi medan Paho MQTT är biblioteket som låter dig koda i Python för att få sensorn att kommunicera med MQTT -mäklaren. För att installera båda dessa skulle du skriva dessa kommandon på din Pi -terminal
sudo apt uppdatering
sudo apt installera -y mygga myggklienter
sudo apt-get install python3-pip
sudo pip3 installera paho-mqtt
Steg 3: Python -program för ultraljudssensor
Detta är programmet som jag använde för att läsa inkommande data från sensorn och även publicera för MQTT -mäklaren.
Steg 4: Nod-RÖD
Vissa noder kommer inte förinstallerade i programmet så du kan behöva installera det från paletterna. De som du behöver installera är node-red-dashboard och node-red-node-sqlite.
Det är här vi börjar använda vår programmeringsprogramvara och sensorn. Den första noden du behöver är MQTT-in-noden och det gör att vi kan använda vår sensor som kör programmet ovanifrån för att skicka data till denna programvara. Områdesnoden vi använde vänder de värden vi har (dvs. 5 cm är fullt från programmet så vi vänder det till 100%). Efter intervallnoden har vi två funktionsnoder, en för att visa meddelandet till vår instrumentpanel och en för att visa en visualisering att skräpet är fullt. Programmet för funktionsnoderna bifogas.
Om möjligt skulle detta flöde kunna användas för flera ultraljudssensorer. För vårt projekt var vi dock tvungna att göra simuleringsdata eftersom vi inte kunde få tag på fler sensorer. Sättet vi gjorde detta på är väldigt likt men vi har knappar som användaren kan klicka på för att slumpmässigt lägga till 1-10 procent av soporna i vart och ett av soporna. Vi använde 2 knappar, en för att lägga till skräp och en för att rensa. Mätaren, meddelanden och indikatorn är fortfarande exakt densamma som koden att räkna och hålla räkningen av skräpet är dock lite annorlunda.
Steg 5: Loggningsdata
Vi bestämde att det skulle vara en bra idé att logga hur fulla soporna är när lastbilen kommer för att tömma soporna. Med hjälp av sqlite -noden kan vi läsa och skriva data som också sparar den till Pi. Du skulle behöva installera den här noden som jag har sagt tidigare.
Stegen för att skapa och logga data går enligt följande:
1. Skapa databasen
2. Logga in data
3. Dra data för att visa på vår instrumentpanel
4. Rensa och ta bort data
Sättet som SQL fungerar är att du måste skapa exekvera ämnet som är SKAPA TABELL, SÄTT IN I, VÄLJ FRÅN och RADERA FRÅN. Med hjälp av tidsstämpelnoder kan vi köra ämnen till sqlite -noden som utför var och en av dessa funktioner (skapa, infoga, markera och ta bort). Vi behöver bara skapa databasen en gång och när den är klar kan vi logga data till den. När databasen är skapad kan vi logga data och vi använde användarinmatning igen för att logga när lastbilen har kommit. Vi gjorde det så att du inte kan logga data förrän lastbilen får komma, vilket är 5 sopor med 80% kapacitet (anses vara full). Vi använde också intervallnoden igen för att skala tillbaka 500 till 0-100%. Vi har då möjlighet att radera all data från databasen om vi vill. UI -tabellnoden är en nod för att vi ska kunna se tabellen på ett snyggt formaterat sätt på vår instrumentpanel.
Steg 6: Layout
När allt detta är klart kan du skapa en layout du vill ha med hjälp av Node-RED. På sidfliken kommer du att kunna placera dem hur du vill och det finns många fler anpassningsalternativ du har. Bifogat är också mitt flöde för hela mitt program.
Steg 7: Slutsats
När vi har slutfört det här projektet finns det områden där vi kan se programmet växa ytterligare. Jag hittade aldrig ett sätt att göra loggningen automatiskt eftersom det enda sättet vi kunde göra det var att logga med intervall och vi skulle inte behöva några upprepade nummer om sopbilen kom en gång. Jag tror att detta delvis beror på hur vi bestämde oss för att göra det mycket beroende av funktionsnoderna och programmeringen eftersom vi är mer bekväma med den programmeringen. Efter att ha utforskat efter att vi var klara, var det klart att det finns noder för allt och det kunde ha gjort livet mycket enklare om vi hittade funktionen för switch- och rbe -noder tidigare. Det fanns också en nod för ultraljudssensorer som vi inte fick till jobbet. Det skulle ha gjort det lättare eftersom det inte skulle behövas MQTT eller Python -programmet eftersom det bara är en nod med trigger- och ekostiften. Vi bestämde oss för att kringgå det genom att göra Python -programmet som du såg ovan. Ett stort tips för alla som vill dyka in i Node-RED är att du ska använda många felsökningsnoder för att ta reda på om varje flöde fungerar och levererar det du vill/behöver.
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)