Smart Home: Belüftung, Anwesenheitserkennung und Lichtalarm bei Hausklingeln eines Modellhauses mithilfe einer Phoenix Contact AXC 1050 SPS

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Alvin John, Almustapha Lawan, Jilu Mary Joseph

Betreuer: Prof. Dr. Mirek Göbel & Marc Ebmeyer

Wintersemester: 2022/2023

Fachsemester: 7

SmartHome


Stand bei der Übernahme und Endergebnis

→ zurück zur Übersicht: [Praktikum Produktionstechnik]

Einleitung

Im Rahmen des Produktionstechnik-Praktikums im siebten Semester des Studiengangs Mechatronik soll ein mechatronisches System mithilfe einer Speicherprogrammierbaren Steuerung (SPS) realisiert werden. In diesem Projekt soll ein Smart-Home entwickelt werden, welches die automatische Wohlfühltemperatur im Haus regelt, sowie durch eine intelligente Methode die Tür automatisch öffnet.


Aufgabenstellung

Das Ziel des Projekts ist, ein Wohnhaus mit Sensoren und Aktoren intelligent zu gestalten. Dabei sollten für die Bearbeitung des Projekts folgende Punkte beachtet werden:

  • Recherche nach möglichen Automatisierung in einem Haus machen
  • Entscheidungsmatrix erstellen für die Auswahl von geeigneten Sensoren und Aktoren
  • Temperaturen und Feuchtigkeiten messen
  • Die Ansteuerung des Hauses per Phoenix Contact-SPS AXC 1050
  • Ansprechende Benutzeroberfläche.

Nach der Recherche nach möglichen Automatisierung in einem Haus wurden entschieden, die folgende Unterprojekte zu erarbeiten. Die Nutzwertanalyse lässt sich hier finden.

  • Beleuchtung
  • Automatische Wohlfühltemperatur-Reglung
  • Anwesenheitserkennung
  • Tür inkl. Schließmechanismus
  • Belüftung des Hauses
  • SUB-D Stecker

Vorgehensweise nach V-Modell

Abbildung 1: V-Modell


Das Projekt wird nach dem V-Modell durchgeführt, das eine lineare Vorgehensweise zur Projektbearbeitung ermöglicht, um ein strukturiertes Vorgehen bei Planung und Bearbeitung des Projekts zu gewährleisten. Link zu den Dokumenten lassen sich hier finden.








Anforderungsdefinition

In dem Abschnitt „Anforderungsdefinition“ wurden verschiedene Anforderungen an das System festgelegt, die während der Projektbearbeitung erarbeitet müssen. Die Anforderungen gliedern sich unter anderem wie folgt: Allgemein, Sensoren und Aktoren, Aufbau und Messung, Software und Schnittstellen, und zu guter Letzt Dokumentation. Die Anforderungsliste für das Projekt lässt sich hier wiederfinden.

ID Anforderung
Tabelle 1: Anforderungen an das Smart-Home
1 Allgemein
1.1 Es muss eine Recherche nach möglichen Automatisierung gemacht werden
1.2 Eine automatische Wohlfühltemperatur-Reglung muss entwickelt werden
1.3 Entscheidungsmatrix für Feuchtigkeits- und Temperatursensoren muss erstellt werden
1.4 Ein Terminal Block und Stecker muss gebaut werden, um die Verbindung zwischen Haus und Phoenix-Contact durch einen Kabel zu realisieren
1.5 Frontplatte muss neu erstellt werden, um das Haus schöner zu gestalten
1.6 Es muss ein RFID-Leser gebaut werden
1.7 Mechanismus zur Anwesenheitserkennung muss entwickelt werden
1.4 Eine Tür inkl. Türmechanismus muss entwickelt werden
1.5 Frontplatte muss neu erstellt werden, um das Haus schöner zu gestalten
1.6 Eine Benutzeroberfläche muss programmiert werden
2 Sensoren und Aktoren
2.1 Bewegungsmelder muss für die Anwesenheitserkennung verwendet werden.
2.2 Feuchtigkeitssensor(HIH-4000-001) muss für die Innenfeuchtigkeit-Messung verwendet werden.
2.3 Temperatursensor (10K NTC) muss für die Innentemperatur-Messung verwendet werden.
2.4 Servo Motoren müssen für die Öffnung und Schließung der Tür und Fenster verwendet werden.
2.5 Axiallüfter muss für die Belüftung des Smart-Home verwendet werden.
3 Aufbau und Messung
3.1 Es muss eine Projektplanung erstellt werden.
3.2 Ein Konzept für den Hausaufbau muss erstellt werden.
3.3 Die Frontplatte muss in SolidWorks konstruiert und anschließend gefräst werden
3.4 Die Tür muss in SolidWorks konstruiert und 3D gedruckt werden.
3.5 Die Verkablung muss beschriftet sein.
3.6 Das Fenster sowie die Tür müssen automatisch geöffnet und geschlossen werden.
3.7 Feuchtigkeits- und Temperaturmessung von innen muss gemacht werden
4 Schnittstellen und Software
4.1 Das Haus muss über Pc-Worx programmiert werden.
4.2 Das Smart-Home muss per Phoenix Contact AXC 1050 und Arduino Uno angesteuert werden.
5 Dokumentation
5.1 Detaillierte Dokumentation als Wiki-Artikel muss im HSHL Wiki geschrieben werden.
5.2 Die Dokumentation muss Schritt für Schritt erklärt und nachvollziehbar sein.


Funktionaler Systementwurf

Der in Abb. 2 abgebildete Systementwurf gibt einen kleinen Überblick über die Sensoren und Aktoren, sowie ihre entsprechenden Funktionen im System. Der Phoenix Contact AXC 1050 spielt die Hauptrolle in dem System. Auf einer Seite befinden sich die Temperatur- und Feuchtigkeitssensor, auf der anderen Seite befinden sich die Axiallüfter, welche für die Belüftung verwendet werden. Daneben befinden sich ein Mikrocontroller und zwei Servomotoren, Bewegungsmelder und RFID-Leser, die über den Mikrocontroller angesteuert werden. Unten befindet sich eine Benutzeroberfläche, welche die Ansteuerung der Komponenten darstellt. Der funktionale Systementwurf lässt sich: hier

Abbildung:2:Funktionaler Systementwurf


Technischer Systementwurf

Der technische Systementwurf hat denselben Aufbau wie der Funktionale Systementwurf, im Gegensatz zu dem funktionalem Systementwurf werden hier die Verbindungen(Die Signalart: digital/analog, Input/Outpout) zwischen den einzelnen Komponenten genau definiert (siehe Abbildung 3). Zum technischem Systementwurf gelangt man hier

Abbildung 3:Technischer Systementwurf










Entscheidungsmatrix

Um die passende Temperatur und Feuchtigkeitssensor zu finden ,wurde Entscheidungsmatrix nach Kriterien Preis ,Genauigkeit,Messbereich und Lebensdauer erstellt .Die Entscheidungsmatrix lässt sich:hier

Entscheidungsmatrix für Temperatursensor ist in Abbildung.4 angegeben. Anhand Kriterien wurde NTC hat größte Summe von 8,8 bekommen.

Abbildung:4:Entscheidungsmatrix von Temperatursensor


Als Feuchtigkeitssensor wurde Honeywell Feuchtigkeitssensor(HI-4000-001) mithilfe Entscheidungsmatrix(Abb.5) ausgewählt.

Abbildung:5:Entscheidungsmatrix von Feuchtigkeitssensor


Komponentenspezifikation

Die Komponentenspezifikation von den Bauteile ,die wir in das Smart -Home benutzt haben ,ist unten angegeben. Die Link zu der Komponentenspezifikation:hier

  • NTC Thermistor
Abbildung:6:NTC Thermistor
Abbildung:7:Dimensional Drawing

NTC Sensor wurde als Temperatursensor ausgewählt ,weil es kurze Reaktionszeit und ausgezeichnete Langzeitstabilität hat.

Allgemeine Information von dem NTC Sensor :
  • Temparatur Messbereich -0°C-70°C
  • Widerstand bei 25°C-10KOhm
  • Maximale Leistung bei 25°C-60mW
  • Abmessung-2.5mm x 6.5 mm





  • Honeywell Feuchtigkeitssensor(H-4000 Series)
Abbildung:8:Honeywell Feuchtigkeitssensor

Als Feuchtigkeitssensor wurde Honeywell Feuchtigkeitssensor(Abb.8) ausgesucht ,da es Low-Power Design und kurze Reaktionszeit hat.

Allgemeine Information: 
  • Messbereich von Honeywell Feuchtigkeitssensor-0%....100% RH
  • Versorgungspannung-4,5V-8V
  • Schnittstelle: eine Analogschnittstelle
  • Abbildung:9 wurde der Schaltplan des Sensors gezeigt




Abbildung:9:Schaltplan von Honeywell Feuchtigkeitssensor




  • Bewegungsmelder
Abbildung:10:Bewegungsmelder

Für die Anwesenheitserkennung wurde Bewegungsmelder( Abb.10) benutzt, da es ca.7m Erkennungsreichweite hat.Durch Infrarot Erkennung hat es hohe Empfindlichkeit bei Bewegungen.

Allgemeine Informationen :
  • Betriebsverspannung:4,5-20V
  • Betriebstemperatur:-15 bis +70°C
  • Detektionswinkel ist niedriger als 100 Grad.

Der Schaltplan wurde in Abbildung :11 angegeben.

Abbildung:11:Schaltplan von Bewegungsmelder



  • Axiallüfter
Abbildung:12:Axiallüfter

In dem Smart-Home wurden zwei AxialLüfter von SUNON(Abb.12) eingebaut. Der größte Vorteil von dem Lüfter ist ,dass es 7000 Umdrehungen pro Minute hat.

Technische Daten von dem Lüfter :
  • Versorgungsspannung:24V
  • Maximale Stromaufnahme beträgt 39mA.

Pinbelegung Von dem AxialLüfter Schnittstelle:eine Digitaloutput Rote Kabel:VCC Schwarze Kabel:GND



  • Servomotor

Um die Tür und Fenster zu öffnen ,wurden zwei Servomotoren(MC-410) verwendet.

Abbildung:13:Servomor

Technische Daten von dem Servomotor : Betriebspannung:4,8V -6V

Stell-Zeit(4,8 V)  : 17Sec/ 60°

Stell-Zeit(6V)  : 15Sec /60°

Abmessungen : Länge: 40.5 mm, Breite: 20 mm, Höhe: 38 mm

Es hat auch 3 Pins.

Braune Kabel  : GND

Rote Kabel  : VCC

Orange Kabel  : OUTPUT/PWM SIGNAL

Schnittstelle :Arduino UNO


  • RFID-RC522 MEGA KIT + 4
Abbildung:15:RFID für die Türöffnung

RFID ist die Abkürzung für die Radio- Frequency Identification . Dies bedeutet, dass eine Identifizierung von zwei Systemen über die Hilfe der elektromagnetischen Wellen erfolgt. Damit ist es möglich, sich ohne Berührung zu identifizieren. Es gibt einen Sender und einen Empfänger bei einem RFID-Türöffner. Der Empfänger befindet sich in der Tür. Wenn die richtige Chip gescannt wird, wurde die Tür 5 Sekunde lang geöffnet. Danach wurde es geschlossen.



Technische Daten:

Benötigte Spannung: 3,3 Volt

Arbeitsfrequenz: 13,56 MHz

Stromaufnahme Betrieb: 13-26mA

Stromaufnahme Standby: 10-13mA

Betriebstemperatur: -20 – 80°C


  • SPS-Einheit

Phoenix Contact AXC 1050(Abb.15) hat 20 Eingänge und 20 Ausgänge.


Abbildung:15:SPS-Einhei



Tabelle. 2 ist die Technische Daten der SPS-Einheit
Analogmodul
4 Analoge Eingänge
             Versorgungsspannung:24 V
             Auflösung des A/D- Wandlers: 16 Bit 
             Eingangssignal Strom: 0mA- 20mA, 4mA- 20mA, -20mA- 20mA   
             Eingangsspannung: 0V-10V, -10V-10V, 0V-5V, -5V-5V
4 Analoge Ausgänge
             Versorgungsspannung:24 V
             Ausgangssignal Strom: 0mA- 20mA, 4mA- 20mA, -20mA- 20mA   
             Ausgangsspannung: 0V-10V, -10V-10V, 0V-5V, -5V-5V
Digitalmodul
16 digitale Eingänge
             Nenneingangsspannung: 24V DC  
             Eingangsspannungsbereich "O Signal": -3VDC-5V DC
             Eingangsspannungsbereich "1 Signal":  11VDC- 30V DC
16 digitale Ausgänge
             Versorgungsspannung: 24V DC 
             Ausgangsspannung: 24V DC 
   




Entwicklung

Konstruktion

Das Haus ist aus Holzplatten gefertigt. Die Außenseite des Hauses wurde neu gestaltet, um den Bewegungsmelder und die RFID-Karte unterzubringen. Der Entwurf des Hauses erfolgte in Solidworks und die Konstruktion wurde in der Mechatronik Werkstatt zu Ende gebracht.

Wir haben auch ein konfektioniertes Rundkabel erstellt, das aus einzelnen Kabeln (25-polig) besteht. Die Kabel wurden beschriftet. Die Stecker können an D-SUB Stiftleisten (1x 25-polig) angeschlossen werden. Dies erleichterte das Trennen des Smart Home von der AXC 1050-Steuerung enorm.

Schaltplan

Der Schaltplan wurde mit der kostenlosen Software QElectroTech erstellt, dessen ausführliche Informationenauf diese Seite zu entnehmen sind. Die Dateien lassen sich hier wieder finden. In Abbildung werden der Phoenix Contact AXC 1050 sowie alle Komponenten, die mit den SPS Digital und analoge Ein- und Ausgänge verbunden sind, dargestellt. Auf der linken Seite befinden sich die Mikrocontroller sowie die Aktoren, die mit dem Digital-Ausgang verbunden sind. Wie im Abschnitt "Komponentenspezifikation" beschrieben, benötigen diese Aktoren 24V Spannung, welche exakt die AXC 1050 Ausgang ausgibt, d.h eine direkte Verschaltung ist hier möglich. Arduino Uno kann jedoch nur max. 5V annehmen, um die 24V auf 5V zu reduzieren wurde ein Spannungsregler dazwischen gebaut. Bewegungsmelder, RFID-Leser sowie Servomotoren sind außerdem dem Mikrocontroller verbunden, da dieser den Servomotor mit dem erforderlichen PWM-Signal versorgt.

Auf der rechten Seite befinden sich der Temperatur sowie Feuchtigkeitssensor, welche mit dem SPS Analogeingang verbunden sind. Wie bereit im Kapitel Komponentenspezifikation erwähnt, soll zum Auslesen der Temperaturwerte und Luftfeuchtigkeit ein Spannungsteiler verwendet werden. Aus diesem Grund ist der Temperatursensor(10k-NTC) über einen Spannungsteiler mit einem Widerstand(47kOhm) und dann mit den analogen Eingängen AI0.0 und AI0.1 verbunden. Mit diesem Spannungsteiler stellen konnte sichergestellt werden, dass nur eine Spannung von 0V bis maximal 10V an den NTC angelegt wird. Der Feuchtigkeitssensor ist außerdem über einen Spannungsteiler mit einem Widerstand von 20kOhm und einem Widerstand von 5,1kOhm mit der Eingang SPS (Analog Input: AI0.1 und AI1.1) verbunden.

Abbildung 4:Schaltplan
Abbildung 5:Schaltplan




Pin Belegung

SUB-D Signalart Komponente Adresse
1 Digital Luefter 1 DO1.1
2 Digital Luefter 2 DO1.0
3 Digital Arduino PWM-Signal DO1.0
4 Digital Heizbirne DO2.0
6 Analog Feuchtigkeit auslesen AI1.1
23 Analog Temperatur auslesen AI0.0
8 Analog Schalter4 DI1.0
11 GND
13 24V

Programmierung

Die Hauptprogrammierung wurde mit PC Worx durchgeführt. PC Worx ist eine Programmiersoftware, die für die SPS-Programmierung verwendet wird. Die Programmierung der SPS erfolgt nur in PC Worx mithilfe der Funktionsblocksprache FBS. Das Anlegen eines neuen Prokets in PC Workx, das Herstellen der Verbindung zwischen SPS und PC sowie das Erstellen eines SPS-Programms in der Funktionsblockprache werden im Artikel Erstellen eines Projektes in PC Worx. Ein Teil der Programmierung wurde auch mit der Arduino IDE durchgeführt. Das Arduino-Programm wird im späteren Abschnitt im Detail erklärt.

Im Programm sollten die Werte des Temperatur- bzw. Feuchtigkeitssensors ständig überwacht werden. Ist die Temperatur höher als 25 °C und/oder die Luftfeuchtigkeit höher als 60 %, sollte das Fenster geöffnet, die Ventilatoren eingeschaltet und die Heizung (Glühbirne) ausgeschaltet werden. Andernfalls sollte das Fenster nur dann geschlossen werden, wenn die Temperatur unter 18 °C und/oder die Luftfeuchtigkeit unter 35 % sinkt, und in diesem Fall sollte die Heizung (Heizlampe) eingeschaltet werden. Parallel dazu erkennt der Bewegungsmelder, ob es eine Bewegung gibt. Wird eine Bewegung erkannt, schalten sich die Lichter an der Oberseite der Tür ein.

Abbildung 6: SPS-Programm






Folgende Tabelle zeigt alle FBS Blöcke, die wir für das SPS-Programm verwendet haben. Im Kapitel Programmierung sollen wir das Wissen anwenden, das wir bereits im Bereich Digitaltechnik erworben haben.

FBS Block Beschreibung Wahrheitstabelle
NOT_Block
Im „NOT_Block“, wird das Eingangssignal invertiert. Das heißt, wenn am Eingang eine "0" anliegt, liegt am Ausgang eine "1" an und umgekehrt.
NOT Wahrheitstabelle
LT_Block
Der „LT_Block“, was für "lower than" steht, vergleicht zwei Eingangssignale miteinander. In diesem Fall handelt sich um das Eingangssignal "Input4"(AI0.1) und eine Variable V002, der wir den Wert 12630 zugewiesen haben. Wenn das Eingangssignal kleiner als diese Variable V002 ist, dann wird der Ausgang auf boolesche 1 geschaltet.
AND_Block
Der „AND-Block“ steht für eine UND-Verknüpfung. Das bedeutet,dass am Ausgang nur dann eine boolesche „1“ steht, wenn beide Eingänge auf „1“ stehen (siehe Wahrheitstabelle)
AND Wahrheitstabelle
GT_Block
Der „GT_Block“, was für "greater than" steht, vergleicht auch zwei Eingangssignale miteinander. In diesem Fall handelt sich um das Eingangssignal "Input2"(AI0.1) und eine Variable V003 Wenn das Eingangssignal größer als diese Variable V003 ist, dann wird der Ausgang auf boolesche 1 geschaltet.
RS_Block
Der „RS_Block“ steht für eine RS-Flip-Flop. Das bedeutet, dass der Eingang S(Set) dazu dient, ein Signal zu setzen und der Eingang R(Reset) dient dazu , ein Signal zurückzusetzen (Siehe Wahrheitstabelle).
RS Wahrheitstabelle
OR_Block
Der „OR_Block“ steht für eine ODER-Verknüpfung. Das bedeutet,dass t eine boolesche 1 nur dann am Ausgang anliegt, wenn an einem der beiden oder an beiden Eingängen eine „1“ vorhanden ist.
OR Wahrheitstabelle


Arduino Code

Um die Servomotoren zu steuern, haben wir einen Mikrocontroller zwischengeschaltet, der die Position des Motors so bestimmt, dass sich das Fenster öffnet, wenn der Ausgang OUT4 der SPS ein Signal sendet und die Tür öffnet, wenn die Rfid-Karte erfolgreich gelesen wurde. Der Ausgang der SPS ist mit dem analogen Pin A0 verbunden. Wenn der Ausgang der SPS kein Signal liefert, gibt A3_Value einen Wert unter 1000 zurück (d.h. Eingangsspannung kleiner als 4V). In diesem Fall sollte das Fenster geschlossen werden, indem der Servomotor auf 80° gestellt wird. Andernfalls, wenn der Ausgang der SPS (AO1.0) ein Signal führt, gibt A3_Value einen Wert größer als 1000 zurück (d. h. Eingangsspannung größer als 4,7 V). In diesem Fall sollte das Fenster geöffnet werden, indem der Servomotor auf 10° eingestellt wird. Um dieses Ziel zu erreichen, wurden die folgenden Bibliotheken einbezogen. Servo.h, Adafruit_NeoPixel.h, SPI.h, MFRC522.h. Der Teil des Codes, der das Fenster öffnet, ist unten zu sehen.

  1. include <Servo.h>
  2. include <Adafruit_NeoPixel.h>
  3. include <SPI.h>
  4. include <MFRC522.h>
 {

// /************************************** // Teil 1: Schließsystem (Fensters) // **************************************/

 A3_Wert = analogRead(SPS_Data);
   Serial.print("SPS WERT ");
 Serial.println(A3_Wert);
 if (A3_Wert >= 1000) // SPS führt ein Signal
 {
   Serial.println("Öffne das Fenster!");
   ServoFenster.write(10);
 }
 else
 {
   Serial.println("Schließe das Fenster!");
   ServoFenster.write(80);
 }



Da der Einsatz von Mikrocontrollern unbedingt notwendig war, haben wir diesen Fall genutzt, um eine neue Funktion im Haus einzurichten. Das ist die Anwesenheitserkennung. Um die Anwesenheit zu erkennen, haben wir einen Bewegungsmelder verwendet, der in der Lage ist, Objekte berührungslos zu erkennen. Wenn eine Anwesenheit oder Bewegung erkannt wurde, geht das Licht (oben an der Tür) an. Es geht nach 10 Sekunden aus, wenn keine Bewegung mehr erkannt wird.

   /**************************************
    Teil 2: Bewegungserkennung und Licht
  **************************************/
 int val = digitalRead(inputPin); //Das Eingangssignal lesen
 if (val == HIGH) { // Prüfen ob der Wert HIGH, also ob ein Signal anliegt
   //Wenn der gespeicherte Status == LOW ist, also wenn vorher kein Signal vorhanden war,
   //dann soll auf dem Seriellen Ausgang der Text ausgegeben werden und der PIR Status auf HIGH gesetzt werden.
   if (pirState == LOW) { 
     Serial.println("Bewegung erkannt!");
     pirState = HIGH;
   }
  //Wenn der gelesene Wert nicht HIGH ist, also es liegt KEIN Signal an.
 } else {
   //Wenn der PIR Status HIGH ist, also es lag ein Signal vorher an,
   //dann soll auf dem Seriellen Ausgang der Text ausgegeben werden und der PIR Status auf LOW gesetzt werden.
   if (pirState == HIGH){
     Serial.println("Bewegung beendet!");
     pirState = LOW;
   }
 }
  //Wenn der PIR Status auf HIGH ist dann soll ein Ton ausgegeben werden.
 //Hier könnte auch zusätzlich eine LED oder ähnliches mit angebracht werden.
 if(pirState == HIGH)
 
    { 
   setcolor(127, 127, 127);
   delay (10000); 
    }
      else
 {
   setcolor(0, 0, 0);
  }



Es wurden zwei Servomotoren verwendet. Einer zum Öffnen des Fensters und der andere zum Öffnen der Tür. Die Tür wird mit dem Servomotor geöffnet, wenn der richtige RFID-Schlüssel vor den RFID-Block gehalten wird. Die Tür bleibt 5 Sekunden lang geöffnet und schließt sich danach automatisch. Der Teil des Codes, der RFID liest und die Tür öffnet, ist unten zu sehen.

   /**************************************
    Teil 3: RFID Lesen und Tür aufmachen
  **************************************/
  if (rfid.PICC_IsNewCardPresent()) 
  {  // new tag is available
   if (rfid.PICC_ReadCardSerial()) 
   { // NUID has been readed
     MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
     if (rfid.uid.uidByte[0] == authorizedUID[0] &&
         rfid.uid.uidByte[1] == authorizedUID[1] &&
         rfid.uid.uidByte[2] == authorizedUID[2] &&
         rfid.uid.uidByte[3] == authorizedUID[3] ) 
         {
       Serial.println("Authorized Tag");


       for (angle = 360; angle >= 0; angle -= 1)  { 
     // in steps of 1 degree
       ServoDoor.write(angle);              // tell servo to go to position in variable 'angle'
      delay(15);                       // waits 15ms for the servo to reach the postion
 }
 delay (5000);
   for (angle = 0; angle <= 360; angle += 1) { 
   ServoDoor.write(angle);              // tell servo to go to position in variable 'angle!
   delay(15);                       // waits 15ms for the servo to reach the position
 }
         }
      else {
       Serial.print("Unauthorized Tag with UID:");
       for (int i = 0; i < rfid.uid.size; i++) {
         Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
         Serial.print(rfid.uid.uidByte[i], HEX);
       }
       Serial.println();
     }
     rfid.PICC_HaltA(); // halt PICC
     rfid.PCD_StopCrypto1(); // stop encryption on PCD
   }



Komponententest

In diesem Abschnitt wird jede einzelne Komponente getestet. Die Komponente werden auf einem Breadboard getestet. Die Lüfter und der Servomotor drehen sich, Werte können vom Temperatur-und Feuchtigkeitssensor eingelesen werden. Die Bewegungsmelder und die RFID-Leser funktionieren auch.

Abbildung: Komponententest



Integrationtest

Mit dem Integrationstest wird überprüft, ob der Zusammengefügte Aufbau und die Integration der einzelnen Komponenten erfolgreich abgeschlossen wurden. Die folgenden Videos zeigen, wie sich die Tür öffnet und schließt und wie das Fenster funktioniert.

Abbildung: Integrationstest
Video: Öffnen und Schließen der Tür.
Video: Fenstermechanismus.

Systemtest

Im Abschnitt "Systemtest" wird der Zusammenbau des gesamten Systems getestet. Der Terminal Block konnte hinten gebaut werden und durch ein SUB-D Stecker mit AXC-1050 verbunden. Das Konzept der Wohlfühltemperaturreglung war erfolgreich umgesetzt, dass die beiden integrierten Axiallüfter angeschaltet werden, sobald der Temperaturbereich überschreitet und bleiben ausgeschaltet, wenn die Temperatur innerhalb der angegebenen Bereich liegt. Die intelligente Anwesenheitserkennung wurde auch richtig umgesetzt, dass nach der Registrierung eine Bewegung durch den Bewegungsmelder das Licht automatisch angeschaltet wird, d.h, wenn kein Lichtbedarf bleibt das Licht aus und somit wird der Nutzer Energiekosten sparen. Das automatische Schließsystem war auch erfolgreich umgesetzt, sobald der RFID erfolgreich den Chip ein ausliest, wird die Tür automatisch geöffnet und nach weniger Sekunde wieder automatisch geschlossen. Leider konnte die Benutzeroberfläche aufgrund technischen Fehlers "Download fehlgeschlagen" nicht zu Ende programmiert werden. Wir haben versucht, den Fehler durch manuelles Hochladen der Daten per FTP in den PC-Ordner zu beheben, allerdings war auch dies nicht möglich. Eine Einführung zur Erstellung einer Benutzeroberfläche in Webvisit wurde auch zu diesem Zweck in einem "Wiki-Artikel" erstellt, den Sie über diesen hier finden können.

Abnahmetest

Im Abschnitt "Abnahmetest" wird geprüft, ob das System die zuvor festgelegten Anforderungen erfüllt. Der Abnahmetest wurde erfolgreich durchgeführt, alle Komponenten funktionieren wie in der Anforderungsliste beschrieben. Der Abschnitt Testfall lässt sich über den Knopf "Ausklappen" anzeigen.

Einleitung

Test-Artikel des Projekts " Smart-Home" WiSe 22/23. Die Intelligente Automatiesierung im Haus wird getestet. Dafür werden die zu übertragendenden Daten wie das Pc-Worx Projekt über Pheonix Contact AXC 1050 geschickt sowie die Code für die Ansteurung des Servo, RFID, und Bewegungsmelder über Arduino Uno geschickt.

Verwendete Daten

Hier wird alles aufgelistet inkl. Datum/Versionnummer, was zur Ausführung des Testfalls notwendig ist
SVN-Projektarchiv: XY in Version 12345
Wikiartikel: SmartHome: Belüftung, Anwesenheitserkennung vom 31.01.2023
Benötigte Software: PC-Worx und Arduino IDE.

Der Testfall im Detail

Bezeichnung: SmartHome
Erstellt von: Lawan, John, Mary Joseph
Erstellt am: 4.01.2023


Schritt Nr. Beschreibung Ausgangszustand Aktion(en) Erwartetes Ergebnis Ergebnis Bewertung Bemerkung
Precondition 1 PC und Daten vorbereiten PC ist aus, Kabel nicht eingesteckt Start des PCs Der PC ist an, die Anlage betriebsbereit, Update SVN Arbeitskopie ( Pfad) PC ist an, SVN-Ordner " SmartHome WS_22_23" ausgecheckt
Precondition 2 Phoenix Contact AXC 1050 hochfahren Anlage ist aus Netzteil anschließen, Schalterknopf betätigen Anlage betriebsbereit, SPS-Status ist auf grün (siehe Ergebnis)
Precondition 3 Arduino Uno hochfahren Mikrocontroller ist aus USB-Kabel anschließen Anlage ist betriebsbereit, Arduino Uno blinkt Arduino erfolgreich verbunden
Precondition 4 Hausvorbereitung SUB-D Stecker Terminal Block ist nicht SUB-D verbunden SUB-D Kabel anschließen Anlage ist betriebsbereit Erforderliche Spannung vorhanden
Testschritt 1 SmartHome Programm öffnen. Anlage ist betriebsbereit Ordner Entwicklung klicken, SmartHome SPS öffnen PC-Worx Arbeitsbereich geöffnet (siehe Ergebnis)
Testschritt 2 Steuerung neu starten Anlage ist betriebsbereit Arbeitsbereich „Busaufbau“ markieren, IP 192.168.0.14 wählen.

Gerätdetails klicken, den Reiter erweiterte Einstellung wählen und Steuerung neu starten.

Steuerung neu gestartet (siehe Ergebnis)
Testschritt 3 Projekt neu erzeugen Anlage ist betriebsbereit Wechsel zum IEC-Programming Plattform, wähle Main, unter Punkt "Main" wählen. Unter Code Projekt neu erzeugen Projekt neu erzeugt, 0 Fehler (siehe Ergebnis)
Testschritt 4 Projekt automatischer Betrieb Anlage ist betriebsbereit wähle den Button Ausführung (siehe Ergebnis), und danach rücksetzen, dann senden und kalt ausführen. Projekt läuft, Temperatur und Feuchtigkeit gemessen, Lüfter schaltet an, wenn die Temperaturwert > 12000 oder Feuchtigkeitswert> 11000. Wenn nicht, gehe zu Schritt 5.
Testschritt 5 Projekt manueller Betrieb Anlage ist betriebsbereit Bestätige den Schalter 1 und 2, um im manuellen Betrieb zu wechseln. Projekt läuft, Lüfter schaltet an.
Lüftungsmechanismus.
Testschritt 6 Echtzeit Online Werte ansehen Anlage ist betriebsbereit Wähle den Button Online und Debug durchführen. Projekt läuft, online Werte wird angezeigt.
Testschritt 7 Anwesenheitserkennung Anlage ist betriebsbereit Wähle den Ordner Entwicklung und Arduino_SmartHome auf Arduino Uno hochladen. Projekt läuft, Licht wird angeschaltet, Anwesenheit erkannt. Siehe Abschnitt "Integrationstest"
Testschritt 7 Türmechanismus Anlage ist betriebsbereit Halte der blauen Laserkarte ein paar Sekunden vor RFID Tür wird automatisch nach auslesen und nach 5 Sekunden automatisch wieder schließen Siehe Abschnitt "Integrationstest"
Postcondition 1 Anlage AXC 1050 und Arduino Uno herunterfahren Anlage läuft Schaltknopf ausschalten, Arduino USB vom PC nehmen. Temperatur und Feuchtigkeitswert = 0, SPS aus (alle LEDs aus), Netzteil aus
Postcondition 2 PC herunterfahren PC läuft SmartHome Ordner schließen, Software PC-Worx, Arduno IDE schließen, PC aus PC aus, Daten in SVN gesichert

Zusammenfassung und Ausblick

Auch wenn allein die Realisierung des gesamten Projektes ein umfangreiches Lernen der gesamten Thematik erforderte, war das Erreichen der definierten Projektziele am Ende mit einer besonderen Erleichterung und Freude verbunden, auch wenn wir am Ende keine Benutzeroberfläche erstellen konnten. Wir haben zum ersten Mal 3D-gedruckte Teile hergestellt, was eine gute Erfahrung war. Wir hatten auch die Möglichkeit, in der Mechatronik Werkstatt zu arbeiten, um eine neue Frontplatte des Hauses zu erstellen, wo wir die Aufgaben wie frasen, schleifen, löschen usw. erledigten.

Um dieses Projekt zu realisieren, nutzten wir unsere seit dem ersten Semester erworbenen Kenntnisse im Bereich der Programmierung, Digitaltechnik, Elektronik und andere Kenntnisse und Fähigkeiten. Dieses Projekt half uns, die im 3. Semester erlernten Logikgatter in der Programmierung zu verstehen und anzuwenden.

Lessons-Learned

  • Solidworks, Teile 3D gedrückt
  • SPS Programmierung
  • Strukturierte Vorgehensweise nach V-Modell
  • Projektdokumentation(Wochenbericht)
  • Löten
  • Vertiefung Arduino-Programmierung
  • Vertiefung Elektrotechnische Kenntnisse
  • Im Team arbeiten- Arbeitsteilung

Probleme und Schwierigkeiten

  • Verbindungsaufbau zwischen PC und SPS anfangs nicht möglich,da die IP-Adresse falsch eingestellt war.
  • Start neues Programm im PC-Worx- Einarbeitung PC-Worx
  • Wie die SPS-Programmierung funktioniert, war am Anfang nicht leicht zu verstehen
  • SPS liefert ungeeignete Spannungswerte.
  • Time Out
  • Probleme mit Erstellung einer Benutzeroberfläche mit WebVisit
  • Download-Fehlgeschlagen (WebVisit)- Konnten keine HMI programmieren.

Ausblick

  • Eine neue Platine für komplette Schaltung drücken
  • Fenster Schließsystem optimieren
  • Einen Weg finden, RFID direkt mit SPS zu verbinden, so dass es in HMI angezeigt werden kann, wann die Tür offen ist
  • Benutzeroberfläche programmieren

Projektunterlagen

Literaturverzeichnis

→ zurück zur Übersicht: [Praktikum Produktionstechnik]