Smart Home: Temperaturmessung/-reglung & Raumfeuchtigkeitsmessung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Änderung 114406 von Oliver Aust (Diskussion) rückgängig gemacht.)
Markierung: Rückgängigmachung
 
(73 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 19: Zeile 21:


{| class="wikitable"
{| class="wikitable"
|+ style = "text-align: left"|Tabelle 1: Anforderungen des LED-Cube's
|+ style = "text-align: left"|Tabelle 1: Anforderungsliste
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Inhalt
! style="font-weight: bold;" | Inhalt
Zeile 109: Zeile 111:


== Funktionaler Systementwurf / Technischer Systementwurf ==
== Funktionaler Systementwurf / Technischer Systementwurf ==
Anhand des Funktionalen Systementwurfes (siehe Abb. 1) 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.  
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|700pxx900px|mini|zentriert|Abb. 1: Funktionaler Systementwurf]]
[[Datei:Funktionaler Systementwurf2.png|700px|mini|zentriert|Abb. 2: Funktionaler Systementwurf]]


== Komponentenspezifikation ==
== Komponentenspezifikation ==
Zeile 159: Zeile 161:
| AMD CPU-Kühler  
| AMD CPU-Kühler  
|  
|  
*Betriebsspannung: 12V
*RGB-Beleuchtung
*RGB-Beleuchtung
|[[Datei:AMD CPU-Kühler.jpg|rahmenlos|mini|zentriert|100px]]
|[[Datei:AMD CPU-Kühler.jpg|rahmenlos|mini|zentriert|100px]]
Zeile 178: 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:
*Variation verschiedener Größen
*3x 70X50mm
*1x 40x60mm
|[[Datei:Lochrasterplatine.png|rahmenlos|mini|zentriert|100px]]
|[[Datei:Lochrasterplatine.png|rahmenlos|mini|zentriert|100px]]
|-
|-
Zeile 204: 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 210: Zeile 221:
== Umsetzung ==
== Umsetzung ==


=== Reglerausrichtung ===
=== 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 SW ===
[[Datei:Regelkreis2.png|700px|mini|zentriert|Abb. 3: Regelkreis]]
Anfänglich wurde versucht Matlab-Simulink zu verwenden, doch es konnte dabei keine Schnittstelle zwischen dem Sensor und der dazugehörigen I2C-Kommunikation 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:


=== 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:


<div style="width:1100px; height:800px; overflow:scroll; border: hidden">
<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>


#define Bildschirm_Helligkeit A0
// 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;   // variable to store temperature
// Variablen für Sensor
float humidity; // variable to store hemidity
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 state_Anzeige = 0;
int zustand_Anzeige = 0;
 
float dif_temp = 2;


// 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();   // begin Wire(I2C)
void setup() {
   Serial.begin(9600); // begin Serial
  // Initialisierung
 
   Wire.begin();  
  // set up the LCD's number of columns and rows:
   Serial.begin(9600);  
   lcd.begin(16, 2);
   lcd.begin(16, 2);
  analogWrite(Bildschirm_Helligkeit,120);


   pinMode(3, OUTPUT);
   pinMode(x1, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(x2, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(x3, OUTPUT);
}
}


void loop() {   
 
void loop() {
  // Steuerung Display-Anzeige  
   zeit = zeit + 1;
   zeit = zeit + 1;
   if(zeit > 20)
   if(zeit > 20)
   {
   {
     state_Anzeige =  0 ; //(state_Anzeige + 1) % 2;
     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)
   {
   {
     state_Anzeige = 1;
     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();   
   humidity = sht.getHumidity();  
   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();
 
   dif_temp = temp - w_temp;
   // 2-Punkte Regler
   if(dif_temp >= 2)
   switch (zustand_pelti)
   {
   {
     Serial.println("Kühlen");
     case 0:
     digitalWrite(3, HIGH);
      // Temperatur passt
     digitalWrite(4, LOW);
      digitalWrite(x1, LOW);
    digitalWrite(5, HIGH);
      digitalWrite(x2, LOW);
      digitalWrite(x3, LOW);
 
      if(temp < w_temp - dif_temp)
      {
        zustand_pelti = 1;
      }
      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;
   }
   }
  else if (dif_temp <= -2)
    // Ausgabe Serielle-Schnittselle
  {
     Serial.println(zustand_pelti);
    Serial.println("Heizen");
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW);
  }
  else
  {
    Serial.println("Aus");
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
  }
     Serial.println(dif_temp);
     Serial.println(temp);
     Serial.println(temp);
     Serial.println(w_temp);
     Serial.println(w_temp);
Zeile 312: Zeile 360:
void Anzeige_Bildschirm()
void Anzeige_Bildschirm()
{
{
     if(state_Anzeige == 0)
     if(zustand_Anzeige == 0)
   {
   {
    // Aktuelle Temperatur wird angezeigt
     lcd.clear();
     lcd.clear();
     lcd.setCursor(0, 0);
     lcd.setCursor(0, 0);
Zeile 325: Zeile 374:
     lcd.print("A-Luftf:");
     lcd.print("A-Luftf:");
     lcd.setCursor(8, 1);
     lcd.setCursor(8, 1);
     lcd.print(humidity);
     lcd.print(luftfeuchtigkeit);
     lcd.setCursor(14, 1);
     lcd.setCursor(14, 1);
     lcd.print("%");
     lcd.print("%");
   }
   }
   else if (state_Anzeige == 1)
   else if (zustand_Anzeige == 1)
   {
   {
    // Wunsch-Temperatur wird angezeigt
     lcd.clear();
     lcd.clear();
     lcd.setCursor(0, 0);
     lcd.setCursor(0, 0);
Zeile 344: 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 werden die Eingabewerte durch die Funktion val() auf ein Intervall von 0-40 skaliert, damit diese Werte besser weiterverarbeitet werden können. 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. Mithilfe eines Potentiometers kann dann eingestellt werden, welche gewünschte Temperatur erreicht bzw. vorliegen soll. 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-Modul angesteuert werden soll. Beträgt der Betrag der Differenz weniger als 2, so passiert nichts. Weicht diese jedoch um mehr als 2 bzw. um weniger als -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.
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 HW ===
=== Umsetzung Konstruktion ===
Wie in Abbildung... zu sehen ist, wurde als Fundament eine Holzplatte verwendet. Darauf ist auf der einen Seite das Plexiglas-Haus und auf der anderen Seite das Holz-Haus für den CPU-Kühler mit befestigt. Dazu wurden Winkel verwendet, die mit der Grundplatte verschraubt wurden. Auch eine Tür wurde dabei im Haus eingebunden, um ebenfalls die Möglichkeit zu haben, im Inneren des Hauses, falls nötig, Änderungen vornehmen zu können. Die Kühl- bzw. Wärmerippe, welche mit einer Lotpaste und durch Kabel auf dem Kühler befestigt ist, wird dabei durch eine rechteckige Aussparung an der Rückseite des Plexiglas-Hauses hinein geführt. Durch einen im Innenraum angebrachten Lüfter, welcher in Richtung der Rippe bläst, kann somit zusätzlich eine Luftzirkulation realisiert werden. Dieser ist zudem mit einem 3D gedrucktem Gehäuse angebracht. Dieses Gehäuse hat dabei außerdem ebenfalls die Funktion den aus dem Lüfter strömenden Wind möglichst genau auf die Rippen zu fokussieren. Dadurch soll sowohl die Abkühlung, als auch die Erwärmung der Temperatur im simuliertem Hause möglichst schnell und effizient durchgeführt werden.
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.  
Der Arduino und die restliche Elektronik ist, wie in der Abbildung zu erkennen ist, an dem Holz- und Plexiglas-Kasten angebracht. Dabei wurde besonders darauf geachtet, dass das Display und die Einstellung der Wunsch-Temperatur möglichst bedienungsfreundlich und anschaulich an der Seite des Plexiglas-Hauses befestigt werden. Der Sensor...
 
=== 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 360: 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 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 können und auf der anderen Seite deutlich mehr Zeit kosten, 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.  
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-Kommunikation erlernen. Auch der gute Umgang mit den Software-Tools SolidWorks, Arduino IDE, Multisim 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.
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 371: Zeile 474:
== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
[[Datei:Projektplan Gantt.png|800px|mini|zentriert|Abb. 2: Projektplan Gantt-Diagramm]]
[[Datei:Projektplan2.png|800px|mini|zentriert|Abb. 2: Projektplan Gantt-Diagramm]]
 
[[Datei:Projektplan Dashboard.png|800px|mini|zentriert|Abb. 3: Projektplan Dashboard]]


=== Projektdurchführung ===
=== Projektdurchführung ===
Zeile 381: 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

Abb. 1: Gesamtkonstruktion

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

Tabelle 1: Anforderungsliste
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:
  1. Geeigneten Regler definieren
  2. Messeinrichtung auswählen/einbinden (Temperatursensor)
  3. Passende Regelstrecke realisieren (Peltier-Element)
Johann Kismann & Dominik Koenig 21.12.2022 Dominik Koenig 05.01.2023
7 Erstellen einer geeigneten Schaltung
  1. Realisieren einer H-Brücke zur Umpolung des Peltier-Elementes
  2. LED-Anzeige zum Status, ob gekühlt oder geheizt wird
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
  1. Ausreichende Befestigung der Elektronik
  2. Einbau einer Klappe/Tür für den Raum
  3. Befestigung des Plexiglas-Hauses
  4. Optimierung der Luftzirkulation
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.

Abb. 2: Funktionaler Systementwurf

Komponentenspezifikation

Tabelle 2: Komponentenliste
ID Komponente Beschreibung Bild
1 Arduino UNO
  • ATMega328P Prozessor
  • Versorgungsspannung: 7V-12V
  • Betriebsspannung: 5V
  • Pin-Belegung: 14 digitale Ein-/Ausgänge und 6 analoge Eingänge
mini
mini
2 1602-LCD Display
  • Betriebsspannung: 5V
  • Hintergrundbeleuchtung: ED, Weiß
  • Auflösung: 16 Zeichen x 2 Zeilen
mini
mini
3 GY-21 HTU21 Temperatur-/Feuchtigkeitssensor
  • Kompatibel mit den meisten 3,3V und 5V Mikrocontrollern
  • Stromstärke: 150µA
  • Temperatur-Messbereich: -40°C-85°C +-1°C
  • Luftfeuchtigkeits-Messbereich: 0-100% +-3%
  • Kommunikation: I2C
mini
mini
4 TEC1-12706 Peltier-Modul
  • Versorgungsspannung: 12V
  • Leistung: 60W
  • Kühlen und Erhitzen durch Umpolung möglich
mini
mini
5 AMD CPU-Kühler
  • Betriebsspannung: 12V
  • RGB-Beleuchtung
mini
mini
6 Labornetzgerät
  • Spannungsversorgung 0-30V
mini
mini
7 Jumper Wire Steckbrücken
  • Variationen von männlichen und weiblichen Kontakten
mini
mini
8 Kühlrippe
  • Material: Aluminium
  • Maße: 40x40x20mm
mini
mini
9 Lochrasterplatine Variation verschiedener Größen:
  • 3x 70X50mm
  • 1x 40x60mm
mini
mini
10 Lüfter
  • Maße: 80x80mm
  • Betriebsspannung: 12V
mini
mini
11 Hochleistungs-Switch
  • Eingangsspannung: 5-36V
  • Strom: 15A
  • Leistung: 400W
mini
mini
12 Elektronische Bauelemente
  • 2x TIP142 NPN-Transisor
  • 2x TIP147 PNP-Transisor
  • 2x 10kOhm Potentiometer
  • 7x 330Ohm Drahtwiderstand
  • 1x blaue LED
  • 1x rote LED
mini
mini

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.

Abb. 3: Regelkreis

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:

#include <SHT21.h> 
#include <LiquidCrystal.h>

// Eingang Potentiometer Wunsch-Temperatur
#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; 

// Variablen für Sensor
float temp;
float luftfeuchtigkeit; 

// Variablen Wunsch-Temperatur
int w_temp = 0;
int w_temp_alt = 0;
int val;
float dif_temp = 0.2;
int zustand_pelti = 0;

// Varialben für Display
int zeit = 0;
int zustand_Anzeige = 0;

// Anschluss belegung LCD 1602 Display
const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);


void setup() {
  // Initialisierung
  Wire.begin(); 
  Serial.begin(9600); 
  lcd.begin(16, 2);

  pinMode(x1, OUTPUT);
  pinMode(x2, OUTPUT);
  pinMode(x3, OUTPUT);
}


void loop() {
  // Steuerung Display-Anzeige  
  zeit = zeit + 1;
  if(zeit > 20)
  {
    zustand_Anzeige =  0 ; //(state_Anzeige + 1) % 2;
  }
  if(zeit > 400)
  {
    zeit = 21;
  }
  if(w_temp != w_temp_alt)
  {
    zustand_Anzeige = 1;
    zeit = 0;
    w_temp_alt = w_temp;
  }

  // Auslesen Sensorwerte
  temp = sht.getTemperature();  
  luftfeuchtigkeit = sht.getHumidity(); 

  // Wunsch-Temperatur von 0°C bis 40°C
  val = analogRead(Pin_W_Temp);
  w_temp = map(val, 0, 1023, 0, 40);

  // Anzeige Funktion
  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;
      }
      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(temp);
    Serial.println(w_temp);
    Serial.println("");
}

void Anzeige_Bildschirm()
{
    if(zustand_Anzeige == 0)
  {
    // Aktuelle Temperatur wird angezeigt
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("A-Temp:");
    lcd.setCursor(8, 0);
    lcd.print(temp);
    lcd.setCursor(14, 0);
    lcd.print("\337C");

    lcd.setCursor(0, 1);
    lcd.print("A-Luftf:");
    lcd.setCursor(8, 1);
    lcd.print(luftfeuchtigkeit);
    lcd.setCursor(14, 1);
    lcd.print("%");
  }
  else if (zustand_Anzeige == 1)
  {
    // Wunsch-Temperatur wird angezeigt
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Wunsch-Temp:");
    lcd.setCursor(0, 1);
    lcd.print(w_temp);
    lcd.setCursor(3, 1);
    lcd.print("\337C"); 
  }
}


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.

Abb. 4: Windkanal-CAD
Abb. 5: Windkanal

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.

Abb. 6: Schaltplan-H-Brücke
Abb. 7: H-Brücke

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.

Abb. 8: Schaltplan-Leistungsschaltung
Abb. 9: Leistungsschaltung

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.

Abb. 10: Schaltpan-Steuerschaltung
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

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

Abb. 2: Projektplan Gantt-Diagramm

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)