- Vereiste componenten:
- HC-SR04 Ultrasone sensor:
- ESP8266 wifi-module:
- Schakelschema en uitleg:
- Code Verklaring:
- "; if (afstand <5) {webpage + =" Prullenbak is vol ";} else {webpage + =" Prullenbak is leeg ";} webpagina + ="
- Testen en uitvoeren van het project:
In deze doe-het-zelfzaak gaan we een IOT-gebaseerd afvalcontainer / vuilnisbewakingssysteem maken dat ons zal vertellen of de prullenbak leeg of vol is via de webserver en dat u de status van uw 'Prullenbak' of 'Afvalcontainers' kunt weten van overal ter wereld via internet. Het zal erg handig zijn en kan zowel op openbare plaatsen als thuis in de vuilnisbakken worden geïnstalleerd.
In dit IOT-project wordt een ultrasone sensor gebruikt om te detecteren of de prullenbak al dan niet met afval is gevuld. Hier wordt de ultrasone sensor aan de bovenkant van de prullenbak geïnstalleerd en meet de afstand van afval tot de bovenkant van de prullenbak en kunnen we een drempelwaarde instellen op basis van de grootte van de prullenbak. Als de afstand kleiner zal zijn dan deze drempelwaarde, betekent dit dat de prullenbak vol vuilnis zit en zullen we het bericht "Mand is vol" op de webpagina afdrukken en als de afstand groter zal zijn dan deze drempelwaarde, dan zullen we afdrukken het bericht "Mand is leeg". Hier hebben we de drempelwaarde van 5 cm in de programmacode ingesteld. We zullen de ESP8266 Wi-Fi-module gebruikenvoor het verbinden van de Arduino met de webserver. Hier hebben we de lokale webserver gebruikt om de werking van dit Garbage Monitoring System te demonstreren.
Vereiste componenten:
- Arduino Uno (u kunt elke andere gebruiken)
- ESP8266 Wi-Fi-module
- HC-SR04 Ultrasone sensor
- 1K weerstanden
- Breadboard
- Draden aansluiten
HC-SR04 Ultrasone sensor:
De ultrasone sensor wordt gebruikt om de afstand met hoge nauwkeurigheid en stabiele metingen te meten. Het kan afstand meten van 2 cm tot 400 cm of van 1 inch tot 13 voet. Het zendt een ultrasone golf uit met een frequentie van 40 KHz in de lucht en als het object in de weg komt, kaatst het terug naar de sensor. Door de tijd te gebruiken die nodig is om het object te raken en terug te komen, kunt u de afstand berekenen.
De ultrasone sensor heeft vier pinnen. Twee zijn VCC en GND die worden verbonden met de 5V en de GND van de Arduino, terwijl de andere twee pinnen Trig- en Echo-pinnen zijn die worden verbonden met digitale pinnen van de Arduino. De trig-pin zal het signaal verzenden en de echo-pin wordt gebruikt om het signaal te ontvangen. Om een ultrasoon signaal te genereren, moet je de Trig-pin ongeveer 10us hoog maken, die een 8-cycli sonische burst zal verzenden met de snelheid van het geluid en nadat je het object hebt geraakt, wordt het ontvangen door de Echo-pin.
Controleer onderstaande projecten verder om de werking van de ultrasone sensor goed te begrijpen en om de afstand van elk object dat deze gebruikt te meten:
- Op Arduino gebaseerde afstandsmeting met behulp van ultrasone sensor
- Afstandsmeting met HC-SR04 en AVR Microcontroller
ESP8266 wifi-module:
ESP8266 is een Wi-Fi-module die uw projecten toegang geeft tot Wi-Fi of internet. Het is een heel goedkoop apparaat, maar het zal je projecten erg krachtig maken. Het kan communiceren met elke microcontroller en de projecten draadloos maken. Het staat in de lijst met de meest toonaangevende apparaten op het IOT-platform. Hij werkt op 3.3V en als je hem 5V geeft, zal hij schade oplopen.
De ESP8266 heeft 8 pinnen; de VCC en CH-PD worden aangesloten op de 3.3V om de wifi in te schakelen. De TX- en RX-pinnen zijn verantwoordelijk voor de communicatie van ESP8266 met de Arduino. De RX-pin werkt op 3.3V, dus je zult er een spanningsdeler voor moeten maken zoals we in ons project hebben gemaakt.
Schakelschema en uitleg:
Allereerst gaan we de ESP8266 verbinden met de Arduino. ESP8266 werkt op 3.3V en als je hem 5V van de Arduino geeft, werkt hij niet goed en kan hij beschadigd raken. Verbind de VCC en de CH_PD met de 3.3V pin van Arduino. De RX-pin van ESP8266 werkt op 3.3V en zal niet communiceren met de Arduino wanneer we hem rechtstreeks op de Arduino aansluiten. We zullen er dus een spanningsdeler voor moeten maken. Drie 1k-weerstanden die in serie zijn geschakeld, zullen het werk voor ons doen. Verbind de RX met de pin 11 van de Arduino via de weerstanden zoals weergegeven in de onderstaande afbeelding en ook de TX van de Arduino met de pin 10 van de Arduino.
Nu is het tijd om de HC-SR04 ultrasone sensor met de Arduino te verbinden. Verbindingen van de ultrasone sensor met de Arduino zijn heel eenvoudig. Verbind de VCC en de aarde van de ultrasone sensor met de 5V en de aarde van de Arduino. Verbind vervolgens de TRIG- en ECHO-pin van de ultrasone sensor met respectievelijk pin 8 en 9 van de Arduino.
Code Verklaring:
Zorg ervoor dat u bent verbonden met de Wi-Fi van uw ESP8266-apparaat voordat u de code uploadt. U kunt de volledige code bekijken in de sectie Code hieronder, de code is goed uitgelegd door de opmerkingen, verder hebben we hieronder ook enkele belangrijke functies uitgelegd.
De Arduino leest eerst de ultrasone sensor. Het stuurt een ultrasoon signaal met de snelheid van het geluid wanneer we de TRIG-pin 10us hoog maken. Het signaal komt terug na het raken van het object en we slaan de reistijd op in de variabele met de naam duration . Vervolgens berekenen we de afstand van het object (in ons geval rotzooi) door een formule toe te passen en deze op te slaan in de variabele met de naam afstand .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duur = pulseIn (echoPin, HIGH); afstand = duur * 0,034 / 2;
Om de uitvoer op de webpagina in een webbrowser af te drukken, zullen we HTML-programmering moeten gebruiken. We hebben dus een string met de naam webpagina gemaakt en de uitvoer daarin opgeslagen. Om te weten of de prullenbak leeg is of niet, hebben we daar een voorwaarde toegepast. Als de afstand minder dan 5 cm zal zijn, wordt op de webpagina 'Winkelwagen is vol' weergegeven en als de afstand groter is dan 5 cm, wordt op de webpagina het bericht 'Winkelwagen is leeg' weergegeven.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {vertraging (1000); int connectionId = esp8266.read () - 48; String webpage = "
IOT Garbage Monitoring System
"; webpagina + =""; if (afstand <5) {webpage + =" Prullenbak is vol ";} else {webpage + =" Prullenbak is leeg ";} webpagina + ="
";De volgende code zal de gegevens op de webpagina verzenden en tonen. De gegevens, die we hebben opgeslagen in een string met de naam 'webpagina', worden opgeslagen in een string met de naam 'command' . De ESP8266 leest dan het teken een voor een uit het 'commando' en drukt het op de webpagina af.
String sendData (String-opdracht, const int time-out, boolean debug) {String response = ""; esp8266.print (opdracht); lange int tijd = millis (); while ((tijd + time-out)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); antwoord + = c; }} if (debug) {Serial.print (antwoord); } antwoord terug; }
Testen en uitvoeren van het project:
Na het uploaden van de code, opent u de seriële monitor en deze zal u een IP-adres tonen zoals hieronder weergegeven.
Typ dit IP-adres in uw browser, het toont u de uitvoer zoals hieronder weergegeven. U zult de pagina opnieuw moeten verversen als u opnieuw wilt zien of de prullenbak leeg is of niet.
Dus dit is hoe dit vuilnisbewakingssysteem werkt, dit project kan verder worden verbeterd door er een paar extra functies aan toe te voegen, zoals we kunnen nog een bericht instellen wanneer de prullenbak half gevuld is of we kunnen een e-mail / sms activeren om de gebruiker te waarschuwen wanneer de prullenbak Mand is vol.