Smart Home: Temperaturmessung/-reglung & Raumfeuchtigkeitsmessung

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

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, sollen zwei Peltier-Elemente verwendet werden, wovon das eine zum Erwärmen und das andere zum Abkühlen genutzt werden soll. 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: Anforderungen des LED-Cube's
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. 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. Die Soll-Temperatur und die gemessenen Werte sollen dabei zudem auf einem LCD-Display ausgegeben werden.

Abb. 1: Schematischer System-Ablaufplan

Komponentenspezifikation

Mechanische Komponenten

Aluminium-Kühlkörper

Lüfter

Windkanal

  • 3D-Druck mit Polylactid

Lochplatten Platinen

Elektrische Komponenten

LCD-Display

Peltier-Modul TEC-12706

  • Versorgungsspannung: 12V
  • Leistung: 60W
  • Kühlen und Erhitzen durch Umpolung möglich

CPU-Kühler

Temperatur-/Luftfeuchtigkeitssensor GY-21 HTU21

  • Kompatibel mit den meisten 3,3V und 5V Mikrocontrollern
  • Stromstärke: 150µA
  • Temperatur-Messbereich: -40°C-85°C
  • Temperatur-Genauigkeit: +-1°C
  • Luftfeuchtigkeits-Messbereich: 0-100%
  • Luftfeuchtigkeit-Genauigkeit: +-3%
  • Kommunikation: I2C

H-Brücke

  • 2x NPN-Transistor
  • 2x PNP-Transistor
  • 4x Drahtwiderstand

Arduino Uno

  • ATMega328P Prozessor
  • Versorgungsspannung: 7V-12V
  • Betriebsspannung: 5V
  • Pin-Belegung: 14 digitale Ein-/Ausgänge und 6 analoge Eingänge

Umsetzung (HW/SW)

Umsetzung SW

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.


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

#define Bildschirm_Helligkeit A0
#define Pin_W_Temp A1 

SHT21 sht; 

float temp;   // variable to store temperature
float humidity; // variable to store hemidity

int w_temp = 0;
int w_temp_alt = 0;

int val;

int zeit = 0;
int state_Anzeige = 0;

float dif_temp = 2;

const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() { 
  Wire.begin();   // begin Wire(I2C)
  Serial.begin(9600); // begin Serial
  
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  analogWrite(Bildschirm_Helligkeit,120);

  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
}

void loop() {  
  zeit = zeit + 1;
  if(zeit > 20)
  {
    state_Anzeige =  0 ; //(state_Anzeige + 1) % 2;
  }

  if(zeit > 400)
  {
    zeit = 21;
  }

  if(w_temp != w_temp_alt)
  {
    state_Anzeige = 1;
    zeit = 0;
    w_temp_alt = w_temp;
  }

  temp = sht.getTemperature();  
  humidity = sht.getHumidity(); 

  val = analogRead(Pin_W_Temp);
  w_temp = map(val, 0, 1023, 0, 40);

  Anzeige_Bildschirm();
 
  dif_temp = temp - w_temp;
  if(dif_temp >= 2)
  {
    Serial.println("Kühlen");
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);
  }
  else if (dif_temp <= -2)
  {
    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(w_temp);
    Serial.println("");
}

void Anzeige_Bildschirm()
{
    if(state_Anzeige == 0)
  {
    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(humidity);
    lcd.setCursor(14, 1);
    lcd.print("%");
  }
  else if (state_Anzeige == 1)
  {
    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"); 
  }
}


Umsetzung HW

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. 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...

Komponententest

Sensorik

Aktorik

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Abb. 2: Projektplan Gantt-Diagramm
Abb. 3: Projektplan Dashboard

Projektdurchführung

YouTube Video

Weblinks

Literatur


→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)