Model eines Inkubators(Brutkasten) für Neugeborene mit einer Überwachungsfunktion

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Olga Ruhe, Robert Leidig
Betreuer: Marc Ebmeyer

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

Einleitung

Bei dem vorliegenden Artikel handelt es sich um ein Projekt aus dem Praktikum Angewandte Elektrotechnik des Studiengangs Business and Systems Engineering (BSE) aus dem Wintersemester 2022/2023. Das Ziel dieses Projektes ist ein einfaches Model eines Inkubators für Neugeborene mit einer Überwachungsfunktion. Bei Inkubatoren ist die Temperatur sowie die Feuchtigkeit innerhalb des Kastens für die gesunde Entwicklung des Neugeborenen essenziell. Doch nicht nur diese Funktionen werden in diesem Projekt behandelt. Auch das Tracking des Gewichts, die Überprüfung ob die Windel gewchselt werden muss als auch die Lautstärke zur Überprüfung ob das Kind schreit, werden hier berücksichtigt.

Anforderungen

Tabelle 1: Testbare, atomare Anforderungen
ID Inhalt Ersteller Datum Geprüft von Datum
1.0 Für die Überwachungsfunktion sollen die folgenden Werte aufgenommen werden: Temperatur, Feuchtigkeit, Lautstärke,Gewicht. Olga Ruhe 04.10.2022 Robert Leidig 04.10.2022
1.1 Alle aufgenommenen Werte sollen mittels eines Displays angezeigt werden. Olga Ruhe 04.10.2022 Robert Leidig 04.10.2022
2.0 Die aufgenommenen Werte (IST-Werte) sollen mit SOLL-Werten verglichen werden. Olga Ruhe 04.10.2022 Robert Leidig 04.10.2022
2.1 Mittels eine LED Lampe soll angezeichnet werden, ob die Werte im grünen oder roten Bereich liegen. Robert Leidig 04.10.2022 Olga Ruhe 04.10.2022
3.0 Mit Hilfe eines Gassensors soll ermittelt werden, ob Windel gewechselt werden muss. Robert Leidig 04.10.2022 Olga Ruhe 04.10.2022
3.1 Die Empfehlungen sollen auf dem Display angezeigt werden. Robert Leidig 04.10.2022 Olga Ruhe 04.10.2022
0.1.0 Optionale Erweiterung: Zusätzlich ab gewisser Lautstärke vom Baby-Schreien kann das Baby-Weiße-Rauschen als Ton abgespielt werden, um das Kind zu beruhigen. Olga Ruhe 04.10.2022 Robert Leidig 04.10.2022

Funktionaler Systementwurf

Funktionaler Systementwurf Inkubator


Mit dem funktionalen Systementwurf werden die wesentlichen Funktionen dargestellt. Die Unterteilung wird in diesem Fall in drei Schritte eingeteilt. Im ersten Schritt befindet sich die "Eingabe". Hier werden die Sensor Daten eingelesen. Diese werden im zweiten Schritt verarbeitet. Bei diesem Projekt werden die Daten mit zuvor definierten Soll Werten verglichen. Die Ergebnisse des Vergleichs werden im dritten Schritt durch ein Bildschirm sowie LED Lampen visualisiert.

Technischer Systementwurf

Technischer Systementwurf Inkubator


Im Gegensatz zum funktionalen Systementwurf werden im technischen Systementwurf die Komponenten definiert bzw. genannt. Der obigen Grafik können die Modellbezeichnungen der verwendeten Sensoren entnommen werden. Die Sensor Daten werden von einem Arduino Uno Mikrocontroller verarbeitet und die Ergebnisse im Anschluss auf einem LCD Bildschirm angezeigt.

Komponentenspezifikation

Die Komponenten des Systems werden in Tabelle 2 aufgeführt.

ID Komponente Eingangsparameter Ausgangsparameter Aufgabe Struktur
Tabelle 2: Komponentenspezifikation
001 Temperatursensor Umgebungstemperatur (Analog) Temperatur als Byte Datenpaket Messen der Temperaturen innerhalb des Inkubators Hardwarekomponente
002 Feuchtigkeitssensor Feuchtigkeitswerte (Analog) Feuchtigkeitswerte als Byte Datenpaket Messen der Feuchtigkeit innerhalb des Inkubators Hardwarekomponente
003 Lautstärkesensor Lautstärkewerte (Analog) Lautstärkewerte als Byte Datenpaket Messen der Lautstärke innerhalb des Inkubators Hardwarekomponente
004 Gewichtssensor/ Drucksensor Gewichtswerte (Analog) Gewichtswerte als Byte Datenpaket Messen des Gewichts des Kindes Hardwarekomponente
005 Gassensor Gaswerte (Analog) Gaswerte als Byte Datenpaket Messen der Methangaskonzentration
innerhalb des Inkubators
Hardwarekomponente
006 Mikrocontroller Byte Datenpakete der Sensoren Startbefehl für Sensoren und Signale für LCD & LEDs Systemsteuerung durch Datenverarbeitung Hardwarekomponente
007 LCD & LEDs Signale vom Mikrocontroller ---- Gibt visuelles Feedback der Sensoren wieder Hardwarekomponente
008 Steuerungsprogramm Byte Datenpakete mit Sensordaten Ansteuerung für ID 007 Berechnet die Differenz der Soll/IST Werte. Je nach Ergebnis gibt ID 007 Hinweismeldungen aus. Softwarekomponente

Umsetzung

Hardware

Stückliste

ID Anzahl Kosten in € Bezeichnung / Komponente technische Bezeichnung Beschreibung Datenblatt (Link)
001 1x 4,79€ Temperatur und Feuchtigkeitssensor DHT11 Der Sensor misst Temperatur und Feuchtigkeitswerte innerhalb des Inkubators.
Hierdurch kann überprüft werden, ob das Neugeborene der richtigen
Temperatur und Feuchtigkeit ausgesetzt ist.
Datenblatt DHT11
002 1x 6,99€ Lautstärkesensor LM393 Der Sensor misst die Lautstärke im Inkubator.
Hierdurch kann überprüft werden ob das Neugeborene schreit.
Datenblatt LM393
003 2x 10,54€ Kraft-/Drucksensor RP-C10-ST Der Sensor misst die Kraft, welche auf ihnen liegt.
Hierdurch kann das Gewicht des Neugeborenen überprüft werden.
Datenblatt RP-C10-ST
004 1x 5,30€ Gassensor MQ2 Der Sensor misst die Konzentration von Methangas im Inkubator.
Hierdurch kann überprüft werden, ob die Windel des Neugeborenen voll ist.
Datenblatt MQ2
005 1x 41,99€ Mikrocontroller Arduino Mega 2560 Der Mikrocontroller dient zur Steuerung des Systems. Datenblatt Arduino
006 1x 5,49€ LCD Display LCD-PM 2X16-6 K Das Display dient dazu, ein visuelles Feedback der Sensordaten aufzuzeigen. Datenblatt LCD-PM 2X16-6 K
007 2x 9,99 (Set-Preis) LED LED Die LEDs (1x grün, 1x rot) dienen ebenfalls als visuelles Feedback,
falls mindestens ein Sensowert aus dem Soll-Bereich fällt.
008 1x 5,94€ (Set-Preis) Kabel Male-Female Kabe (x-mal)... Die Kabel werden benötigt, um die einzelnen Komponenten miteinander zu verbinden
009 1x 5,99€ (Set-Preis) Breadboard MB-102 Das Breadboard wird für die Verbindung der Sensoren benötigt. Datenblatt MB-102
010 1x 4,69€ Aufbewahrungsbox Sunware Aufbewahrungsbox 3L (20x15x14 cm) Die Aufbewahrungsbox dient als Inkubatorkasten.
011 2x ----- 3D-Druck Platte 3D-Druck Platte (1x LxBxHmm ; 1x LxBxHmm) Die kleinere Platte dient als Sichttrennung und Grundplatte überhalb des Arduino, die größere,
um die Kraftverteilung gleichmäßig auf beide Sensoren zu übertragen.

Neben den genannten Bauteilen werden ebenfalls Werkzeuge und andere Materialien benötigt. Diese sind eine Schere und Klebstoff.

Verdrahtungsplan

(Bild einfügen von Fritzing)

Programmierung

Die Programmierung erfolgte mit Matlab Simulink und wird im nachfolgenden näher erläutert. Für die optimale Verwendung mussten für Simulink diverse Add-Ons installiert werden, welche dem nachfolgenden Bild entnommen werden können.

(Bild einfügen Add-On Manager mit den Add-Ons)

Das nachfolgende Bild zeigt das Simulink Modell

(Bild Simulink Modell einfügen)

In der linken Spalte des Modells befinden sich "Data Store Memory" Blöcke. Diese Blöcke werden genutzt, um die Sensordaten zwischen zu speichern. Jeder Sensor erhält dafür einen Block. Die mittlere Spalte besteht aus vier Subsystem Blöcken. Auch hier erhält jeder Sensor ein eigenes Subsystem. Auf die einzelnen Systeme wird im weiteren Verlauf noch eingegangen. Um basierend auf den Sensorwerten ein passendes visuelles Feedback auf dem LCD auszugeben, werden zwei weitere Subsysteme benötigt (eins für die obere Zeile des Displays und eins für die untere). Diese beiden Subsysteme enthalten die die Aussagelogik, um basierend auf den Sensorwerten das entsprechende Feedback auszugeben.

Subsystem Gassensor

(Bild einfügen vom Subsystem Gassensor) In diesem System wird der Gassensor eingestellt. Für den Gassensor wird der entsprechende Block verwendet. Durch einen Doppelklick auf den Block musste der Pin basierend auf dem Schaltplan auf 8 eingestellt werden. Über "Constant" Blöcke werden die Parameter des Gassensors eingestellt, welche dem Datenblatt entnommen werden können. Die Werte werden in eine nachgebaute map Funktion übergeben. Über einen "Data Store Write" Block, werden die Werte des Sensors in den entsprechenden "Data Store Memory" Block geschrieben und dort zwischengespeichert.

Subsystem Lautstärke

(Bild einfügen vom Subsystem Lautstärke) Ähnlich wie beim Gassensor wurde auch hier der Lautstärkesensor eingestellt. Hier wurde jedoch Pin 6 eingestellt.

Subsystem Temperatur/ Feuchtigkeit

(Bild einügen vom Subsystem Temperatur/ Feuchtigkeit) Dieses Subsystem ist etwas anders aufgebaut. Die Sensor Daten werden hier erneut über einen "Data Store Write" Block an die jeweiligen Memory Blöcke weitergegeben. Dabei ist der obere Ausgang des Sensorblocks ("H") der für die Feuchtigkeit und der mittlere für die Temperatur. Die Sensor Daten gehen jedoch ebenfalls in einen "If" Block. Hier werden die Werte Bereiche abgefragt. Wenn die Luftfeuchtigkeit größer als 50% ist oder die Temperatur außerhalb des Bereichs 36°C bis 37°C liegt, dann soll die rote LED leuchten, ansonsten die grüne. Das nachfolgende Bild zeigt das Subsystem für die rote sowie der grünen LED. (Bild einfügen Subsystem LED)

Subsystem Drucksensor

(Bild einfügen vom Subsystem Drucksensor)

Dieses Subsystem ähnelt wieder dem des Gassensors. Da hier jedoch zwei Sensoren zum Einsatz kommen, müssen auch zwei Sensoren eingestellt werden. Die Messwerte werden addiert und anschließend durch zwei geteilt um den Mittelwert zu erhalten. Das Ergebnis wird über einen "Data Store Write" Block erneut in den entsprechenden Memory Block übertragen.

Subsystem Line 1 und 2

(Bild einfügen der Subsysteme)

Dem obigen Bild kann die Aussagenlogik entnommen werden.

Programmablaufplan

PAP Inkubator


Programmcode


%**************************************************************************
% Hochschule Hamm-Lippstadt                                               *
%**************************************************************************
% Modul : ETechnik_Projekt                                                *
%                                                                         *
% Datum : 09. Januar 2023                                                 *
%                                                                         *
% Funktion : Mit diesem Code kann der Arduino sowie die Sensoren des      *
%            Inkubators gesteuert werden.                                 *
%                                                                         *
% Implementierung : MATLAB R2022a                                         *
%                                                                         *
% Req. Toolbox : Legacy MATLAB and Simulink Support for Arduino           *
%                Simulink Library for Arduino DHT sensor and LCD          *
%                Arduino Additional Sensors Library (DHT,LPS331)          *
%                MATLAB Support Package for Arduino Hardware              *
%                MQ_2 Sensor Callibration                                 *
%                mapfun(value,fromLow,fromHigh,toLow,toHigh)              *
%                Simulink Support Package for Arduino Hardware            *                                     
%                                                                         *
% Autor : Olga Ruhe, Robert Leidig                                        *
%                                                                         *
% Bemerkung : Aus Simulink mit embedded coder exportiert                  *
%                                                                         *
% Letzte  ̈Anderung : 09. Januar 2023                                      *
%                                                                         *
%**************************************************************************

(Hier Code von Simulink einfügen)


Aufbau Prototyp

Der Inkubator setzt sich aus dem Gehäuse und der Technik (Arduino, Sensoren...) zusammen. Der Arduino wird laut dem Schaltplan in Abbildung XX mit den Sensoren, dem LCD und den LEDs verdrahtet. Für das Gehäuse müssen, zum Beispiel mit Hilfe einer Schere, Aussparungen in die Aufbewahrungsbox geschnitten werden. Durch diese werden dann sowoahl das LCD als auch die LEDs gesteckt. Die nachfolgende Bilderserie zeigt den schrittweisen Zusammenbau des Prototypen. (Bildserie einfügen)

Komponententest

Um sicherzustellen, dass die Sensoren plausible Werte ausgeben, mussten diese zuvor getestet werden. Hierzu wurde jeder Sensor einzeln an den Arduino angeschlossen und getestet. Für die Tests wurde die Arduino IDE verwendet. Für jeden Sensor wurde ein kleines Programm geschrieben, welches die Sensordaten in der Arduino IDE ausgibt. Dabei stellte sich heraus, dass die Sensoren plausible Werte gemessen haben.

Temperatur/ -Feuchtigkeitssensor Um die Messwerte des DHT11 Sensors zu verifizieren, wurde als Vergleichswert ein Thermo-Hygrometer HP01B-3 der Marke hoyiours verwendet. Beim Vergleich der Messwerte ergab sich eine durchschnittliche Abweichung von ca. +-2%. Lautstärkesensor Für die Validierung des Lautsstärkesensors wurde die IPhone App "Dezibel X -dBA Lärm Messgerät" verwendet. Hierbei ergab sich eine Differenz von ca, +-2,5%

Gewichtssensor Der Gewichtssensor wurde mit einer definierten Masse (100g Schokoladentafel) getestet. Die Abweichung betrug ca. +- 1,5%

Gassensor Der Gassensor wurde mit Hilfe eines Feuerzeugs getestet. Wird nur das Gas freigelassen (hier statt Methan Propan) muss der Sensorwert steigen, was dieser auch tat. Eine genaue Messeinrichtung stand uns nicht zur Verfügung, wodurch es keine Referenzwerte gibt.

Ergebnis und Zusammenfassung

Das Projekt konnte großteils erfolgreich durchgeführt und abgeschlossen werden. Es war möglich, mit Hilfe des Arduinos einen Inkubator Prototypen zu erstellen. Der nachfolgenden Tabelle können die durchgeführten Tests entnommen werden

ID (Anforderung) Test Testergebnis Anmerkung
1.0 Überprüfung der Aufnahme von geforderten Sensorwerten (inkl. Gassensor) erfolgreich keine
1.1 Visuelle Überprüfung ob die Werte auf dem LCD angezeigt werden teilweise erfolgreich Werte an sich konnten nicht angezeigt werden, das notwendige Feedback basierend auf den Werten hingegen schon
2.0 Überprüfung ob in Simulink ein Vergleich der Soll- und Ist-Werte stattfindet erfolgreich keine
2.1 Visuelle Überprüfung ob die LEDs bei Wertänderungen entsprechend leuchten erfolgreich keine
3.0 siehe Test zu 1.0 siehe Test zu 1.0 keine
3.1 Visuelle Überprüfung basierend auf Propangas Änderung erfolgreich keine
0.1.0 Wurde in diesem Projekt nicht betrachtet ----------- Wurde in diesem Projekt nicht betrachtet

Lessons Learned

Durch das Projekt konnten wir Inhalte aus dem Studium näher vertiefen. Wie erlangten zum Beispiel ein besseres Verständnis von Sensoren und deren Zusammenspiel mit einem Mikrocontroller. Auch lernten wir die Vorteile und Nachteile der Verwendung von Simulink zur Programmierung für Mikrocontroller kennen. Zu den Nachteilen gehört unteranderem, der beschränkte Support Simulinks für Arduino. Viele Funktionen, welche es in der Arduino IDE gibt, gibt es nicht für Simulink, weswegen wir uns "Workarounds" überlegen mussten. Angenehm war jedoch, das simple "Blocksystem" welches Simulink anbietet. Hierdurch kann Code viel leichter und schneller erzeugt oder verändert werden.

Besondere Schwierigkeiten machte die Einbindung des LCD. Diese begannen bereits dabei eine nutzubare Library zu finden. Einige waren nur für ältere Matlab Simulink Versionen geeignet und funktionierten mit 2022a nicht. Nachdem eine passende gefunden wurde, bereitete die Anzeige der Sensorwerte Schwierigkeiten. Texte des Datentyps "String" konnten problemlos ausgegeben werden. Bei den Sensorwerten hingegen funktionierte die Umwandlung in ASCII Code nicht. Das LCD gab lediglich unterschiedliche Zeichen aus. Dies konnte bis zujm SChluss nicht behoben werden. Vermutlich würde hier die Arduino IDE abhilfe schaffen.

Durch das Projekt machten wir jedoch nicht nur technische Erfahrungen. Wir konnten zudem üben ein Projekt zu planen und erfuhren, wie wichtig eine gute Planung ist (im Bezug auf die Zeit und die Umsetzung). Rückblickend betrachtet, ist das Projekt aufgrund der Anbindung der vielen Sensoren und der Verwendung von Simulink als komplexer anzusehen. Trotzdem sind wir froh diese Erfahrung gemacht zu haben, da sie uns auch lehrte, bei schwierigen Problemen eine Lösung zu finden.

Projektunterlagen

Dem Zip-Archiv sowie dem SVN Ordner können die relevanten Projektunterlagen entnommen werden.

Projektplan

Für die Zeitplanung wurde ein Gantt Diagramm erstellt. Hierdurch konnten wir unsere Zeit genau planen und bekamen eine genauere Übersicht über alle anstehenden Aufgaben.

PAP Inkubator


Projektdurchführung

Nachdem wir uns auf ein Projekt geeinigt hatten, konnten wir die benötigten Hardwarekomponenten bestellen und uns anschließend an die Programmierung begeben. Die Programmierungsarbeiten nahmen hierbei die meiste Zeit in Anspruch. In der Testphase der Programmierung wurde parallel mit der Erstellung des Inkubatorkastens begonnen. Hierzu wurden 3D-Druck Platten konstruiert und gedruckt. Zum Schluss wurden alle Teile miteinander kombiniert und anschließend einem letten Test unterzogen.

YouTube Video

Weblinks

Literatur


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