Model eines Inkubators(Brutkasten) für Neugeborene mit einer Überwachungsfunktion
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
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
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
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 |
---|---|---|---|---|---|
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. | |
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
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.
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)