Smart Home: Temperaturmessung/-reglung & Raumfeuchtigkeitsmessung: Unterschied zwischen den Versionen
(Änderung 114406 von Oliver Aust (Diskussion) rückgängig gemacht.) Markierung: Rückgängigmachung |
|||
(62 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Datei:Gesamtkonstruktion.png|600px|mini|rechts|Abb. 1: Gesamtkonstruktion]] | |||
[[Kategorie:Projekte]] | [[Kategorie:Projekte]] | ||
[[Kategorie:ProjekteET MTR BSE WS2020]] | [[Kategorie:ProjekteET MTR BSE WS2020]] | ||
Zeile 109: | Zeile 111: | ||
== Funktionaler Systementwurf / Technischer Systementwurf == | == Funktionaler Systementwurf / Technischer Systementwurf == | ||
Anhand des Funktionalen Systementwurfes (siehe Abb. | Anhand des Funktionalen Systementwurfes (siehe Abb. 2) lässt sich erkennen, dass durch das Vorgeben einer Soll-Temperatur die Ist-Temperatur geregelt werden soll. Sollte die aktuell vorliegende Temperatur zu weit von der Soll-Größe abweichen, dann soll das Peltier-Element zum Kühlen bzw. Heizen genutzt werden. Ein Wechsel zwischen Kühlen und Heizen soll dabei so erreicht werden, indem eine Umpolung durchgeführt wird. Neben der Temperaturmessung und -regelung soll zusätzlich die Luftfeuchtigkeit gemessen werden. | ||
Die Soll-Temperatur und die gemessenen Werte sollen dabei zudem auf einem LCD-Display ausgegeben werden. | Die Soll-Temperatur und die gemessenen Werte sollen dabei zudem auf einem LCD-Display ausgegeben werden. | ||
[[Datei:Funktionaler Systementwurf2.png|700px|mini|zentriert|Abb. | [[Datei:Funktionaler Systementwurf2.png|700px|mini|zentriert|Abb. 2: Funktionaler Systementwurf]] | ||
== Komponentenspezifikation == | == Komponentenspezifikation == | ||
Zeile 179: | Zeile 181: | ||
| | | | ||
*Material: Aluminium | *Material: Aluminium | ||
*Maße: 40x40x20mm | |||
|[[Datei:Kühlrippe.png|rahmenlos|mini|zentriert|100px]] | |[[Datei:Kühlrippe.png|rahmenlos|mini|zentriert|100px]] | ||
|- | |- | ||
| 9 | | 9 | ||
| Lochrasterplatine | | Lochrasterplatine | ||
| | | Variation verschiedener Größen: | ||
*3x 70X50mm | |||
*1x 40x60mm | |||
|[[Datei:Lochrasterplatine.png|rahmenlos|mini|zentriert|100px]] | |[[Datei:Lochrasterplatine.png|rahmenlos|mini|zentriert|100px]] | ||
|- | |- | ||
Zeile 205: | Zeile 209: | ||
| Elektronische Bauelemente | | Elektronische Bauelemente | ||
| | | | ||
*2x TIP142 NPN-Transisor | |||
*2x TIP147 PNP-Transisor | |||
*2x 10kOhm Potentiometer | |||
*7x 330Ohm Drahtwiderstand | |||
*1x blaue LED | |||
*1x rote LED | |||
|[[Datei:Elektronische Bauelemente.png|rahmenlos|mini|zentriert|100px]] | |[[Datei:Elektronische Bauelemente.png|rahmenlos|mini|zentriert|100px]] | ||
|- | |- | ||
Zeile 212: | Zeile 222: | ||
=== Reglerauslegung === | === Reglerauslegung === | ||
Bei der Reglerauslegung fällt die Wahl auf einen | Bei der Reglerauslegung fällt die Wahl auf einen Zwei-Punkte-Regler (siehe Abbildung 3). Dieser soll hier die Funktion haben, dass die Stellgröße (Peltier-Element), je nach Differenz von Soll- und Ist-Temperatur, so geschaltet wird, damit die gewünschte Temperatur erreicht wird. Die Stellgröße gibt dabei Energie ab, welche die Regelstrecke (Plexiglas-Haus) erwärmt bzw. abkühlt. Dabei müssen jedoch ebenfalls Störgrößen berücksichtigt werden, welche die Ist-Temperatur beeinflussen. Diese werden hier als Stör-Energie bezeichnet, da durch äußere Einflüsse Energie ab- bzw. zugeführt werden kann. Durch die Rückführung der gemessenen momentanen Temperatur soll somit der Regelkreis geschlossen und die Soll-Größe nach einer bestimmten Zeit erreicht werden. | ||
[[Datei:Regelkreis2.png|700px|mini|zentriert|Abb. | [[Datei:Regelkreis2.png|700px|mini|zentriert|Abb. 3: Regelkreis]] | ||
=== Umsetzung | === Umsetzung Software === | ||
Anfänglich wurde versucht Matlab-Simulink zu verwenden, doch es konnte dabei keine | Anfänglich wurde versucht Matlab-Simulink zu verwenden, doch es konnte dabei keine Kommunikation zwischen dem Sensor und der dazugehörigen I2C-Schnittstelle erstellt werden. Daher wurde für die Umsetzung der Software die Arduino IDE verwendet. Diese bietet im Umgang mit Sensoren viele Möglichkeiten diese Auszulesen und Auszuwerten. Im Folgenden ist der Quelltext abgebildet, welcher mit dem genannten Programm erstellt wurde: | ||
<div style="width:1100px; height: | <div style="width:1100px; height:500px; overflow:scroll; border: hidden"> | ||
<syntaxhighlight lang="cpp" style="border: none; background-color: #EFF1C1; font-size:larger"> | <syntaxhighlight lang="cpp" style="border: none; background-color: #EFF1C1; font-size:larger"> | ||
#include <SHT21.h> | #include <SHT21.h> | ||
#include <LiquidCrystal.h> | #include <LiquidCrystal.h> | ||
// Eingang Potentiometer Wunsch-Temperatur | |||
#define Pin_W_Temp A1 | #define Pin_W_Temp A1 | ||
// Steuergrößen | |||
// x1 für Lüfter An/Aus | |||
// x2 für Heizen | |||
// x3 für Kühlen | |||
#define x1 3 | |||
#define x2 4 | |||
#define x3 5 | |||
// I2C-Schnittstelle für GY-21 HTU21 Sensor | |||
SHT21 sht; | SHT21 sht; | ||
float temp; | // Variablen für Sensor | ||
float | float temp; | ||
float luftfeuchtigkeit; | |||
// Variablen Wunsch-Temperatur | |||
int w_temp = 0; | int w_temp = 0; | ||
int w_temp_alt = 0; | int w_temp_alt = 0; | ||
int val; | int val; | ||
float dif_temp = 0.2; | |||
int zustand_pelti = 0; | |||
// Varialben für Display | |||
int zeit = 0; | int zeit = 0; | ||
int | int zustand_Anzeige = 0; | ||
// Anschluss belegung LCD 1602 Display | |||
const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 = 7; | const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 = 7; | ||
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); | LiquidCrystal lcd(rs, en, d4, d5, d6, d7); | ||
void setup() { | |||
Wire.begin(); | void setup() { | ||
Serial.begin(9600); | // Initialisierung | ||
Wire.begin(); | |||
Serial.begin(9600); | |||
lcd.begin(16, 2); | lcd.begin(16, 2); | ||
pinMode( | pinMode(x1, OUTPUT); | ||
pinMode( | pinMode(x2, OUTPUT); | ||
pinMode( | pinMode(x3, OUTPUT); | ||
} | } | ||
void loop() { | |||
void loop() { | |||
// Steuerung Display-Anzeige | |||
zeit = zeit + 1; | zeit = zeit + 1; | ||
if(zeit > 20) | if(zeit > 20) | ||
{ | { | ||
zustand_Anzeige = 0 ; //(state_Anzeige + 1) % 2; | |||
} | } | ||
if(zeit > 400) | if(zeit > 400) | ||
{ | { | ||
zeit = 21; | zeit = 21; | ||
} | } | ||
if(w_temp != w_temp_alt) | if(w_temp != w_temp_alt) | ||
{ | { | ||
zustand_Anzeige = 1; | |||
zeit = 0; | zeit = 0; | ||
w_temp_alt = w_temp; | w_temp_alt = w_temp; | ||
} | } | ||
// Auslesen Sensorwerte | |||
temp = sht.getTemperature(); | temp = sht.getTemperature(); | ||
luftfeuchtigkeit = sht.getHumidity(); | |||
// Wunsch-Temperatur von 0°C bis 40°C | |||
val = analogRead(Pin_W_Temp); | val = analogRead(Pin_W_Temp); | ||
w_temp = map(val, 0, 1023, 0, 40); | w_temp = map(val, 0, 1023, 0, 40); | ||
// Anzeige Funktion | |||
Anzeige_Bildschirm(); | Anzeige_Bildschirm(); | ||
// 2-Punkte Regler | |||
switch (zustand_pelti) | |||
{ | { | ||
case 0: | |||
// Temperatur passt | |||
digitalWrite(x1, LOW); | |||
digitalWrite(x2, LOW); | |||
digitalWrite(x3, LOW); | |||
if(temp < w_temp - dif_temp) | |||
{ | |||
zustand_pelti = 1; | |||
digitalWrite( | } | ||
else if (temp > w_temp + dif_temp) | |||
{ | |||
zustand_pelti = 2; | |||
} | |||
break; | |||
case 1: | |||
// Heizen | |||
digitalWrite(x1, HIGH); | |||
digitalWrite(x2, HIGH); | |||
digitalWrite(x3, LOW); | |||
if(temp > w_temp) | |||
{ | |||
zustand_pelti = 0; | |||
} | |||
break; | |||
case 2: | |||
// Kühlen | |||
digitalWrite(x1, HIGH); | |||
digitalWrite(x2, LOW); | |||
digitalWrite(x3, HIGH); | |||
if(temp < w_temp) | |||
{ | |||
zustand_pelti = 0; | |||
} | |||
break; | |||
} | } | ||
// Ausgabe Serielle-Schnittselle | |||
Serial.println(zustand_pelti); | |||
Serial.println( | |||
Serial.println(temp); | Serial.println(temp); | ||
Serial.println(w_temp); | Serial.println(w_temp); | ||
Zeile 314: | Zeile 360: | ||
void Anzeige_Bildschirm() | void Anzeige_Bildschirm() | ||
{ | { | ||
if( | if(zustand_Anzeige == 0) | ||
{ | { | ||
// Aktuelle Temperatur wird angezeigt | |||
lcd.clear(); | lcd.clear(); | ||
lcd.setCursor(0, 0); | lcd.setCursor(0, 0); | ||
Zeile 327: | Zeile 374: | ||
lcd.print("A-Luftf:"); | lcd.print("A-Luftf:"); | ||
lcd.setCursor(8, 1); | lcd.setCursor(8, 1); | ||
lcd.print( | lcd.print(luftfeuchtigkeit); | ||
lcd.setCursor(14, 1); | lcd.setCursor(14, 1); | ||
lcd.print("%"); | lcd.print("%"); | ||
} | } | ||
else if ( | else if (zustand_Anzeige == 1) | ||
{ | { | ||
// Wunsch-Temperatur wird angezeigt | |||
lcd.clear(); | lcd.clear(); | ||
lcd.setCursor(0, 0); | lcd.setCursor(0, 0); | ||
Zeile 346: | Zeile 394: | ||
<br/> | <br/> | ||
In diesem Quelltext werden nach der Initialisierung der Sensorik und den entsprechenden Pin-Ports die Rückgabewerte des HTU21-Sensors ausgelesen und ausgewertet. Dabei | In diesem Quelltext werden nach der Initialisierung der Sensorik und den entsprechenden Pin-Ports die Rückgabewerte des HTU21-Sensors ausgelesen und ausgewertet. Dabei wird die Auflösung des Anschlusses A1 (Potentiometer, Wunsch-Temperatur) am Arduino Board (0-1023) durch die Funktion map() auf ein Intervall von 0-40 skaliert, damit diese Werte besser weiterverarbeitet werden können. Somit kann mithilfe eines Potentiometers eine Temperatur zwischen 0°C und 40°C eingestellt werden. Die Rückgabewerte beinhalten dabei die gemessene Raumfeuchtigkeit und die momentan vorliegende Temperatur. Diese werden darauf mit der Funktion Anzeige_Bildschirm() auf dem LCD-Display kontinuierlich dargestellt. Dabei wurde einprogrammiert, dass bei jeder Änderung der Soll-Temperatur, diese auch auf dem Display für ein paar Sekunden angezeigt werden soll. Je nach dem, wie hoch die Differenz von Soll- und Ist-Temperatur dann ist, wird entschieden wie das Peltier-Element angesteuert werden soll. Beträgt der Betrag der Differenz weniger als 0,2, so passiert nichts. Weicht diese jedoch um mehr als 0,2 bzw. um weniger als -0,2 von dem Soll-Wert ab, so soll dementsprechend geheizt bzw. gekühlt werden. Wird eines dieser beiden Ereignisse ausgeführt, so soll zudem ebenfalls der Lüfter für die Luftzirkulation eingeschaltet werden. Erreicht der Innen-Raum darauf nach einer bestimmten Zeit die gewünschte Temperatur, so soll ebenfalls das Peltier-Element ausgeschaltet werden. | ||
=== Umsetzung | === Umsetzung Konstruktion === | ||
Wie in Abbildung... zu sehen ist, wurde als Fundament eine Holzplatte verwendet. Darauf ist | Wie in Abbildung... zu sehen ist, wurde als Fundament eine Holzplatte verwendet. Darauf ist zum einen das Plexiglas-Haus und zum anderen das Holz-Haus für den CPU-Kühler befestigt. Das Plexiglas-Haus soll dabei die Regelstrecke realisieren, worin die gewünschte Temperatur geregelt werden soll. Eine Seite dieses Hauses ist zudem mit Scharnieren versehen, wodurch es möglich ist, Störgrößen einfließen zu lassen bzw. an den Sensor und dem Windkanal zu gelangen. Außerdem wurden die restlichen Seiten des Hauses miteinander verklebt und über drei Winkel an der Grundplatte befestigt. Damit ist die Konstruktion vorgefertigt und es kann mit der Montage der Hardware-Komponenten begonnen werden. | ||
=== Luftzirkulation (Windkanal) === | |||
Für eine optimale Durchströmung der Kühlrippen wurde ein 3D gedruckter Windkanal erstellt (siehe Abbildung 4, 5). Dieser ermöglicht es den Luftstrom von dem 80x80mm großen Lüfter auf eine 30x40mm große Fläche zu reduzieren. Dadurch kann der Luftstrom optimal von den Rippen abgekühlt bzw. erwärmt werden, wodurch die thermische Energie der Rippen entnommen wird und sich somit deutlich schneller eine Temperaturänderung ergibt. | |||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | | |||
! style="font-weight: bold;" | | |||
|+ style = "text-align: left"| | |||
|- | |||
|[[Datei:Windkanal-CAD.png|300px|mini|links|Abb. 4: Windkanal-CAD]] | |||
|[[Datei:Windkanal.png|300px|mini|rechts|Abb. 5: Windkanal]] | |||
|} | |||
=== Umsetzung Hardware === | |||
'''H-Brücke''' <br/> | |||
Für die Ansteuerung des Peltier-Elementes wird eine sog. H-Brücke verwendet (siehe Abbildung 7). Diese ermöglicht es durch zwei Steuersignale die Polarität des Peltier-Elementes zu ändern. Hierfür werden zwei PNP- und zwei NPN-Transistoren mit jeweils Vorwiderständen von 330 Ohm verwendet. Die Anordnung der elektronischen Elemente kann aus der Abbildung 6 entnommen werden. | |||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | | |||
! style="font-weight: bold;" | | |||
|+ style = "text-align: left"| | |||
|- | |||
|[[Datei:Schaltplan-H-Brücke.png|300px|mini|links|Abb. 6: Schaltplan-H-Brücke]] | |||
|[[Datei:H-Brücke1.png|300px|mini|rechts|Abb. 7: H-Brücke]] | |||
|} | |||
'''Leistungsschaltung''' <br/> | |||
Auf der Leistungsschaltung ist ein Hochleistungs-Switch integriert, woran ein separates Netzteil für die Spannungsversorgung der zwei Lüfter und dem Peltier-Element angeschlossen ist (siehe Abbildung 8, 9). Das Steuersignal x1 wird hierbei abgegriffen und regelt die Steuerung des Hochleistungs-Switches. Für das Anschließen der beiden Lüfter sind die beiden Ausgänge L1 und L2 vorgesehen. Außerdem werden die Signale x2 und x3 hierbei ebenfalls durch Klemmen an die H-Brücke weitergeleitet. | |||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | | |||
! style="font-weight: bold;" | | |||
|+ style = "text-align: left"| | |||
|- | |||
|[[Datei:Schaltplan-Leistungsschaltung.png|300px|mini|links|Abb. 8: Schaltplan-Leistungsschaltung]] | |||
|[[Datei:Leistungsschaltung.png|300px|mini|rechts|Abb. 9: Leistungsschaltung]] | |||
|} | |||
'''Steuerschaltung''' <br/> | |||
Die Steuerschaltung wird über 6 Pins mit dem Arduino UNO verbunden (siehe Abbildung 10, 11). Darunter sind die Steuersignale x1, x2, x3, sowie die Versorgungsspannung für die Sensorik enthalten. Es wird eine Schnittstelle für die Leistungsschaltung bereitgestellt, wohin die Steuersignale übermittelt werden können. Hinzukommend werden die Signale x2 und x3 zur Ansteuerung der LEDs verwendet. Hiermit wird angezeigt, in welchem Zustand sich die Schaltung befindet. Leuchtet die rote LED, wird gerade geheizt und leuchtet die blaue LED, dann wird momentan gekühlt. Des Weiteren verfügt die Steuerschaltung über zwei weitere Schnittstellen, wodurch die Versorgungsspannung Vcc und die Masse GND für die Leistungsschaltung und LED-Anzeige bereitgestellt wird. Der sechste Pin ist mit dem Eingang A1 des Arduino UNOs verbunden, womit das Steuersignal der Wunsch-Temperatur durch das Potentiometer übermittelt wird. | |||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | | |||
! style="font-weight: bold;" | | |||
|+ style = "text-align: left"| | |||
|- | |||
|[[Datei:Schaltpan-Steuerschaltung.png|300px|mini|links|Abb. 10: Schaltpan-Steuerschaltung]] | |||
|[[Datei:Steuerschaltung.png|300px|mini|rechts|Abb. 11: Steuerschaltung]] | |||
|} | |||
Nachdem alle Lochrasterplatinen bestückt wurden, werden diese mit M2-Schrauben und passenden Muttern an dem Plexiglas-Haus befestigt. Nun ist das Gesamtkonstrukt vollständig und es kann begonnen werden finale Tests durchzuführen. | |||
== Komponententest == | == Komponententest == | ||
Zeile 362: | Zeile 460: | ||
== Ergebnis == | == Ergebnis == | ||
Nachdem die Realisierung und Montage der Schaltung abgeschlossen war, konnten die ersten Tests des Gesamtsystems durchgeführt werden. Aus Sicherheitsgründen wurde zuerst eine Versorgungsspannung des Netzgerätes von 5V angeschlossen. Bei diesem Testversuch wurde die korrekte Ansteuerung der Lüfter sowie das Umpolen des Peltier-Elementes getestet. Dabei traten keinerlei Fehler auf und die Schaltungen waren somit korrekt. Unter Berücksichtigung des positiven Testversuches wurde nun die Versorgungsspannung, wie bereits bei den Komponententests geprüft, auf 12V angehoben. Hiebei fiel jedoch relativ schnell auf, dass sich ein ungewöhnlicher Geruch entwickelte, woraufhin die Versorgungsspannung abrupt unterbrochen wurde. Danach konnte festgestellt werden, dass dieses Verhalten von den Transistoren der H-Brücke abstammt und diese ebenfalls eine hohe Eigentemperatur aufwiesen. Unter dieser Erkenntnisnahme wurde die Schaltung mit 5V erneut getestet und die Spannung an dem Peltier-Element gemessen. Hierbei fiel auf, dass bereits bei 5V nur eine Ausgangsspannung von 3,3V für das Peltier-Element ausgeht. Dieser Spannungsverlust lässt darauf schließen, dass die konstruierte H-Brücke eine hohe Verlustleistung aufweist. Dies erklärt das schnelle Aufheizen der Transistoren bei 12V. Deshalb kann die Schaltung bis maximal 5V betrieben werden, wodurch jedoch die Kühl- bzw. Heizleistung des Peltier-Elementes enorm abnimmt. | |||
Daher lässt sich zusammenfassend sagen, dass das Projekt erfolgreich durchgeführt und umgesetzt wurde. Auch wenn alles funktioniert, sollte jedoch trotzdem eine H-Brücke mit weniger Verlustleistung verwendet werden, um die optimale Leistungsfähigkeit des Temperaturreglers abrufen zu können. | |||
== Zusammenfassung == | == Zusammenfassung == | ||
=== Lessons Learned === | === Lessons Learned === | ||
Dieses Projekt hat uns in vielen Hinsichten weitergebracht und es hat uns gezeigt auf welche Aspekte bei der Realisierung eines Projektes besonders geachtet werden muss. Von der Planung bis hin zum | Dieses Projekt hat uns in vielen Hinsichten weitergebracht und es hat uns gezeigt auf welche Aspekte bei der Realisierung eines Projektes besonders geachtet werden muss. Von der Planung bis hin zum fertigen Konstrukt, konnten wir an Kenntnissen gewinnen und die bis hier hin im Studium erlernten Grundlagen unter Beweis stellen. Wir haben vor allem gelernt, dass sowohl Kommunikation als auch ein ausgewogenes Zeitmanagement von großer Bedeutung sind. Ohne einen passenden und kontinuierlichen Zeitplan mit Meilensteinen, können zum Ende der Abgabefrist viele Probleme auftauchen, welche auf der einen Seite unerwartet auftreten und auf der anderen Seite deutlich mehr Zeit kosten können, als man eigentlich angenommen hatte. Dabei spielt auch die ständige Kommunikation eine große Rolle, da dadurch ebenfalls Unklarheiten schnell geklärt und den definierten Anforderungen stetig nachgegangen werden können. | ||
Neben diesen Aspekten gewannen wir ebenfalls an Erfahrung im Bereich Sensorik und Aktorik. Wir konnten nicht nur unser Geschick und unseren Umgang mit verschiedenen elektronischen Komponenten erweitern und verfestigen, sondern auch vor allem unser Wissen bei der Wahl geeigneter Sensoren und Bauteile verschärfen. Besonders der durch den verwendeten Temperatur-/Feuchtigkeitssensor konnten wir viele Kenntnisse über die I2C- | Neben diesen Aspekten gewannen wir ebenfalls an Erfahrung im Bereich Sensorik und Aktorik. Wir konnten nicht nur unser Geschick und unseren Umgang mit verschiedenen elektronischen Komponenten erweitern und verfestigen, sondern auch vor allem unser Wissen bei der Wahl geeigneter Sensoren und Bauteile verschärfen. Besonders der durch den verwendeten Temperatur-/Feuchtigkeitssensor konnten wir viele Kenntnisse über die I2C-Schnittstelle erlernen. Auch der gute Umgang mit den Software-Tools SolidWorks, Arduino IDE und Aganty wurde durch dieses Projekt vertrauter und bietet uns nun beim Wiederverwenden dieser oder ähnlicher Programme große Vorteile, da keine Einarbeitung mehr nötig ist. | ||
Außerdem wurde ebenfalls unser Verständnis bei der Planung und Realisierung elektrischer Schaltungen deutlich gesteigert. Durch das eigenständige Verlöten von verschiedenen Elementen und Schaltungen gewannen wir an Übung und Geschick. | Außerdem wurde ebenfalls unser Verständnis bei der Planung und Realisierung elektrischer Schaltungen deutlich gesteigert. Durch das eigenständige Verlöten von verschiedenen Elementen und Schaltungen gewannen wir an Übung und Geschick. | ||
Zeile 373: | Zeile 474: | ||
== Projektunterlagen == | == Projektunterlagen == | ||
=== Projektplan === | === Projektplan === | ||
[[Datei: | [[Datei:Projektplan2.png|800px|mini|zentriert|Abb. 2: Projektplan Gantt-Diagramm]] | ||
=== Projektdurchführung === | === Projektdurchführung === | ||
Zeile 383: | Zeile 482: | ||
== YouTube Video == | == YouTube Video == | ||
Hier finden Sie das YouTube-Video des Projektes: | |||
{{#ev:youtube|https://youtu.be/8y0wL_VSvcI 600 | |}} | |||
== Literatur == | == Literatur == | ||
ZIP-File mit allen Dateien: | |||
[[:Datei:152 Smart Home Temperaturmessung-regelung und Raumfeuchtigkeitsmessung.zip|Zip-File]] | |||
<!-- Fügen Sie diesen Footer hinzu. --> | <!-- Fügen Sie diesen Footer hinzu. --> | ||
---- | ---- | ||
→ zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2023|WS 22/23: Angewandte Elektrotechnik (BSE)]] | → zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2023|WS 22/23: Angewandte Elektrotechnik (BSE)]] |
Aktuelle Version vom 26. Oktober 2023, 21:28 Uhr
Autoren: Johann Kismann & Dominik Koenig
→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)
→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)
→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)
Einleitung
Dieser Artikel beschreibt die Realisierung eines Smart Home's (siehe Abb. 1), welches mit einem Temperatursensor und einem Luftfeuchtigkeitssensor ausgestattet werden soll. Als Grundgerüst soll hierbei ein simuliertes "Haus" dienen, welches aus Plexiglas hergestellt werden soll. Dabei soll die Soll-Temperatur im Vorfeld definiert und mit der aktuell vorliegenden Temperatur anhand des Sensors abgeglichen werden. Damit die Soll-Größe erreicht wird, soll ein Peltier-Modul verwendet werden. Dieses dient zur Kühlung bzw. Erwärmung des Raumes, wobei durch eine Umpolung zwischen diesen beiden Zuständen getauscht werden kann. Des Weiteren dient der Luftfeuchtigkeitssensor zur Messung der sich im Haus befindenden Luftfeuchtigkeit.
Sowohl die Soll-, als auch die gemessene Temperatur und die Raumfeuchtigkeit sollen anschließend auf einem LCD-1602-Display zur Visualisierung ausgegeben werden.
Anforderungen
ID | Inhalt | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|
1 | Auswahl geeigneter Sensorik und Aktoren | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
2 | Erstellen des Plexiglas-Hauses | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
3 | Schnittstelle zwischen Sensorik, Peltier-Element, Display und Programmier-Software erstellen | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
4 | Funktions-Prüfung der Hardware | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
5 | Erstellen eines geeigneten Quellcodes zum Auslesen der Sensoren und zur Ansteuerung der Aktoren | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
6 | Regelkreis zur Regelung der Raumtemperatur realisieren:
|
Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
7 | Erstellen einer geeigneten Schaltung
|
Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
8 | Luftzirkulation im Rauminneren erzeugen | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
9 | Passende Kühlung des Peltier-Elementes generieren | Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
10 | Aufbau der Grundkonstruktion
|
Johann Kismann & Dominik Koenig | 21.12.2022 | Dominik Koenig | 05.01.2023 |
Funktionaler Systementwurf / Technischer Systementwurf
Anhand des Funktionalen Systementwurfes (siehe Abb. 2) lässt sich erkennen, dass durch das Vorgeben einer Soll-Temperatur die Ist-Temperatur geregelt werden soll. Sollte die aktuell vorliegende Temperatur zu weit von der Soll-Größe abweichen, dann soll das Peltier-Element zum Kühlen bzw. Heizen genutzt werden. Ein Wechsel zwischen Kühlen und Heizen soll dabei so erreicht werden, indem eine Umpolung durchgeführt wird. Neben der Temperaturmessung und -regelung soll zusätzlich die Luftfeuchtigkeit gemessen werden. Die Soll-Temperatur und die gemessenen Werte sollen dabei zudem auf einem LCD-Display ausgegeben werden.
Komponentenspezifikation
ID | Komponente | Beschreibung | Bild |
---|---|---|---|
1 | Arduino UNO |
|
|
2 | 1602-LCD Display |
|
|
3 | GY-21 HTU21 Temperatur-/Feuchtigkeitssensor |
|
|
4 | TEC1-12706 Peltier-Modul |
|
|
5 | AMD CPU-Kühler |
|
|
6 | Labornetzgerät |
|
|
7 | Jumper Wire Steckbrücken |
|
|
8 | Kühlrippe |
|
|
9 | Lochrasterplatine | Variation verschiedener Größen:
|
|
10 | Lüfter |
|
|
11 | Hochleistungs-Switch |
|
|
12 | Elektronische Bauelemente |
|
Umsetzung
Reglerauslegung
Bei der Reglerauslegung fällt die Wahl auf einen Zwei-Punkte-Regler (siehe Abbildung 3). Dieser soll hier die Funktion haben, dass die Stellgröße (Peltier-Element), je nach Differenz von Soll- und Ist-Temperatur, so geschaltet wird, damit die gewünschte Temperatur erreicht wird. Die Stellgröße gibt dabei Energie ab, welche die Regelstrecke (Plexiglas-Haus) erwärmt bzw. abkühlt. Dabei müssen jedoch ebenfalls Störgrößen berücksichtigt werden, welche die Ist-Temperatur beeinflussen. Diese werden hier als Stör-Energie bezeichnet, da durch äußere Einflüsse Energie ab- bzw. zugeführt werden kann. Durch die Rückführung der gemessenen momentanen Temperatur soll somit der Regelkreis geschlossen und die Soll-Größe nach einer bestimmten Zeit erreicht werden.
Umsetzung Software
Anfänglich wurde versucht Matlab-Simulink zu verwenden, doch es konnte dabei keine Kommunikation zwischen dem Sensor und der dazugehörigen I2C-Schnittstelle erstellt werden. Daher wurde für die Umsetzung der Software die Arduino IDE verwendet. Diese bietet im Umgang mit Sensoren viele Möglichkeiten diese Auszulesen und Auszuwerten. Im Folgenden ist der Quelltext abgebildet, welcher mit dem genannten Programm erstellt wurde:
In diesem Quelltext werden nach der Initialisierung der Sensorik und den entsprechenden Pin-Ports die Rückgabewerte des HTU21-Sensors ausgelesen und ausgewertet. Dabei wird die Auflösung des Anschlusses A1 (Potentiometer, Wunsch-Temperatur) am Arduino Board (0-1023) durch die Funktion map() auf ein Intervall von 0-40 skaliert, damit diese Werte besser weiterverarbeitet werden können. Somit kann mithilfe eines Potentiometers eine Temperatur zwischen 0°C und 40°C eingestellt werden. Die Rückgabewerte beinhalten dabei die gemessene Raumfeuchtigkeit und die momentan vorliegende Temperatur. Diese werden darauf mit der Funktion Anzeige_Bildschirm() auf dem LCD-Display kontinuierlich dargestellt. Dabei wurde einprogrammiert, dass bei jeder Änderung der Soll-Temperatur, diese auch auf dem Display für ein paar Sekunden angezeigt werden soll. Je nach dem, wie hoch die Differenz von Soll- und Ist-Temperatur dann ist, wird entschieden wie das Peltier-Element angesteuert werden soll. Beträgt der Betrag der Differenz weniger als 0,2, so passiert nichts. Weicht diese jedoch um mehr als 0,2 bzw. um weniger als -0,2 von dem Soll-Wert ab, so soll dementsprechend geheizt bzw. gekühlt werden. Wird eines dieser beiden Ereignisse ausgeführt, so soll zudem ebenfalls der Lüfter für die Luftzirkulation eingeschaltet werden. Erreicht der Innen-Raum darauf nach einer bestimmten Zeit die gewünschte Temperatur, so soll ebenfalls das Peltier-Element ausgeschaltet werden.
Umsetzung Konstruktion
Wie in Abbildung... zu sehen ist, wurde als Fundament eine Holzplatte verwendet. Darauf ist zum einen das Plexiglas-Haus und zum anderen das Holz-Haus für den CPU-Kühler befestigt. Das Plexiglas-Haus soll dabei die Regelstrecke realisieren, worin die gewünschte Temperatur geregelt werden soll. Eine Seite dieses Hauses ist zudem mit Scharnieren versehen, wodurch es möglich ist, Störgrößen einfließen zu lassen bzw. an den Sensor und dem Windkanal zu gelangen. Außerdem wurden die restlichen Seiten des Hauses miteinander verklebt und über drei Winkel an der Grundplatte befestigt. Damit ist die Konstruktion vorgefertigt und es kann mit der Montage der Hardware-Komponenten begonnen werden.
Luftzirkulation (Windkanal)
Für eine optimale Durchströmung der Kühlrippen wurde ein 3D gedruckter Windkanal erstellt (siehe Abbildung 4, 5). Dieser ermöglicht es den Luftstrom von dem 80x80mm großen Lüfter auf eine 30x40mm große Fläche zu reduzieren. Dadurch kann der Luftstrom optimal von den Rippen abgekühlt bzw. erwärmt werden, wodurch die thermische Energie der Rippen entnommen wird und sich somit deutlich schneller eine Temperaturänderung ergibt.
Umsetzung Hardware
H-Brücke
Für die Ansteuerung des Peltier-Elementes wird eine sog. H-Brücke verwendet (siehe Abbildung 7). Diese ermöglicht es durch zwei Steuersignale die Polarität des Peltier-Elementes zu ändern. Hierfür werden zwei PNP- und zwei NPN-Transistoren mit jeweils Vorwiderständen von 330 Ohm verwendet. Die Anordnung der elektronischen Elemente kann aus der Abbildung 6 entnommen werden.
Leistungsschaltung
Auf der Leistungsschaltung ist ein Hochleistungs-Switch integriert, woran ein separates Netzteil für die Spannungsversorgung der zwei Lüfter und dem Peltier-Element angeschlossen ist (siehe Abbildung 8, 9). Das Steuersignal x1 wird hierbei abgegriffen und regelt die Steuerung des Hochleistungs-Switches. Für das Anschließen der beiden Lüfter sind die beiden Ausgänge L1 und L2 vorgesehen. Außerdem werden die Signale x2 und x3 hierbei ebenfalls durch Klemmen an die H-Brücke weitergeleitet.
Steuerschaltung
Die Steuerschaltung wird über 6 Pins mit dem Arduino UNO verbunden (siehe Abbildung 10, 11). Darunter sind die Steuersignale x1, x2, x3, sowie die Versorgungsspannung für die Sensorik enthalten. Es wird eine Schnittstelle für die Leistungsschaltung bereitgestellt, wohin die Steuersignale übermittelt werden können. Hinzukommend werden die Signale x2 und x3 zur Ansteuerung der LEDs verwendet. Hiermit wird angezeigt, in welchem Zustand sich die Schaltung befindet. Leuchtet die rote LED, wird gerade geheizt und leuchtet die blaue LED, dann wird momentan gekühlt. Des Weiteren verfügt die Steuerschaltung über zwei weitere Schnittstellen, wodurch die Versorgungsspannung Vcc und die Masse GND für die Leistungsschaltung und LED-Anzeige bereitgestellt wird. Der sechste Pin ist mit dem Eingang A1 des Arduino UNOs verbunden, womit das Steuersignal der Wunsch-Temperatur durch das Potentiometer übermittelt wird.
Nachdem alle Lochrasterplatinen bestückt wurden, werden diese mit M2-Schrauben und passenden Muttern an dem Plexiglas-Haus befestigt. Nun ist das Gesamtkonstrukt vollständig und es kann begonnen werden finale Tests durchzuführen.
Komponententest
Nachdem alle Komponenten bestellt und geliefert wurden, wurde jedes Teil zuerst auf äußere Beschädigungen geprüft.
Sensorik
Alle Sensoren wurden nach der ersten optischen Kontrolle mittels der Arduino IDE auf ihr Funktionstüchtigkeit geprüft und getestet. Dazu wurden die Sensoren mittels Jumper Steckbrücken mit dem Arduino UNO und dieser wiederum mit einer USB-Verbindung mit einem PC verbunden. Ist die Stromversorgung und Datenübertragung damit sichergestellt, werden diverse Testprogramme ausgeführt. Dabei wurden einerseits eigene Quelltexte geschrieben und andererseits vorgeschriebene Programme der Arduino IDE verwendet. Alle Sensoren haben keine Schäden oder Fehler aufgewiesen, weshalb der Inbetriebnahme nichts im Wege steht.
Aktorik
Die Aktoren wurden, je nach Betriebsspannung, durch das Labornetzgerät mit der passenden Versorgungsspannung versorgt und dabei wurde darauf geachtet ob Fehler bei der Verwendung auftreten. Auch hier traten keine Auffälligkeiten auf, wodurch die Komponenten zur Anwendung freigegeben wurden.
Ergebnis
Nachdem die Realisierung und Montage der Schaltung abgeschlossen war, konnten die ersten Tests des Gesamtsystems durchgeführt werden. Aus Sicherheitsgründen wurde zuerst eine Versorgungsspannung des Netzgerätes von 5V angeschlossen. Bei diesem Testversuch wurde die korrekte Ansteuerung der Lüfter sowie das Umpolen des Peltier-Elementes getestet. Dabei traten keinerlei Fehler auf und die Schaltungen waren somit korrekt. Unter Berücksichtigung des positiven Testversuches wurde nun die Versorgungsspannung, wie bereits bei den Komponententests geprüft, auf 12V angehoben. Hiebei fiel jedoch relativ schnell auf, dass sich ein ungewöhnlicher Geruch entwickelte, woraufhin die Versorgungsspannung abrupt unterbrochen wurde. Danach konnte festgestellt werden, dass dieses Verhalten von den Transistoren der H-Brücke abstammt und diese ebenfalls eine hohe Eigentemperatur aufwiesen. Unter dieser Erkenntnisnahme wurde die Schaltung mit 5V erneut getestet und die Spannung an dem Peltier-Element gemessen. Hierbei fiel auf, dass bereits bei 5V nur eine Ausgangsspannung von 3,3V für das Peltier-Element ausgeht. Dieser Spannungsverlust lässt darauf schließen, dass die konstruierte H-Brücke eine hohe Verlustleistung aufweist. Dies erklärt das schnelle Aufheizen der Transistoren bei 12V. Deshalb kann die Schaltung bis maximal 5V betrieben werden, wodurch jedoch die Kühl- bzw. Heizleistung des Peltier-Elementes enorm abnimmt.
Daher lässt sich zusammenfassend sagen, dass das Projekt erfolgreich durchgeführt und umgesetzt wurde. Auch wenn alles funktioniert, sollte jedoch trotzdem eine H-Brücke mit weniger Verlustleistung verwendet werden, um die optimale Leistungsfähigkeit des Temperaturreglers abrufen zu können.
Zusammenfassung
Lessons Learned
Dieses Projekt hat uns in vielen Hinsichten weitergebracht und es hat uns gezeigt auf welche Aspekte bei der Realisierung eines Projektes besonders geachtet werden muss. Von der Planung bis hin zum fertigen Konstrukt, konnten wir an Kenntnissen gewinnen und die bis hier hin im Studium erlernten Grundlagen unter Beweis stellen. Wir haben vor allem gelernt, dass sowohl Kommunikation als auch ein ausgewogenes Zeitmanagement von großer Bedeutung sind. Ohne einen passenden und kontinuierlichen Zeitplan mit Meilensteinen, können zum Ende der Abgabefrist viele Probleme auftauchen, welche auf der einen Seite unerwartet auftreten und auf der anderen Seite deutlich mehr Zeit kosten können, als man eigentlich angenommen hatte. Dabei spielt auch die ständige Kommunikation eine große Rolle, da dadurch ebenfalls Unklarheiten schnell geklärt und den definierten Anforderungen stetig nachgegangen werden können.
Neben diesen Aspekten gewannen wir ebenfalls an Erfahrung im Bereich Sensorik und Aktorik. Wir konnten nicht nur unser Geschick und unseren Umgang mit verschiedenen elektronischen Komponenten erweitern und verfestigen, sondern auch vor allem unser Wissen bei der Wahl geeigneter Sensoren und Bauteile verschärfen. Besonders der durch den verwendeten Temperatur-/Feuchtigkeitssensor konnten wir viele Kenntnisse über die I2C-Schnittstelle erlernen. Auch der gute Umgang mit den Software-Tools SolidWorks, Arduino IDE und Aganty wurde durch dieses Projekt vertrauter und bietet uns nun beim Wiederverwenden dieser oder ähnlicher Programme große Vorteile, da keine Einarbeitung mehr nötig ist.
Außerdem wurde ebenfalls unser Verständnis bei der Planung und Realisierung elektrischer Schaltungen deutlich gesteigert. Durch das eigenständige Verlöten von verschiedenen Elementen und Schaltungen gewannen wir an Übung und Geschick.
Projektunterlagen
Projektplan
Projektdurchführung
Nachdem alle Anforderungen des Projektes definiert wurden, starten die Planung der Umsetzung. Dabei geht es vor allem darum, geeignete Komponenten auszuwählen, welche am besten anzuwenden sind. Wurde sowohl Sensorik als auch Aktorik ausgewählt und ggf. bestellt, sollen zunächst alle Komponenten auf ihre Funktionsfähigkeit geprüft werden. So können bereits im Voraus Fehler gefunden und ebenfalls vermieden werden. Stehen alle benötigten Komponenten und Bauteile zur Verfügung, kann dann mit der Realisierung des eigentlichen Projektes begonnen werden. Zuerst soll dabei die Software und die dazugehörige Elektronik umgesetzt werden, da diese voraussichtlich den größten Aufwand betragen wird. Hier soll in kleinen Schritten gearbeitet werden, damit jeder Abschnitt für sich geprüft werden kann, damit am Ende alle einzelnen Systeme in ein Gesamtsystem zusammengeführt werden können. Ist die Umsetzung der Software und Elektronik abgeschlossen, kann mit dem Bau der Grundkonstruktion begonnen werden, wonach daran anschließend alle elektronischen Komponenten befestigt und eingebunden werden.
Nach Beendigung der Umsetzung der Hard- und Software kann das Projekt, falls nötig, weiter getestet und optimiert werden. Ist auch dies beendigt, wird letztlich ein YouTube-Video erstellt, in dem alle wichtigen Komponenten kurz erläutert werden und auf die Funktionsweise des Projektes eingegangen wird.
YouTube Video
Hier finden Sie das YouTube-Video des Projektes:
Literatur
ZIP-File mit allen Dateien: Zip-File
→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)