Smart-Dustbin: Unterschied zwischen den Versionen
(157 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
'''Autoren:''' [[Benutzer:Alvin-Varghese John| Alvin John]], [[ Almustapha-Abdu Lawan| Almustapha Lawan]]<br/> | '''Autoren:''' [[Benutzer:Alvin-Varghese John| Alvin John]], [[ Almustapha-Abdu Lawan| Almustapha Lawan]]<br/> | ||
'''Gruppe:''' 2.1<br/> | '''Gruppe:''' 2.1<br/> | ||
'''Betreuer: | '''Betreuer: Prof. Schneider''' <br/> | ||
→ zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]] | → zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]] | ||
[[Datei:TitelBildSmartDustbin.jpg|500px|thumb|rechts|Abb 1: Titelbild: Smart-Dustbin: geschlossen(links), geöffnet(rechts) <ref>Alvin John - Eigenes Werk</ref>]] | |||
==Einleitung== | ==Einleitung== | ||
In diesem Projekt soll ein Smart-Dustbin (Mülleimer) entwickelt werden. Der Smart-Mülleimer sollte seinen Deckel jedes Mal automatisch öffnen, wenn jemand etwas hineinwirft und dies mit Hilfe von Ultraschallsensor, Servomotor und Arduino geschieht. Die Idee für einen smart Mülleimer entstand aus der Pandemie-Situation, in der allen geraten wurde, so wenig öffentliche Sachen wie möglich anzufassen. Mit Hilfe eines Ultraschallsensors im Inneren des Mülleimers und einem LCD an der Außenseite zeigt der Mülleimer an, wie voll er ist. In der Abbildung 1 sieht man die Skizze des Smart-Dustbins. Der Deckel | In diesem Projekt soll ein Smart-Dustbin (Mülleimer) entwickelt werden. Der Smart-Mülleimer sollte seinen Deckel jedes Mal automatisch öffnen, wenn jemand etwas hineinwirft und dies mit Hilfe von Ultraschallsensor, Servomotor und Arduino geschieht. Die Idee für einen smart Mülleimer entstand aus der Pandemie-Situation, in der allen geraten wurde, so wenig öffentliche Sachen wie möglich anzufassen. Mit Hilfe eines Ultraschallsensors im Inneren des Mülleimers und einem LCD an der Außenseite zeigt der Mülleimer an, wie voll er ist. In der Abbildung 1 sieht man die Skizze des Smart-Dustbins. Der Deckel sollte abweichend von der Zeichung um 60° geöffnet sein. | ||
[[Datei:SmartDusbin.JPG|400px|thumb|links|Abb | [[Datei:SmartDusbin.JPG|400px|thumb|links|Abb 2: Smart-Dustbin CAD <ref>Alvin John - Eigenes Werk</ref>]] | ||
Zeile 39: | Zeile 48: | ||
{| class=" | {| class="wikitable" | ||
! style="font-weight: bold;" | ID | ! style="font-weight: bold;" | ID | ||
! style="font-weight: bold;" | Inhalt | ! style="font-weight: bold;" | Inhalt | ||
|+ style = "text-align: left"|Tabelle: Anforderungen an den Smart Dustbin | |+ style = "text-align: left"|Tabelle 1: Anforderungen an den Smart Dustbin | ||
|- | |- | ||
| 1 | | 1 | ||
| Der Abstand zwischen Mülleimer und Person/Gegenstand muss gemessen werden. Messgenauigkeit beträgt ca. 3mm | | Der Abstand zwischen Mülleimer und Person/Gegenstand muss gemessen werden. Messgenauigkeit beträgt ca. 3mm | ||
|- | |- | ||
| 2 | | 2 | ||
| Der Deckel muss mit Hilfe des Servomotors geöffnet werden. Servo (SG90), wegen 0° - 180° Drehung. Öffnungswinkel | | Der Deckel muss mit Hilfe des Servomotors geöffnet werden. Servo (SG90), wegen 0° - 180° Drehung. Öffnungswinkel ungefähr 60°. | ||
|- | |- | ||
| 3 | | 3. | ||
| | | wie voll der Mülleimer ist, muss auf dem LCD-Bildschirm in Prozent angezeigt werden. | ||
| | | | ||
|- | |- | ||
| 4. | | 4. | ||
| Der Arduino soll über eine 9 Volt Blockbatterie mit Spannung versorgt werden. | | Der Arduino soll über eine 9 Volt Blockbatterie mit Spannung versorgt werden. | ||
| | | | ||
|} | |} | ||
==Funktionaler Systementwurf/Technischer Systementwurf== | ==Funktionaler Systementwurf/Technischer Systementwurf== | ||
[[Datei:FunktionalerSystementwurfSmartDustbin.JPG|400px|thumb|links|Abb | [[Datei:FunktionalerSystementwurfSmartDustbin.JPG|400px|thumb|links|Abb 3: Systementwurf Smart-Dustbin <ref>Alvin John - Eigenes Werk</ref>]] | ||
Der in Abb. | Der in Abb. 3 abgebildete Systementwurf gibt einen kleinen Überblick über die Sensoren und Aktoren, sowie ihre entsprechenden Funktionen im System. | ||
Der Arduino spielt die Hauptrolle in dem System. Dieser soll über eine 9 Volt Blockbatterie mit Spannung versorgt werden. Die Sensoren und Aktoren werden an den Arduino angeschlossen und über diesen gesteuert. Das LCD-Modul zeigt wie voll der Eimer ist. | Der Arduino spielt die Hauptrolle in dem System. Dieser soll über eine 9 Volt Blockbatterie mit Spannung versorgt werden. Die Sensoren und Aktoren werden an den Arduino angeschlossen und über diesen gesteuert. Das LCD-Modul zeigt wie voll der Eimer ist. | ||
Zeile 94: | Zeile 88: | ||
<!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein. --> | |||
Zeile 99: | Zeile 94: | ||
==Komponentenspezifikation== | ==Komponentenspezifikation== | ||
Zeile 105: | Zeile 99: | ||
{| class="mw-datatable" | {| class="mw-datatable" | ||
! style="font-weight: bold;" | | |||
! style="font-weight: bold;" | Komponenten | ! style="font-weight: bold;" | Komponenten | ||
! style="font-weight: bold;" | Beschreibung | ! style="font-weight: bold;" | Beschreibung | ||
! style="font-weight: bold;" | Bilder | ! style="font-weight: bold;" | Bilder | ||
! style="font-weight: bold;" | | |||
|+ style = "text-align: left"|Tabelle: Spezifikation der Bauteilen | |+ style = "text-align: left"|Tabelle 2: Spezifikation der Bauteilen | ||
|- | |- | ||
|1 | |||
|Ardunio Uno | |Ardunio Uno | ||
| Der | |Der Arduino Uno R3 ist das Herzstück des Produktes, dabei handelt es sich um eine Mikrocontroller von ATMEL, der ATMEGA 328P. Die auf ihm Bootloader-Software ermöglicht Arduino-Programme auszuführen. | ||
| | Das Arduino UNO verfügt über 14 digitale I/O Pins, wovon sechs als PWM Kanäle genutzt werden können. Darüber hinaus sind sechs analoge Input Pins verfügbar.<ref>https://www.grund-wissen.de/elektronik/arduino/aufbau.html, abgerufen am 9.12.21 </ref> | ||
|[[Datei: Arduino_UnoR3.png|126px|mini|zentriert|Arduino Uno<ref>Fritzing Software</ref>]] | |||
|- | |- | ||
|2 | |||
|9V Batterie | |9V Batterie | ||
| | |Die 9V Batterie versorgt die Sensoren, den Servomotor und das LCD mit Spannung. Es ist mit den Vcc- und GND-Pins von Arduino verbunden. | ||
| | |[[Datei: 9VBatterie.png|126px|mini|zentriert|Batterie<ref>Fritzing Software</ref>]] | ||
|- | |- | ||
| | |3 | ||
| Der | |HC-SR04 Ultraschall | ||
| | |Der HC-SR04 ist ein Ultraschall sensor, welcher in diesem Projekt zum einsatz kommt, Abstand zwischen Gegenstand bzw. Person zu ermitteln. Die eigentliche Messung wird über den Anschluss Trigger gestartet. Nach Triggerung mit einer fallenden Flanke misst das Modul selbstständig die Entfernung und wandelt diese in ein PWM Signal welches am Ausgang zur Verfügung steht, dabei werden nur 50 Messungen pro Sekunde durchgeführt.Ein zweiter Ultraschallsensor wurde verwendet, um den Müllpegel zu messen. Der Sensor ist auf dem Deckel( auf der Unterseite) befestigt und nach unten gerichtet. Es misst die Höhe des Mülls, die später in Prozent umgerechnet und auf dem LCD angezeigt wird<ref>https://www.mikrocontroller.net/attachment/218122/HC-SR04_ultraschallmodul_beschreibung_3.pdf, abgerufen am 9.12.21 </ref> | ||
| | |||
|[[Datei: UltraschallCAD.png|126px|mini|zentriert|Ultraschall<ref>Almustapha Lawan, Eigenes Werk</ref>]] | |||
|- | |- | ||
|4 | |||
|Servo Motor | |Servo Motor | ||
| | |Das Servo ist oben auf der Abdeckung geklebt. Am Ende des Blattes des Servomotors wird ein kleiner Faden angebracht und der Faden wird dann 3 cm vom Motor entfernt in Richtung Deckelmitte angebracht. Das Servo öffnet und schließt den Deckel. | ||
| | |[[Datei:Servo.png|126px|mini|zentriert|Servo Motor<ref>Fritzing Software</ref>]] | ||
|- | |- | ||
|LCD | |5 | ||
| Der | |LCD mit I^2C Modul | ||
| | |Der LCD-Monitor zeigt den Müllpegel an. Es zeigt auch "Opening" an, wenn der Deckel geöffnet wird, "Put your waste", wenn der Deckel geöffnet ist, und "closing", bevor er schließt. | ||
|[[Datei:LCDDisplay16x2.png|126px|mini|zentriert|LCD Display<ref>Fritzing Software</ref>]] | |||
|- | |- | ||
| | |6 | ||
| Der | |Eimer | ||
| | | der Eimer wurde von IKEA hergestellt, bei Amazon gekauft | ||
|[[Datei:Eimer.png|126px|mini|zentriert|Eimer <ref>https://www.amazon.de/dp/B00Y0JM1HW/ref=pe_27091401_487027711_TE_SCE_3p_dp_1, abgerufen am 16.11.21 </ref>]] | |||
|- | |||
|7 | |||
|Deckel aus Pappe | |||
|Der Deckel besteht aus Karton, ist in der Mitte geschnitten und mit einem Klebeband zusammengehalten, damit er die Öffnungs- und Schließfunktionen reibungslos ausführen kann | |||
|[[Datei:Cover.jpg|126px|mini|zentriert|Dustbin-cover <ref>Alvin John - Eigenes Werk</ref>]] | |||
|} | |} | ||
== | == Hardware== | ||
[[Datei:Schaltplanfritzing.png|550px|mini|links|Abb 4:Verkabelung zum Arduino <ref>Almustapha Lawan - Eigenes Werk</ref>]] | |||
[[Datei:Schaltplanmultisim update.png|550px|mini|links|Abb 5: Schaltplan mittels Multisim <ref>Almustapha Lawan - Eigenes Werk</ref>]] | |||
==Software== | |||
Die Smart Dustin Software wurde mit der Arduino IDE implementiert. Diese besteht aus vier Teilen, zuerst die Anbindung von Bibliotheken und Variablendefinitionen, danach das Auslesen von Ultraschalsensoren und die Distanzberechnung und anschließend der Loop. | |||
Als Bibliotheken wurden LiquidCrystal.h, Servo.h und Wire.h verwendet. Der Loop wurde in verschiedenen Zuständen realisiert, zuerst wird der Ultraschall vorne überprüft, ob der Abstand zum Gegenstand bzw. Person kleiner 50cm ist, wenn diesen Fall auftritt, wird den Deckel um 60° geöffnet. Als weitere zustände werden der zweite Ultraschall gemessen, wie voll der Smart Dustin ist und anschließend auf dem Display dargestellt. | |||
[[Datei:Programmablauf PAP.jpg|300px|mini|rechts|Abb 7: Programmablauf PAP <ref>Alvin John - Eigenes Werk</ref>]] | |||
==Arduino Code== | |||
Hier sind einige Auszüge aus dem Quellcode dargestellt: | |||
<div style="width:950px; height:500px; overflow:auto; border: 1px solid #000"> | |||
Header und Benötigte Bibliotheken | |||
<pre> | |||
/******************************************************************************************************* | |||
* Hochschule Hamm-Lippstadt GET Fachpraktikum * | |||
******************************************************************************************************* | |||
* Modul : SmartDustbin.ino | |||
* | |||
* Datum : 23.12.2021 | |||
* | |||
* Funktion : Abstandmessen und der Deckel von dem Mülleimer öffnen. Auch auf LCD zeigen wie voll | |||
* der Eimer ist. (in %) | |||
* | |||
* Hardware : UNO, LCD 1602, 2x HC-SR04, Servo SG90 | |||
* Implementation : Arduino IDE 1.8.13 | |||
* | |||
* Include : Servo.h | |||
* LiquidCrystal_I2C.h | |||
* Wire.h | |||
* LiquidCrystal.h | |||
* | |||
* Autoren : Alvin John & Almustapha Lawan | |||
* | |||
* Letzte Änderung : 23.12.2021 | |||
* | |||
********************************************************************************************************/ | |||
/********************************************************************************************************/ | |||
#include <Servo.h> //servo library | |||
#include <LiquidCrystal_I2C.h> | |||
#include <LiquidCrystal.h> | |||
#include <Wire.h> | |||
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x3F, 16 column and 2 rows | |||
Servo servo; | |||
#define trigPin1 12 | |||
#define echoPin1 11 | |||
#define trigPin2 6 | |||
#define echoPin2 7 | |||
int servoPin = 8; | |||
double GarbageLevel=0; | |||
long duration, distance, RightSensor,LeftSensor; | |||
void setup() | |||
{ | |||
Serial.begin (9600); | |||
servo.attach(servoPin); | |||
pinMode(trigPin1, OUTPUT); | |||
pinMode(echoPin1, INPUT); | |||
pinMode(trigPin2, OUTPUT); | |||
pinMode(echoPin2, INPUT); | |||
servo.write(0); //close cap on power on | |||
delay(100); | |||
servo.detach(); | |||
lcd.init(); // initialize the lcd | |||
lcd.backlight(); // open the backlight | |||
} | |||
void loop() | |||
{ | |||
UltraSonicSensor(trigPin1, echoPin1); | |||
RightSensor = distance; | |||
UltraSonicSensor(trigPin2, echoPin2); | |||
LeftSensor = distance; | |||
if ( LeftSensor<50 ) | |||
{ | |||
//Change distance as per your need | |||
servo.attach(servoPin); | |||
lcd.clear(); | |||
lcd.setCursor(0, 0); // start to print at the first row | |||
lcd.print("Opening"); | |||
delay(1000); | |||
servo.write(0); | |||
lcd.clear(); | |||
lcd.setCursor(0, 0); // start to print at the first row | |||
lcd.print("Put your waste"); | |||
delay(3000); | |||
lcd.clear(); | |||
lcd.setCursor(0, 0); // start to print at the first row | |||
lcd.print("Closing"); | |||
delay(1000); | |||
servo.write(100); | |||
delay(2000); | |||
// servo.detach(); | |||
} | |||
//Serial.print(LeftSensor); | |||
//Serial.print(" - "); | |||
//Serial.println(RightSensor); | |||
if ( RightSensor>23 ) | |||
{ | |||
lcd.clear(); | |||
lcd.setCursor(0, 0); // start to print at the first row | |||
lcd.print("Garbage Percent:"); | |||
lcd.setCursor(1, 7); | |||
lcd.print("0%"); | |||
//lcd.print(); | |||
} | |||
else if ( RightSensor < 22) | |||
{ | |||
lcd.clear(); | |||
lcd.setCursor(0, 0); // start to print at the first row | |||
GarbageLevel= 100- RightSensor*4.34782; | |||
lcd.print("Garbage Percent: "); | |||
lcd.setCursor(1, 7); | |||
lcd.print(GarbageLevel); | |||
lcd.print("%"); | |||
delay(2000); | |||
} | |||
} | |||
void UltraSonicSensor(int trigPin,int echoPin) | |||
{ | |||
digitalWrite(trigPin, LOW); | |||
delayMicroseconds(2); | |||
digitalWrite(trigPin, HIGH); | |||
delayMicroseconds(10); | |||
digitalWrite(trigPin, LOW); | |||
duration = pulseIn(echoPin, HIGH); | |||
distance = (duration/2) / 29.1; | |||
} | |||
</pre> | |||
</div> | |||
==Komponententest== | ==Komponententest== | ||
Die Bauteile wurden vor der Verdrahtung und das Zusammenfügen einzeln getestet, dafür wurde ein kleines Programm geschrieben, um sicher zu stellen, dass die Funktionsfähig sind und möglichst Fehlerfreies Produkt zu konstruieren. | |||
[[Datei:Connections.jpeg|550px|mini|links|Abb 6:Versuchsaufbau, bevor die Komponenten in den Smart-Dustbin eingebaut wurden <ref>Alvin John - Eigenes Werk</ref>]] | |||
==Ergebnis== | ==Ergebnis== | ||
Das Projekt wurde erfolgreich abgeschlossen. Der Smart-Dustin hatte den Abstand zum Person bzw Gegenstände mit Hilfe von Ultraschall mit einer Genauigkeit von ca. 3mm gemessen, den Deckel ungefähr auf 60° geöffnet und anschließend wie voll der Eimer auf dem LCD-Display dargestelt, somit sind alle die zuvor genannten Anforderungen erfüllt. | |||
[[Datei:DisplayonLCD.jpg|500px|mini|links|Abb 8: Anzeige, während der Smart-Dustbin im Betrieb ist <ref>Alvin John - Eigenes Werk</ref>]] | |||
==Zusammenfassung== | ==Zusammenfassung== | ||
Im Rahmen des GET-Fachpraktikum WS 21/22 Projekt wurden ein Mechatronisches System mit Hilfe von einem oder mehreren Mikrokontroller entwickelt. Zusammengefasst, durch unser können und die erlangten wissen aus verschiedenen Bereichen wie "Elektronik, Informatik, Konstruktionstechnik, Mess und Reglungstechnik usw." an der Hochschule Hamm-lippstadt wurde am Ende der projektbearbeitungsphase ein komplett fähiges Smart-Dustin erstellt. Bevor des Beginns der Konstruktion wurde ein Projektplan erstellt, welcher uns Schritt für Schritt zeigt, was und wann zu machen ist, das hat uns sehr geholfen, die geschätzte Bearbeitungszeit zu halten. | |||
Nachdem die Bauteile zusammen konstruiert sind, wurde das Smart-Dustin programmiert und anschließend natürlich das Produkt getestet, um sicher zu stellen, dass es die oben genannten Anforderungen erfüllt hat. | |||
==Lessons Learned== | |||
Die wichtigsten ,,Lessons-Learned" sind: | |||
Planung des Projektes, | |||
Programmierung von Arduino, | |||
Fritzing, | |||
Verkabelungsplan, | |||
Konstruktion mit CAD, | |||
Team-Arbeit, | |||
& um das Beste aus den begrenzten Ressourcen zu machen. | |||
===Projektplan=== | ===Projektplan=== | ||
[[Datei:Smartdustinplan.png|1050px|mini|links|Abb 9: Projektplan <ref>Almustapha Lawan - Eigenes Werk</ref>]] | |||
== | == YouTube Video == | ||
{{#ev:youtube|https://www.youtube.com/watch?v=GSaqTcltH8o|800px|left}} | |||
<br clear=all> | |||
==Literatur== | ==Literatur== |
Aktuelle Version vom 5. Januar 2023, 01:27 Uhr
Autoren: Alvin John, Almustapha Lawan
Gruppe: 2.1
Betreuer: Prof. Schneider
→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)
Einleitung
In diesem Projekt soll ein Smart-Dustbin (Mülleimer) entwickelt werden. Der Smart-Mülleimer sollte seinen Deckel jedes Mal automatisch öffnen, wenn jemand etwas hineinwirft und dies mit Hilfe von Ultraschallsensor, Servomotor und Arduino geschieht. Die Idee für einen smart Mülleimer entstand aus der Pandemie-Situation, in der allen geraten wurde, so wenig öffentliche Sachen wie möglich anzufassen. Mit Hilfe eines Ultraschallsensors im Inneren des Mülleimers und einem LCD an der Außenseite zeigt der Mülleimer an, wie voll er ist. In der Abbildung 1 sieht man die Skizze des Smart-Dustbins. Der Deckel sollte abweichend von der Zeichung um 60° geöffnet sein.
Anforderungen
ID | Inhalt | |
---|---|---|
1 | Der Abstand zwischen Mülleimer und Person/Gegenstand muss gemessen werden. Messgenauigkeit beträgt ca. 3mm | |
2 | Der Deckel muss mit Hilfe des Servomotors geöffnet werden. Servo (SG90), wegen 0° - 180° Drehung. Öffnungswinkel ungefähr 60°. | |
3. | wie voll der Mülleimer ist, muss auf dem LCD-Bildschirm in Prozent angezeigt werden. | |
4. | Der Arduino soll über eine 9 Volt Blockbatterie mit Spannung versorgt werden. |
Funktionaler Systementwurf/Technischer Systementwurf
Der in Abb. 3 abgebildete Systementwurf gibt einen kleinen Überblick über die Sensoren und Aktoren, sowie ihre entsprechenden Funktionen im System. Der Arduino spielt die Hauptrolle in dem System. Dieser soll über eine 9 Volt Blockbatterie mit Spannung versorgt werden. Die Sensoren und Aktoren werden an den Arduino angeschlossen und über diesen gesteuert. Das LCD-Modul zeigt wie voll der Eimer ist.
Komponentenspezifikation
Komponenten | Beschreibung | Bilder |
|
|
---|---|---|---|---|
1 | Ardunio Uno | Der Arduino Uno R3 ist das Herzstück des Produktes, dabei handelt es sich um eine Mikrocontroller von ATMEL, der ATMEGA 328P. Die auf ihm Bootloader-Software ermöglicht Arduino-Programme auszuführen.
Das Arduino UNO verfügt über 14 digitale I/O Pins, wovon sechs als PWM Kanäle genutzt werden können. Darüber hinaus sind sechs analoge Input Pins verfügbar.[4] |
||
2 | 9V Batterie | Die 9V Batterie versorgt die Sensoren, den Servomotor und das LCD mit Spannung. Es ist mit den Vcc- und GND-Pins von Arduino verbunden. | ||
3 | HC-SR04 Ultraschall | Der HC-SR04 ist ein Ultraschall sensor, welcher in diesem Projekt zum einsatz kommt, Abstand zwischen Gegenstand bzw. Person zu ermitteln. Die eigentliche Messung wird über den Anschluss Trigger gestartet. Nach Triggerung mit einer fallenden Flanke misst das Modul selbstständig die Entfernung und wandelt diese in ein PWM Signal welches am Ausgang zur Verfügung steht, dabei werden nur 50 Messungen pro Sekunde durchgeführt.Ein zweiter Ultraschallsensor wurde verwendet, um den Müllpegel zu messen. Der Sensor ist auf dem Deckel( auf der Unterseite) befestigt und nach unten gerichtet. Es misst die Höhe des Mülls, die später in Prozent umgerechnet und auf dem LCD angezeigt wird[7] | ||
4 | Servo Motor | Das Servo ist oben auf der Abdeckung geklebt. Am Ende des Blattes des Servomotors wird ein kleiner Faden angebracht und der Faden wird dann 3 cm vom Motor entfernt in Richtung Deckelmitte angebracht. Das Servo öffnet und schließt den Deckel. |
| |
5 | LCD mit I^2C Modul | Der LCD-Monitor zeigt den Müllpegel an. Es zeigt auch "Opening" an, wenn der Deckel geöffnet wird, "Put your waste", wenn der Deckel geöffnet ist, und "closing", bevor er schließt. |
| |
6 | Eimer | der Eimer wurde von IKEA hergestellt, bei Amazon gekauft | ||
7 | Deckel aus Pappe | Der Deckel besteht aus Karton, ist in der Mitte geschnitten und mit einem Klebeband zusammengehalten, damit er die Öffnungs- und Schließfunktionen reibungslos ausführen kann |
Hardware
Software
Die Smart Dustin Software wurde mit der Arduino IDE implementiert. Diese besteht aus vier Teilen, zuerst die Anbindung von Bibliotheken und Variablendefinitionen, danach das Auslesen von Ultraschalsensoren und die Distanzberechnung und anschließend der Loop. Als Bibliotheken wurden LiquidCrystal.h, Servo.h und Wire.h verwendet. Der Loop wurde in verschiedenen Zuständen realisiert, zuerst wird der Ultraschall vorne überprüft, ob der Abstand zum Gegenstand bzw. Person kleiner 50cm ist, wenn diesen Fall auftritt, wird den Deckel um 60° geöffnet. Als weitere zustände werden der zweite Ultraschall gemessen, wie voll der Smart Dustin ist und anschließend auf dem Display dargestellt.
Arduino Code
Hier sind einige Auszüge aus dem Quellcode dargestellt:
Header und Benötigte Bibliotheken
/******************************************************************************************************* * Hochschule Hamm-Lippstadt GET Fachpraktikum * ******************************************************************************************************* * Modul : SmartDustbin.ino * * Datum : 23.12.2021 * * Funktion : Abstandmessen und der Deckel von dem Mülleimer öffnen. Auch auf LCD zeigen wie voll * der Eimer ist. (in %) * * Hardware : UNO, LCD 1602, 2x HC-SR04, Servo SG90 * Implementation : Arduino IDE 1.8.13 * * Include : Servo.h * LiquidCrystal_I2C.h * Wire.h * LiquidCrystal.h * * Autoren : Alvin John & Almustapha Lawan * * Letzte Änderung : 23.12.2021 * ********************************************************************************************************/ /********************************************************************************************************/ #include <Servo.h> //servo library #include <LiquidCrystal_I2C.h> #include <LiquidCrystal.h> #include <Wire.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x3F, 16 column and 2 rows Servo servo; #define trigPin1 12 #define echoPin1 11 #define trigPin2 6 #define echoPin2 7 int servoPin = 8; double GarbageLevel=0; long duration, distance, RightSensor,LeftSensor; void setup() { Serial.begin (9600); servo.attach(servoPin); pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); servo.write(0); //close cap on power on delay(100); servo.detach(); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { UltraSonicSensor(trigPin1, echoPin1); RightSensor = distance; UltraSonicSensor(trigPin2, echoPin2); LeftSensor = distance; if ( LeftSensor<50 ) { //Change distance as per your need servo.attach(servoPin); lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Opening"); delay(1000); servo.write(0); lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Put your waste"); delay(3000); lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Closing"); delay(1000); servo.write(100); delay(2000); // servo.detach(); } //Serial.print(LeftSensor); //Serial.print(" - "); //Serial.println(RightSensor); if ( RightSensor>23 ) { lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Garbage Percent:"); lcd.setCursor(1, 7); lcd.print("0%"); //lcd.print(); } else if ( RightSensor < 22) { lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row GarbageLevel= 100- RightSensor*4.34782; lcd.print("Garbage Percent: "); lcd.setCursor(1, 7); lcd.print(GarbageLevel); lcd.print("%"); delay(2000); } } void UltraSonicSensor(int trigPin,int echoPin) { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; }
Komponententest
Die Bauteile wurden vor der Verdrahtung und das Zusammenfügen einzeln getestet, dafür wurde ein kleines Programm geschrieben, um sicher zu stellen, dass die Funktionsfähig sind und möglichst Fehlerfreies Produkt zu konstruieren.
Ergebnis
Das Projekt wurde erfolgreich abgeschlossen. Der Smart-Dustin hatte den Abstand zum Person bzw Gegenstände mit Hilfe von Ultraschall mit einer Genauigkeit von ca. 3mm gemessen, den Deckel ungefähr auf 60° geöffnet und anschließend wie voll der Eimer auf dem LCD-Display dargestelt, somit sind alle die zuvor genannten Anforderungen erfüllt.
Zusammenfassung
Im Rahmen des GET-Fachpraktikum WS 21/22 Projekt wurden ein Mechatronisches System mit Hilfe von einem oder mehreren Mikrokontroller entwickelt. Zusammengefasst, durch unser können und die erlangten wissen aus verschiedenen Bereichen wie "Elektronik, Informatik, Konstruktionstechnik, Mess und Reglungstechnik usw." an der Hochschule Hamm-lippstadt wurde am Ende der projektbearbeitungsphase ein komplett fähiges Smart-Dustin erstellt. Bevor des Beginns der Konstruktion wurde ein Projektplan erstellt, welcher uns Schritt für Schritt zeigt, was und wann zu machen ist, das hat uns sehr geholfen, die geschätzte Bearbeitungszeit zu halten. Nachdem die Bauteile zusammen konstruiert sind, wurde das Smart-Dustin programmiert und anschließend natürlich das Produkt getestet, um sicher zu stellen, dass es die oben genannten Anforderungen erfüllt hat.
Lessons Learned
Die wichtigsten ,,Lessons-Learned" sind:
Planung des Projektes,
Programmierung von Arduino,
Fritzing,
Verkabelungsplan,
Konstruktion mit CAD,
Team-Arbeit,
& um das Beste aus den begrenzten Ressourcen zu machen.
Projektplan
YouTube Video
Literatur
→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)
- ↑ Alvin John - Eigenes Werk
- ↑ Alvin John - Eigenes Werk
- ↑ Alvin John - Eigenes Werk
- ↑ https://www.grund-wissen.de/elektronik/arduino/aufbau.html, abgerufen am 9.12.21
- ↑ Fritzing Software
- ↑ Fritzing Software
- ↑ https://www.mikrocontroller.net/attachment/218122/HC-SR04_ultraschallmodul_beschreibung_3.pdf, abgerufen am 9.12.21
- ↑ Almustapha Lawan, Eigenes Werk
- ↑ Fritzing Software
- ↑ Fritzing Software
- ↑ https://www.amazon.de/dp/B00Y0JM1HW/ref=pe_27091401_487027711_TE_SCE_3p_dp_1, abgerufen am 16.11.21
- ↑ Alvin John - Eigenes Werk
- ↑ Almustapha Lawan - Eigenes Werk
- ↑ Almustapha Lawan - Eigenes Werk
- ↑ Alvin John - Eigenes Werk
- ↑ Alvin John - Eigenes Werk
- ↑ Alvin John - Eigenes Werk
- ↑ Almustapha Lawan - Eigenes Werk