Hausautomation: Unterschied zwischen den Versionen
| Zeile 256: | Zeile 256: | ||
Die Abbildung 19 zeigt der Schaltplan der Bewegungsmelder und Servo Motor mit Arduino | Die Abbildung 19 zeigt der Schaltplan der Bewegungsmelder und Servo Motor mit Arduino | ||
[[Datei:Arduino | [[Datei:Arduino Schaltung neu.png|500px|thumb|left|Abbildung 19: Schaltplan Bewegungsmelder und Servo]] | ||
<br> | <br> | ||
Aktuelle Version vom 21. Januar 2026, 15:11 Uhr
Autoren: Andreas Werning, Barinder Singh, Marvin Flach, Oluwatobiloba Oguntona
Betreuer: Prof. Michael Wibbeke & Marc Ebmeyer
Wintersemester: 2025/2026
Fachsemester: 7
→ zurück zur Übersicht: Praktikum Produktionstechnik


Einleitung
Im Rahmen des Praktikums im Bereich Produktionstechnik im siebten Semester des Mechatronik-Studiengangs an der HSHL wird ein Smart-Home-System entwickelt, das mit Hilfe einer speicherprogrammierbaren Steuerung (SPS) automatisierte Funktionen im Modellhaus realisiert. Ziel des Projekts ist es, ein intelligentes System zu schaffen, das die Temperatur im Haus automatisch reguliert und darüber hinaus Aufgaben wie z. B. das automatische Türöffnen realisiert. Die Entwicklung orientiert sich am V-Modell, mit klar definierten Schritten von der Anforderungsanalyse über den Entwurf bis hin zur Implementierung und Tests.
Aufgabenstellung und Zielsetzung
Aufgabe des Projekts ist die Planung, Implementierung und Inbetriebnahme eines automatisierten Hausmodells auf Basis der SPS. Hierfür sind geeignete Sensoren und Aktoren auszuwählen, anzuschließen und über eine Steuerungslogik zu verknüpfen. Die Steuerung soll insbesondere eine automatische Temperaturregelung ermöglichen und weitere definierte Funktionen, wie das Öffnen und Schließen einer Tür, zuverlässig ausführen. Ziel ist es, ein funktionsfähiges Gesamtsystem zu realisieren, das die definierten Anforderungen erfüllt, erfolgreich getestet wurde und durch eine vollständige technische Dokumentation nachvollziehbar beschrieben ist.
Vorgehensweise nach V-Modell
Das V-Modell (vgl. Abbildung 1) ist eine grafische Darstellung des Lebenszyklus einer Systementwicklung. Es wird verwendet, um strenge Entwicklungslebenszyklusmodelle und Projektmanagementmodelle zu erstellen. Diese Struktur wurde verwendet, da sie die durchzuführenden Aktivitäten und die Ergebnisse beschreibt, die während der Produktentwicklung erzielt werden müssen.

Anforderungsdefinition
In diesem Abschnitt werden die Anforderungen des Projekts werden klar dokumentiert und in verschiedene Kategorien gegliedert. Die Anforderungen für dieses Projekt unterteilen sich in die Punkte: Aufbau, Software & Schnittstellen, Geometrie, Dokumentation.
| Nr. | Kategorie | Anforderung | Priorität |
|---|---|---|---|
| 1 | System | Das Modellhaus muss zentral über die SPS Phoenix Contact AXC 1050 gesteuert werden | Hoch |
| 2 | Sensorik | Das System muss Temperatursensor zur Erfassung der Raumtemperatur besitzen | Hoch |
| 3 | Sensorik | Ein Bewegungsmelder muss Bewegungen im Erfassungsbereich erkennen können | Hoch |
| 4 | Aktorik | Heiz- bzw. Lüftungselemente müssen durch die SPS ansteuerbar sein | Hoch |
| 5 | Aktorik | Ein Servomotor muss zum Öffnen und Schließen der Tür eingesetzt werden | Hoch |
| 6 | Aktorik | Beim Öffnen der Tür muss die LED eingeschaltet sein, beim Schließen der Tür muss die LED ausgeschaltet sein. | Hoch |
| 7 | Regelung | Die Temperaturregelung muss automatisch in Abhängigkeit vom Messwert erfolgen | Hoch |
| 8 | Steuerung | Die Steuerungslogik muss in einer SPS-Programmiersprache umgesetzt werden | Hoch |
| 9 | Funktion | Wird eine Bewegung erkannt, muss die Tür automatisch geöffnet werden | Hoch |
| 10 | Sicherheit | Fehlfunktionen (z. B. Sensorausfall) müssen im Programm erkannt werden | Hoch |
| 11 | Test | Alle Funktionen müssen in einem Systemtest überprüft werden | Hoch |
| 12 | Dokumentation | Schaltpläne, Programmcode und Testergebnisse müssen dokumentiert werden | Hoch |
Fuktionaler Systementwurf
Das Hausautomationssystem besteht aus einer zentralen speicherprogrammierbaren Steuerung (SPS) sowie einem Arduino Uno-Mikrocontroller (siehe Abbildung 2). Die SPS übernimmt die Erfassung und Verarbeitung der temperaturrelevanten Signale und steuert die angeschlossenen Aktoren. Hierzu misst ein NTC-Sensor kontinuierlich die Umgebungstemperatur, welche von der SPS ausgewertet wird, um das Peltier-Element zur Heiz- oder Kühlfunktion anzusteuern. Zusätzlich schaltet die SPS die Lampen zur Beleuchtung des Modellhauses. Für die Anwesenheits- und Türsteuerung wird ein Arduino eingesetzt, an den ein Bewegungsmelder angeschlossen ist. Erkennt der Bewegungsmelder eine Bewegung, steuert der Arduino einen Servomotor an, der das Öffnen und Schließen der Tür übernimmt. Die SPS und der Arduino arbeiten dabei funktional zusammen, sodass ein automatisierter, ereignisgesteuerter Betrieb des Systems gewährleistet ist.

Komponentenspezifikation
In diesem Abschnitt werden die Aufgaben und allgemeine Informationen der ausgewählten Komponenten beschrieben.
| Komponenten | Beschreibung | Abbildung |
|---|---|---|
| Arduino UNO R3 | Der Arduino Uno ist ein weit verbreitetes und besonders einsteigerfreundliches Mikrocontroller-Board, das sich ideal für Lernzwecke, Prototyping und erste Elektronikprojekte eignet. Das Keyestudio Uno R3, vollständig kompatibel mit dem Arduino Uno R3, basiert auf dem ATmega328P-PU mit 16 MHz, arbeitet mit 5 V und bietet 14 digitale Ein-/Ausgänge (davon 6 mit PWM) sowie 6 analoge Eingänge. Mit 32 KB Flash, 2 KB SRAM und 1 KB EEPROM sowie USB-Anschluss, Strombuchse und ICSP-Headern enthält das Board alles Nötige für den Einstieg. Dank der großen Arduino-Community, umfangreicher Dokumentation und zahlreicher Erweiterungen lassen sich Projekte schnell, einfach und flexibel umsetzen. (zum Datenblatt) [2] | |
| Servomotor SG90 | Ein Micro-Servo ist ein sehr kleiner, leichter Servo mit hoher Leistung, der sich etwa 180° drehen kann und sich leicht per Arduino-Bibliothek ansteuern lässt. Servos bestehen generell aus einem Elektromotor und einer integrierten Steuerelektronik, die elektrische Signale in mechanische Bewegung umwandelt, wie es im Modellbau weit verbreitet ist. Im Inneren misst ein Potentiometer die aktuelle Position, und eine Regeleinheit vergleicht Soll- und Istwert, um den Motor präzise auf die gewünschte Position zu bringen. (zum Datenblatt) [3] | |
| Axiallüfter | Der verwendete Axiallüfter der Firma Sunon weist Abmessungen von 40 × 40 × 20 mm auf, arbeitet mit einer Betriebsspannung von 24 V DC und besitzt eine Leistungsaufnahme von 0,84 W. Der Lüfter erreicht eine maximale Drehzahl von 7000 RPM sowie einen Luftdurchsatz von 8,9 CFM und ist mit einem Vapo-Lager ausgestattet; der Anschluss erfolgt über einen 2-Pin-Stecker. Zur Ansteuerung dieses Aktors wird ein digitaler Ausgang verwendet, dessen genaue Informationen in der entsprechenden Schaltungsdokumentation zu entnehmen sind. (zum Datenblatt) [4] | |
| Kühlkörper | Ein Kühlkörper ist ein Bauteil zur Wärmeabfuhr in elektronischen Geräten. Er nimmt die entstehende Wärme von Bauteilen wie Prozessoren oder Leistungstransistoren auf und gibt sie über seine vergrößerte Oberfläche an die Umgebungsluft ab. Dadurch verhindert er Überhitzung und sorgt für einen zuverlässigen Betrieb. | |
| LEDs | LEDs (Leuchtdioden) sind energieeffiziente Halbleiter-Bauelemente, die Licht erzeugen, wenn elektrischer Strom durch sie fließt. Sie zeichnen sich durch eine lange Lebensdauer, geringen Energieverbrauch und geringe Wärmeentwicklung aus. LEDs werden häufig in Beleuchtung, Displays, Anzeigen und elektronischen Geräten eingesetzt. (zum Datenblatt) [5] | |
| Peltier-Element | Ein Peltier-Element ist ein elektrisches Bauelement, welches bei Stromfluss eine Temperaturdifferenz erzeugt. Die Entstehung der Temperaturdifferenz basiert auf dem nach Jean Peltier benannten Peltier-Effekt. Das Peltier-Element ist eine Wärmepumpe und hat die gleiche Funktion wie ein Kühlschrank. Es kommt jedoch ohne mechanisch bewegliche Bauteile (Pumpe, Kompressor) und ohne Kühlmittel aus. Durch Umkehr der Stromrichtung kann der Wärmefluss ebenfalls gedreht werden. (zum Datenblatt) [6] | |
| Bewegungsmelder | Bewegungsmelder schalten eine angeschlossene Beleuchtung ein, sobald Bewegungen in ihrer Nähe erkannt werden. Dies geschieht durch Sensoren, beispielsweise Hochfrequenz (HF) Sensoren, die mit elektromagnetische Wellen arbeiten. Infrarot oder PIR Melder hingegen erkennen Bewegungen anhand der Infrarot Strahlung sich bewegender Personen oder Tiere. (zum Datenblatt) [7] | |
| NTC Thermistor | NTC steht für „Negative Temperature Coefficient“. NTC-Thermistoren sind Widerstände mit einem negativen Temperaturkoeffizienten, das heißt, ihr Widerstand nimmt mit steigender Temperatur ab. Sie werden hauptsächlich als Temperatursensoren sowie zur Strombegrenzung eingesetzt. Ihr Temperaturempfindlichkeitskoeffizient ist etwa fünfmal höher als der von Silizium-Temperatursensoren und ungefähr zehnmal höher als der von Widerstandsthermometern (RTDs). NTC-Sensoren werden typischerweise in einem Temperaturbereich von −55 bis +200 °C verwendet. (zum Datenblatt) [8] |
Entwicklung des Hauses
CAD Modell des Hauses
Das Design und die Montage des Hauses wurden mit SolidWorks durchgeführt. Abbildung 11 zeigt das CAD-Modell des Hauses. Alle CAD-Daten finden Sie hier.

Technische Zeichnung
In den Abbildungen 12 und 13 sind die Abmessungen des Hauses dargestellt.


Schaltpläne
Die Abbildung (siehe Abbildung 14) zeigt die geplante Anordnung der einzelnen Baugruppen auf der Platine. Ziel ist es, eine übersichtliche Struktur der Komponenten sowie kurze und klare Leitungswege zwischen SPS, Arduino, Sensoren und Aktoren zu gewährleisten.

Dieser Schaltplanansatz (siehe Abbildung 15) stellt die elektrische Verbindung zwischen der SPS und dem Arduino dar. Die 24 Volt aus dem digitalen Ausgang der SPS werden durch einen Spannungsteiler auf 5 Volt heruntergebrochen. Gleichzeitig dient der Widerstand R2 als Pull down Widerstand, damit der Eingang des Arduino klar zwischen geschaltet und nicht geschaltet unterscheiden kann.

Der LED-Schaltplan (siehe Abbildung 16) zeigt beispielhaft den Anschluss der LEDs mit einem geeigneten Vorwiderstand zur Strombegrenzung.

Die Abbildung (siehe Abbildung 17) beschreibt die Verschaltung des NTC-Temperatursensors. Der NTC ist in einem Spannungsteiler integriert und an einen analogen Eingang der SPS angeschlossen, um eine temperaturabhängige Spannung zu erfassen

Der Schaltplanansatz (siehe Abbildung 18) zeigt die Ansteuerung des Peltier-Elements über die SPS. Das Element wird über eine Transistorschaltung angesteuert, um die erforderliche Leistung sicher bereitzustellen. Dabei wird das Peltierelement über ein zusätzliches Netzteil mit 8,5 Volt Spannung und Maximal 3,5 Ampere Strom versorgt.

Die Abbildung 19 zeigt der Schaltplan der Bewegungsmelder und Servo Motor mit Arduino

Programmierung
SPS
Das HMI-Interface (siehe Abbildung 20) stellt die Bedien- und Visualisierungsoberfläche der SPS dar und ermöglicht eine übersichtliche Darstellung relevanter Systemzustände sowie wichtiger Steuerparameter. In der Abbildung rechts (siehe Abbildung 21) sind die verwendeten HMI-Variablen dargestellt, welche interne SPS-Signale wie Sensorwerte, Schaltzustände und Stellgrößen mit der Visualisierung verknüpfen. Auf diese Weise können Prozessdaten komfortabel auf dem HMI angezeigt und überwacht werden, ohne dass ein direkter Eingriff in die eigentliche Steuerungslogik der SPS erforderlich ist.


Für die Ansteuerung des Peltier-Elements und die Temperaturregelung wird ein PWM-Signal benötigt. Da an der SPS ausschließlich digitale Ausgänge zur Verfügung stehen, wird das PWM-Signal softwareseitig erzeugt. Hierzu wird zunächst eine feste Periodendauer definiert. Zusätzlich wird das Ausgangssignal des Regelbausteins als Stellgröße in die Berechnung einbezogen. Auf Basis dieser Stellgröße wird der prozentuale Anteil der Periodendauer berechnet, in dem der digitale Ausgang auf HIGH gesetzt wird. Nach Ablauf dieser Einschaltzeit wird für die restliche Dauer der Periode ein LOW-Signal ausgegeben, bis die vollständige Periodendauer erreicht ist. Das daraus resultierende Signal entspricht einem PWM-Signal, welches zur Leistungssteuerung an das Peltier-Element ausgegeben wird. Zusätzlich ist das PWM-Ausgangssignal mit der gemessenen Temperatur des Heizkörpers am Peltier-Element gekoppelt, sodass bei Überschreiten einer maximalen Temperatur das Heizen automatisch unterbunden wird.


Zentrales Element der Temperaturregelung ist der speziell für Temperaturregelungen ausgelegte Reglerbaustein PID_Temp. Dieser Regler wird mit der vorgegebenen Solltemperatur sowie der aktuell gemessenen Temperatur des Systems beschaltet. Als Ausgang liefert der Baustein eine Stellgröße im Bereich von 0 bis 100 %, welche zur Leistungssteuerung des Peltier-Elements verwendet wird. Der Reglerbaustein bietet zusätzlich integrierte Optimierungsfunktionen zur automatischen Parametrierung, welche im aktuellen Projektstand noch nicht genutzt wurden, jedoch in zukünftigen Erweiterungen vorgesehen sind. Um eine stabile und reproduzierbare Regelung zu gewährleisten, wird der Reglerbaustein zyklisch in einem Cyclic Interrupt Organisationsbaustein (OB31) aufgerufen, sodass die Berechnung der Regelgröße stets in konstanten Zeitabständen erfolgt. Der Ausgang an dem das Peltier Element angeschlossen ist, ist zusätzlich durch eine Sicherheitstemperatur abgesichert. Überschreitet die Temperatur am Element 60 °C wird der Ausgang abgeschaltet, sodass das Peltier Element vor Überhitzung gesichert ist.

Die von den NTC-Temperatursensoren erfassten Messwerte liegen an den analogen Eingängen der SPS zunächst als elektrische Größen vor (siehe Abbildungen 25 und 26) und müssen daher in eine physikalische Temperatur umgerechnet werden. Damit die Temperaturregelung korrekt arbeiten kann, wird aus diesen Rohwerten die Temperatur in Grad Celsius berechnet, welche anschließend dem Reglerbaustein zur Verfügung gestellt wird. Die Umrechnung erfolgt mithilfe der umgestellten Beta-Formel, welche den Zusammenhang zwischen dem Widerstand des NTC-Sensors und der Temperatur beschreibt. Hierbei werden der gemessene Widerstand des NTC, der Referenzwiderstand sowie die materialspezifische Beta-Konstante berücksichtigt. Durch diese Berechnung erhält die SPS einen genauen Temperaturwert, der als Ist-Wert für die Regelung des Peltier-Elements verwendet werden kann.


Arduino
Der dargestellte Arduino-Code dient zur Steuerung eines Servomotors und einer LED in Abhängigkeit von einem Bewegungsmelder sowie einem Steuersignal einer SPS. Zu Beginn wird die Servo-Bibliothek eingebunden, um die Ansteuerung des Servomotors zu ermöglichen. Anschließend werden die Pinbelegungen für den Bewegungsmelder, die LED, das SPS-Signal und den Servomotor definiert. Der Servomotor wird über ein Servo-Objekt initialisiert, wobei feste Winkelwerte für die geöffnete und geschlossene Tür festgelegt sind. Im Setup-Teil werden die Ein- und Ausgänge konfiguriert, der Servomotor an den entsprechenden Pin angeschlossen und initial in die geschlossene Position gefahren. In der Hauptschleife liest der Arduino kontinuierlich das digitale Signal des Bewegungsmelders sowie das Steuersignal der SPS ein. Wird eine Bewegung erkannt, schaltet der Arduino die LED ein, andernfalls wird sie ausgeschaltet. Abhängig vom SPS-Signal wird der Servomotor entweder in die Öffnungs- oder Schließposition bewegt. Eine kurze Verzögerung am Ende der Schleife sorgt für einen stabilen und ruhigen Programmablauf.
include <Servo.h> // Einbinden der Servo-Bibliothek
const int Bewegungsmelder = 2; // Bewegungsmelder an Pin 2
const int LED = 3; // LED an Pin 3
const int SPS = 4; // Eingang SPS an Pin 4
const int ServoPin = 5; // Servo an Pin 5
Servo servoblau;
int Servo_Auf = 140; // Winkel für Tür öffnen
int Servo_Zu = 40; // Winkel für Tür schließen
void setup() {
pinMode(Bewegungsmelder, INPUT); // PIR als Eingang pinMode(LED, OUTPUT); // LED als Ausgang pinMode(SPS, INPUT); // SPS-Signal als Eingang
servoblau.attach(ServoPin); servoblau.write(Servo_Zu); // Servo startet in Servo zu position Serial.begin(9600); // Serielle Kommunikation }
void loop() {
bool Bewegung = digitalRead(Bewegungsmelder); // Bewegung Ja/Nein
bool SPS_Signal = digitalRead(SPS); //SPS Pin High/Low
// LED an wenn Bewegung erkannt wird ansonsten aus
if (Bewegung == HIGH) {
digitalWrite(LED, HIGH);
} else {
digitalWrite(LED, LOW);
}
// Servo Auf wenn SPS High ansonsten Zu
if (SPS_Signal == HIGH) {
servoblau.write(Servo_Auf);
} else {
servoblau.write(Servo_Zu);
}
delay(100); // Kleine Pause }
Fazit und Ausblick
Lessons Learned
- SPS Programmierung
- Solidworks
- Löten
- Arduino-Programmierung
- Team Arbeit
Ausblick
Das SPS-Projekt der Hausautomation konnte grundlegend so umgesetzt werden, wie es anfangs geplant war. Lediglich der LED-Streifen an der Hauseingangstür benötigt ein besonderes Eingangssignal, sodass dies anstatt direkt über den Bewegungsmelder zu schalten doch über den Arduino Uno oder der SPS direkt angesteuert werden sollte. Dies bedarf noch kleinere Arbeiten.
Der PID-Baustein in der SPS könnte zusätzlich noch angepasst werden, falls sich bei unterschiedlichen Raumtemperaturen die Regelung noch nicht optimal verhalten sollte. Zur Anpassung der Parameter kann man die integrierte Selbstoptimierung verwenden und durchführen.
Desweiteren können nach Belieben Automationselemente in dem Haus ergänzt werden.
In der Verdrahtung sind bereits 3 weitere Ausgänge und Vorwiderstände für LEDs vorgesehen, die im Haus noch angebracht werden können.
Auf dem HMI kann noch eine Anzeige und Eingabe ergänzt werden, über die man die Temperatur des Peltier Elements sehen kann und die Absicherungstemperatur einstellen kann.
Grundsätzlich kann das HMI noch etwas schöner gestaltet werden, vlt nach Räumen aufgeteilt oder ähnliches.
Für das Peltier Element kann eine Wechselschaltung ergänzt werden, sodass man mit dem Peltier Element sowohl Heizen als auch Kühlen kann.
Projektunterlagen
In diesem Zip-Ordner befinden sich alle Originaldateien für das Projekt: Datei:Hausautomation WS 25 26.zip
Literaturverzeichnis
→ zurück zur Übersicht: Praktikum Produktionstechnik







