Hausautomation: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 167: | Zeile 167: | ||
Dieser Schaltplanansatz stellt die elektrische Beschaltung des Arduino dar. Der Bewegungsmelder ist an einen digitalen Eingang angeschlossen, während der Servomotor über einen PWM-fähigen Ausgang angesteuert wird. Zusätzlich ist eine LED an einen digitalen Ausgang des Arduino angebunden. | Dieser Schaltplanansatz stellt die elektrische Beschaltung des Arduino dar. Der Bewegungsmelder ist an einen digitalen Eingang angeschlossen, während der Servomotor über einen PWM-fähigen Ausgang angesteuert wird. Zusätzlich ist eine LED an einen digitalen Ausgang des Arduino angebunden. | ||
[[Datei:Schaltplan Arduino Haus.png|400px|thumb|left|Abbildung x: Schaltplan Arduino]] | [[Datei:Schaltplan Arduino Haus.png|400px|thumb|left|Abbildung x: Schaltplan Arduino]] | ||
<BR> | |||
<BR> | <BR> | ||
<BR> | <BR> | ||
| Zeile 232: | Zeile 233: | ||
<br> | <br> | ||
<br> | <br> | ||
<br><br><br><br><br><br><br> | <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | ||
== Programmierung == | == Programmierung == | ||
Version vom 30. Dezember 2025, 22:22 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 2) 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. 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.

Technischer Systementwurf
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 | ||
| RGB LED | (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 x zeigt das CAD-Modell des Hauses. Alle CAD-Daten finden Sie hier.

Technische Zeichnung


Schaltplan
Die Abbildung 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 stellt die elektrische Beschaltung des Arduino dar. Der Bewegungsmelder ist an einen digitalen Eingang angeschlossen, während der Servomotor über einen PWM-fähigen Ausgang angesteuert wird. Zusätzlich ist eine LED an einen digitalen Ausgang des Arduino angebunden.

Der LED-Schaltplan zeigt den Anschluss der LED mit einem geeigneten Vorwiderstand zur Strombegrenzung.

Die Abbildung 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 zeigt die Ansteuerung des Peltier-Elements über die SPS. Das Element wird über einen geeigneten Treiber oder ein Relais geschaltet, um die erforderliche Leistung sicher bereitzustellen.

Programmierung
SPS







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>
const int Bewegungsmelder = 2;
const int LED = 3;
const int SPS = 4;
const int ServoPin = 5;
Servo servoblau;
int Servo_Auf = 140;
int Servo_Zu = 40;
void setup() {
pinMode(Bewegungsmelder, INPUT); pinMode(LED, OUTPUT); pinMode(SPS, INPUT);
servoblau.attach(ServoPin); servoblau.write(Servo_Zu); Serial.begin(9600); }
void loop() {
bool Bewegung = digitalRead(Bewegungsmelder);
bool SPS_Signal = digitalRead(SPS);
// LED schalten
if (Bewegung == HIGH) {
digitalWrite(LED, HIGH);
} else {
digitalWrite(LED, LOW);
}
// Servo steuern
if (SPS_Signal == HIGH) {
servoblau.write(Servo_Auf);
} else {
servoblau.write(Servo_Zu);
}
delay(100); }
Komponententest
Fazit und Ausblick
Lessons Learned
- SPS Programmierung
- Solidworks
- Löten
- Arduino-Programmierung
- Team Arbeit
Zusammenfassung
Literaturverzeichnis
→ zurück zur Übersicht: Praktikum Produktionstechnik






