- Nødvendige komponenter:
- HC-SR04 Ultralydssensor:
- ESP8266 Wi-Fi-modul:
- Kretsdiagram og forklaring:
- Kode Forklaring:
- "; if (distance <5) {webpage + =" Trash can is Full ";} else {webpage + =" Trash can is Empty ";} webside + ="
- Testing og produksjon av prosjektet:
I dette DIY vil vi lage et IOT-basert dumpster / søppelovervåkingssystem som vil fortelle oss at om papirkurven er tom eller full gjennom webserveren, og du kan vite statusen til "Trash Can" eller "Dumpsters" fra hvor som helst i verden over Internett. Det vil være veldig nyttig og kan installeres i papirkurven på offentlige steder så vel som hjemme.
I dette IOT-prosjektet brukes en ultralydssensor til å oppdage om søppelkassen er fylt med søppel eller ikke. Her er Ultralydssensor installert øverst i søppelbøtta og vil måle avstanden til søppel fra toppen av søppelbøtta, og vi kan sette en terskelverdi i henhold til størrelsen på søppelbøtta. Hvis avstanden vil være mindre enn denne terskelverdien, betyr det at søppelkassen er full av søppel, og vi vil skrive ut meldingen "Kurven er full" på websiden, og hvis avstanden vil være mer enn denne terskelverdien, vil vi skrive ut meldingen “Kurven er tom”. Her har vi satt terskelverdien på 5 cm i programkoden. Vi bruker ESP8266 Wi-Fi-modulfor å koble Arduino til webserveren. Her har vi brukt lokal webserver for å demonstrere hvordan Garbage Monitoring System fungerer.
Nødvendige komponenter:
- Arduino Uno (du kan bruke andre)
- ESP8266 Wi-Fi-modul
- HC-SR04 Ultralydssensor
- 1K motstander
- Brettbrett
- Koble ledninger
HC-SR04 Ultralydssensor:
Ultralydssensoren brukes til å måle avstanden med høy nøyaktighet og stabile målinger. Den kan måle avstand fra 2 cm til 400 cm eller fra 1 tomme til 13 fot. Den avgir en ultralydbølge med frekvensen 40KHz i luften, og hvis objektet kommer i veien, vil den sprette tilbake til sensoren. Ved å bruke den tiden det tar å slå objektet og kommer tilbake, kan du beregne avstanden.
Ultralydssensoren har fire pinner. To er VCC og GND som vil være koblet til 5V og GND til Arduino, mens de to andre pinnene er Trig og Echo pins som vil være koblet til alle digitale pinner på Arduino. Utløserpinnen vil sende signalet og Ekko-pinnen vil bli brukt til å motta signalet. For å generere et ultralydssignal, må du gjøre Trig-pinnen høy i omtrent 10us, noe som vil sende en 8-syklus sonisk burst med lydhastigheten, og etter at du har truffet objektet, vil den bli mottatt av Echo-pin.
Se nærmere på prosjektene nedenfor for å forstå funksjonen til ultralydsensoren og for å måle avstanden til gjenstander som bruker den:
- Arduino-basert avstandsmåling ved bruk av ultralydssensor
- Avstandsmåling ved bruk av HC-SR04 og AVR Microcontroller
ESP8266 Wi-Fi-modul:
ESP8266 er en Wi-Fi-modul som gir prosjektene dine tilgang til Wi-Fi eller internett. Det er en veldig billig enhet, men det vil gjøre prosjektene dine veldig kraftige. Den kan kommunisere med hvilken som helst mikrokontroller og gjøre prosjektene trådløse. Det er på listen over de mest ledende enhetene i IOT-plattformen. Den går på 3,3V, og hvis du gir den 5V, vil den få skade.
ESP8266 har 8 pins; VCC og CH-PD vil være koblet til 3.3V for å aktivere wifi. TX- og RX-pinnene vil være ansvarlige for kommunikasjonen av ESP8266 med Arduino. RX-pinnen fungerer på 3,3 V, så du må lage en spenningsdeler for den slik vi laget i prosjektet vårt.
Kretsdiagram og forklaring:
Først og fremst vil vi koble ESP8266 med Arduino. ESP8266 kjører på 3.3V, og hvis du gir den 5V fra Arduino, vil den ikke fungere ordentlig, og det kan få skade. Koble VCC og CH_PD til 3.3V-pinnen på Arduino. RX-pinnen på ESP8266 fungerer på 3.3V, og den kommuniserer ikke med Arduino når vi kobler den direkte til Arduino. Så, vi må lage en spenningsdeler for det. Tre 1k motstander koblet i serie vil gjøre jobben for oss. Koble RX til pinnen 11 på Arduino gjennom motstandene som vist i figuren nedenfor, og også TX på Arduino til pinnen 10 på Arduino.
Nå er det på tide å koble HC-SR04 ultralydssensoren til Arduino. Tilkoblinger av ultralydssensoren med Arduino er veldig enkle. Koble VCC og bakken til ultralydssensoren til 5V og bakken til Arduino. Koble deretter TRIG og ECHO-pinnen til ultralydsensoren til henholdsvis pinne 8 og 9 på Arduino.
Kode Forklaring:
Før du laster opp koden, må du sørge for at du er koblet til Wi-Fi på ESP8266-enheten din. Du kan sjekke hele koden i Kodeseksjonen nedenfor, koden har blitt godt forklart av kommentarene, videre har vi også forklart noen viktige funksjoner nedenfor.
Arduino vil først lese Ultralydssensoren. Det vil sende et ultralydssignal med lydhastigheten når vi vil gjøre TRIG-pinnen høy i 10us. Signalet kommer tilbake etter at objektet er slått, og vi lagrer reisetidens varighet i variabelen som heter varighet . Deretter vil vi beregne avstanden til objektet (søppel i vårt tilfelle) ved å bruke en formel og lagre den i variabelen som heter avstand .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); varighet = pulseIn (echoPin, HIGH); avstand = varighet * 0,034/2;
For å skrive ut utdataene på websiden i nettleseren, må vi bruke HTML-programmering. Så vi har opprettet en streng som heter webside og lagret utdataene i den. For å fortelle om søppelboksen er tom eller ikke, har vi brukt en tilstand der. Hvis avstanden vil være mindre enn 5 cm, vil den vise "Kurven er full" på websiden, og hvis avstanden blir større enn 5 cm, vil den vise meldingen "Kurven er tom" på websiden.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; String webside = "
IOT søppelovervåkingssystem
"; webside + =""; if (distance <5) {webpage + =" Trash can is Full ";} else {webpage + =" Trash can is Empty ";} webside + ="
";Følgende kode sender og viser dataene på websiden. Dataene, vi lagret i en streng som heter 'webside', lagres i en streng som heter 'kommando' . ESP8266 vil da lese tegnet en etter en fra 'kommandoen' og vil skrive den ut på websiden.
String sendData (strengkommando, const int timeout, boolsk feilsøking) {String response = ""; esp8266.print (kommando); lang intid = millis (); mens ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); respons + = c; }} if (feilsøking) {Serial.print (respons); } returnere svar; }
Testing og produksjon av prosjektet:
Etter at du har lastet opp koden, åpner du Serial Monitor og den viser deg en IP-adresse som vist nedenfor.
Skriv inn denne IP-adressen i nettleseren din, den viser deg utdataene som vist nedenfor. Du må oppdatere siden på nytt hvis du vil se igjen at papirkurven er tom eller ikke.
Så dette hvordan dette søppelovervåkingssystemet fungerer, kan dette prosjektet forbedres ytterligere ved å legge til noen flere funksjoner i det, som om vi kan sette en melding til når papirkurven er halvfylt, eller vi kan utløse en e-post / SMS for å varsle brukeren når papirkurven Kurven er full.