- Erforderliche Komponenten:
- Ultraschallsensor HC-SR04:
- ESP8266 Wi-Fi-Modul:
- Schaltplan und Erklärung:
- Code Erläuterung:
- "; if (distance <5) {webpage + =" Mülleimer ist voll ";} else {webpage + =" Mülleimer ist leer ";} webpage + ="
- Testen und Ausgabe des Projekts:
In diesem DIY werden wir ein IOT-basiertes Müllcontainer- / Müllüberwachungssystem erstellen, das uns über den Webserver mitteilt, ob der Mülleimer leer oder voll ist, und anhand dessen Sie den Status Ihres Mülleimers oder Müllcontainers erkennen können überall auf der Welt über das Internet. Es ist sehr nützlich und kann sowohl an öffentlichen Orten als auch zu Hause in den Mülleimern installiert werden.
In diesem IOT-Projekt wird ein Ultraschallsensor verwendet, um festzustellen, ob der Mülleimer mit Müll gefüllt ist oder nicht. Hier ist der Ultraschallsensor oben im Mülleimer installiert und misst den Abstand des Mülls von der Oberseite des Mülleimers. Wir können einen Schwellenwert entsprechend der Größe des Mülleimers festlegen. Wenn der Abstand kleiner als dieser Schwellenwert ist, bedeutet dies, dass der Papierkorb voller Müll ist und wir die Meldung „Warenkorb ist voll“ auf der Webseite drucken. Wenn der Abstand diesen Schwellenwert überschreitet, drucken wir die Meldung "Korb ist leer". Hier haben wir im Programmcode den Schwellenwert von 5 cm eingestellt. Wir werden das ESP8266 Wi-Fi-Modul verwendenzum Verbinden des Arduino mit dem Webserver. Hier haben wir den lokalen Webserver verwendet, um die Funktionsweise dieses Garbage Monitoring-Systems zu demonstrieren.
Erforderliche Komponenten:
- Arduino Uno (Sie können jeden anderen verwenden)
- ESP8266 Wi-Fi-Modul
- HC-SR04 Ultraschallsensor
- 1K Widerstände
- Steckbrett
- Kabel anschließen
Ultraschallsensor HC-SR04:
Mit dem Ultraschallsensor wird der Abstand mit hoher Genauigkeit und stabilen Messwerten gemessen. Es kann Entfernungen von 2 cm bis 400 cm oder von 1 Zoll bis 13 Fuß messen. Es sendet eine Ultraschallwelle mit einer Frequenz von 40 kHz in der Luft aus. Wenn das Objekt in die Quere kommt, springt es zurück zum Sensor. Indem Sie die Zeit verwenden, die benötigt wird, um das Objekt zu treffen und zurück zu kommen, können Sie die Entfernung berechnen.
Der Ultraschallsensor hat vier Stifte. Zwei sind VCC und GND, die mit 5 V und GND des Arduino verbunden werden, während die anderen beiden Pins Trig- und Echo-Pins sind, die mit beliebigen digitalen Pins des Arduino verbunden werden. Der Trigger-Pin sendet das Signal und der Echo-Pin wird zum Empfangen des Signals verwendet. Um ein Ultraschallsignal zu erzeugen, müssen Sie den Trig-Pin für etwa 10 us hoch stellen, wodurch ein Schallstoß von 8 Zyklen mit Schallgeschwindigkeit gesendet wird. Nach dem Auftreffen auf das Objekt wird dieser vom Echo-Pin empfangen.
Weitere Informationen finden Sie in den folgenden Projekten, um die Funktionsweise des Ultraschallsensors richtig zu verstehen und die Entfernung eines Objekts zu messen, das ihn verwendet:
- Arduino-basierte Entfernungsmessung mit Ultraschallsensor
- Entfernungsmessung mit HC-SR04 und AVR Microcontroller
ESP8266 Wi-Fi-Modul:
ESP8266 ist ein Wi-Fi-Modul, mit dem Ihre Projekte auf Wi-Fi oder Internet zugreifen können. Es ist ein sehr billiges Gerät, aber es macht Ihre Projekte sehr leistungsfähig. Es kann mit jedem Mikrocontroller kommunizieren und die Projekte drahtlos machen. Es befindet sich in der Liste der führenden Geräte der IOT-Plattform. Es läuft mit 3,3 V und wenn Sie es 5 V geben, wird es Schaden bekommen.
Der ESP8266 verfügt über 8 Pins. Der VCC und der CH-PD werden an die 3,3 V angeschlossen, um das WLAN zu aktivieren. Die TX- und RX-Pins sind für die Kommunikation des ESP8266 mit dem Arduino verantwortlich. Der RX-Pin arbeitet mit 3,3 V, daher müssen Sie einen Spannungsteiler dafür erstellen, wie wir es in unserem Projekt gemacht haben.
Schaltplan und Erklärung:
Zunächst werden wir den ESP8266 mit dem Arduino verbinden. ESP8266 wird mit 3,3 V betrieben. Wenn Sie dem Arduino 5 V geben, funktioniert es nicht richtig und kann beschädigt werden. Verbinden Sie den VCC und den CH_PD mit dem 3,3-V-Pin von Arduino. Der RX-Pin des ESP8266 arbeitet mit 3,3 V und kommuniziert nicht mit dem Arduino, wenn wir ihn direkt mit dem Arduino verbinden. Also müssen wir einen Spannungsteiler dafür machen. Drei in Reihe geschaltete 1k-Widerstände erledigen die Arbeit für uns. Verbinden Sie den RX über die Widerstände wie in der folgenden Abbildung gezeigt mit Pin 11 des Arduino und den TX des Arduino mit Pin 10 des Arduino.
Jetzt ist es Zeit, den Ultraschallsensor HC-SR04 mit dem Arduino zu verbinden. Der Anschluss des Ultraschallsensors an den Arduino ist sehr einfach. Verbinden Sie den VCC und die Masse des Ultraschallsensors mit den 5 V und der Masse des Arduino. Verbinden Sie dann den TRIG- und ECHO-Pin des Ultraschallsensors mit dem Pin 8 bzw. 9 des Arduino.
Code Erläuterung:
Stellen Sie vor dem Hochladen des Codes sicher, dass Sie mit dem WLAN Ihres ESP8266-Geräts verbunden sind. Sie können den vollständigen Code im Abschnitt Code unten überprüfen. Der Code wurde durch die Kommentare gut erklärt. Außerdem haben wir unten einige wichtige Funktionen erläutert.
Der Arduino liest zuerst den Ultraschallsensor. Es sendet ein Ultraschallsignal mit Schallgeschwindigkeit, wenn wir den TRIG-Pin für 10us hoch machen. Das Signal kehrt nach dem Auftreffen auf das Objekt zurück und wir speichern die Laufzeitdauer in der Variablen namens Dauer . Dann berechnen wir die Entfernung des Objekts (in unserem Fall Müll) durch Anwenden einer Formel und speichern sie in der Variablen namens distance .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); Dauer = PulsIn (echoPin, HIGH); Entfernung = Dauer * 0,034 / 2;
Zum Drucken der Ausgabe auf der Webseite im Webbrowser müssen wir die HTML-Programmierung verwenden. Also haben wir eine Zeichenfolge mit dem Namen webpage erstellt und die Ausgabe darin gespeichert. Um festzustellen, ob der Mülleimer leer ist oder nicht, haben wir dort eine Bedingung angewendet. Wenn der Abstand weniger als 5 cm beträgt, wird auf der Webseite "Korb ist voll" angezeigt. Wenn der Abstand größer als 5 cm ist, wird auf der Webseite die Meldung "Korb ist leer" angezeigt.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; String webpage = "
IOT Garbage Monitoring System
"; Webseite + =""; if (distance <5) {webpage + =" Mülleimer ist voll ";} else {webpage + =" Mülleimer ist leer ";} webpage + ="
";Der folgende Code sendet und zeigt die Daten auf der Webseite an. Die Daten, die wir in der Zeichenfolge "Webseite" gespeichert haben , werden in der Zeichenfolge "Befehl" gespeichert. Der ESP8266 liest dann das Zeichen einzeln aus dem 'Befehl' und druckt es auf der Webseite aus.
String sendData (String-Befehl, const int timeout, boolesches Debug) {String response = ""; esp8266.print (Befehl); lange int Zeit = Millis (); while ((Zeit + Zeitüberschreitung)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); Antwort + = c; }} if (Debug) {Serial.print (Antwort); } return response; }}
Testen und Ausgabe des Projekts:
Öffnen Sie nach dem Hochladen des Codes den seriellen Monitor und er zeigt Ihnen eine IP-Adresse wie unten gezeigt.
Geben Sie diese IP-Adresse in Ihren Browser ein. Die Ausgabe wird wie unten gezeigt angezeigt. Sie müssen die Seite erneut aktualisieren, wenn Sie erneut sehen möchten, dass der Papierkorb leer ist oder nicht.
So wie dieses Garbage Monitoring System funktioniert, kann dieses Projekt weiter verbessert werden, indem einige weitere Funktionen hinzugefügt werden. So können wir eine weitere Nachricht festlegen, wenn der Papierkorb zur Hälfte gefüllt ist, oder eine E-Mail / SMS auslösen, um den Benutzer beim Papierkorb zu benachrichtigen Korb ist voll.