Halbsmartes Bad-Modul: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 74: Zeile 74:
# Breadboard (830 Kontakte)
# Breadboard (830 Kontakte)
# Gehäuse Arduino Uno R3 (transparent)
# Gehäuse Arduino Uno R3 (transparent)
[[Datei:Bad-Modul Kosten.jpeg|mini|rechts|Kostenkalkulation und Auswahl der Komponenten für das Halbsmarte Bad-Modul]]


== Umsetzung (HW/SW) ==
== Umsetzung (HW/SW) ==

Version vom 6. Januar 2022, 08:26 Uhr

Autoren: Lukas Mücke & Dominik Sumkötter
Betreuer: Prof. Dr.-Ing. Ulrich Schneider


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik


Einleitung

Unser Ziel ist es ein multifunktionales System zu entwickeln, dass allerlei Features rund ums Bett bietet. Dabei darf es gerade im Bezug auf eine Weckfunktion auch mal unangenehm und "böse" werden. Der Name soll daher auf einerseits auf den Einsatzbereich "Bett" und andereseits auf die unangenehmen Weckeigenschaften hindeuten. Darüber hinaus soll das System aber auch eine freundliche Seite haben und in gedämpften Licht den Bodenbereich ausleuchten, sobald nachts Bewegung detektiert wird.

Die wesentlichen Features

Folgende Aufgaben soll das Modul bewältigen:

1. Licht im Fußbereich einschalten

  • Licht soll nur ab einer bestimmten Dunkelheit angehen.
  • Licht soll bei dunkler Umgebung gedämpft und bei relativ heller Umgebung heller leuchten.


2. Wecken in verschiedenen Stufen

  • Licht wird langsam heller, Licht blinkt, Farben wechseln von Blau nach Rot
  • Ton wird dazu geschaltet, Lautstärke steigt
  • Wecker soll deaktiviert werden, wenn es im Zimmer hell ist (Person ist schon aufgestanden), oder über einen Taster. Eventuell über einen Bewegungsmelder
  • Eventuell Sleep-Funktion

Anforderungen

ID Feature Anforderung
Tabelle: Anforderungen an das halbsmarte Bad-Modul
1 Design Das Modul ist muss sowohl kompakt, als auch einfach zu montieren sein. Die Bauelemente (Arduino, Sensoren usw.) sollen vor z.B. Fußtritten geschützt sein. Außerdem darf das Modul beim Aufstehen nicht im Weg sein.
2 Fußbodenbeleuchtung Das System registriert Bewegungen vor dem Bett und schaltet das Licht ein, wenn die Umgebung dunkel genug ist. Das Licht soll automatisch erlöschen, wenn längere Zeit keine Bewegung vor dem Sensor erfolgt.
3 Automatische Dimmung Das System wählt eine unterschiedliche Lichtintensität, je nachdem wie dunkel es ist, um in völliger Dunkelheit nicht zu blenden und bei gedämpftem Licht trotzdem für bessere Sicht zu sorgen.
4 Wecksystem Das Modul soll erst sanfte Weckversuche über optische Reize (heller werdendes Licht, blinken) starten und über die Zeit intensiver, und über auditive und optische Signale Wecken.
5 Bedienung Die Weckzeit soll direkt am Modul eingestellt und abgelesen werden können.

Funktionaler Systementwurf/Technischer Systementwurf

Systementwurf des Bad-Modul
PAP des Bad-Modul

Komponentenspezifikation

Komponentenliste:

  1. Bewegungsmelder: HC-SR501
  2. Passiver Lautsprecher
  3. Kurzhubtaster 12x12x6mm
  4. LED-Ring: WS2812 (als Schauobjekt, in der Praxis eventuell 10m-Leuchtband)
  5. Fotowidertand
  6. DS1307 I2C RTC Modul (Uhrzeitmodul)
  7. Breadboard (830 Kontakte)
  8. Gehäuse Arduino Uno R3 (transparent)
Kostenkalkulation und Auswahl der Komponenten für das Halbsmarte Bad-Modul

Umsetzung (HW/SW)

Hardware

Das Bad-Modul soll unkompliziert am Bett angebracht werden können. Hierfür wurde eine T-förmige Halterung in Solidworks erstellt und per 3D-Druck realisiert. Nach erfolgreichen Test der Komponenten und fertigem Aufbau der Schaltung auf dem Breadboard, wurden die einzelnen Bauelementen an der Halterung befestigt. Ursprünglich war geplant vandalismusgeschützte Schalter zu verwenden; diese Idee wurde aus Kostengründen verworfen.

Software

Zur Ansteuerung der Komponenten wurden folgende Bibliotheken genutzt:

  • Wire von Arduino
  • Adafruit_NeoPixel von "Phil "Paint Your Dragon" Burgess" (für Adafruit Industries)
  • Time von Paul Stoffregen
  • DS1307RTC von Paul Stoffregen
  • LiquidCrystal I2C von Marco Schwartz

Grundsätzlich werden in einer Endlosschleife die verschiedenen Eingänge eingelesen:

  • Taster A und B
  • Bewegungsmelder
  • Spannungsabfall am Photowiderstand

und über I2C die aktuelle Uhrzeit vom RTC-Modul eingelesen.

Anschließend wird passend zu den eingelesenen Werten, in verschiedenen if-Abfragen entschieden, welche Funktion aktiviert wird. Ist es zum Beispiel dunkel (geringer Wert am Photowiderstand) und der Bewegungsmelder reagiert, wird die Bodenbeleuchtung aktiviert. Die Helligkeit ergibt sich aus folgender Formel:

Mit der maximalen Helligkeit LHmax und der aus der Spannung am Photowiderstand errrechnete Wert UH für die Helligkeit der Umgebung.

Und aus dieser Formel ergibt sich, um welchen Betrag sich die Helligkeit erhöhen soll:

Step ist Schrittgröße mit der das Licht heller wird. DimTime , die Zeit, bis das Licht die maximale Helligkeit haben soll und DimPause die Zeit zwischen den Dimmschritten.

Nach definierter Zeit geht das Licht wieder aus, außer es wird weiter eine Bewegung detektiert. Falls das Licht in unter fünf Sekunden ausgehen würde, werden dann weitere fünf Sekunden bis zum Abschalten des Lichts addiert. Das Licht wird dann in gleicher Schrittweite runtergedimmt.

Wenn die Uhrzeit mit der eingestellten Weckzeit übereinstimmt, werden Weckmaßnahmen in fünf verschiedenen Intensitäten aktiviert:

  1. Langsames aufdimmen des Lichts (weißes Licht)
  2. Langsam blinkendes Licht (weißes Licht)
  3. Langsam blinkendes Licht und Signalton (weißes Licht)
  4. Langsam blinkendes Licht und Signalton (rotes Licht)
  5. Schnell wechselndes Licht in verschiedenen Farben und Signalton

Die einzelnen "Stages" werden auf dem LCD-Display ausgegeben.

Wenn der Wecker nach einer gewissen Weckdauer nicht deaktiviert wurde, geht er von selbst aus. Dies soll verhindern, dass der Wecker ewig weiter weckt, auch wenn zum Beispiel niemand zu Hause ist.

Mit den Tastern kann der Wecker aktiviert, bzw. deaktiviert werden und die Weckzeit eingestellt werden. Beim Einstellen der Weckzeit, wird erfasst, wie lange der Knopf gedrückt wird. Bei einmaliger Betätigung wird die Weckzeit um eine Minute erhöht. Bei längerer Betätigung um 10 Minuten und schließlich um 30 Minuten.

Komponententest

Es wurde für jede Komponente ein Testprogramm geschrieben, um die für das fertige Bad-Module notwendigen Funktionen zu testen. Anschließenden wurden die Komponenten an den Arduino angeschlossen und die Programme optimiert.

Anschließend wurden immer mehr Module zusammen angeschlossen und der finale Code um die entsprechenden Funktionen ergänzt, bis das gesamte Module betriebsbereit war.

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Projektdurchführung

YouTube Video

Hier können die Funktionen des Moduls angsehen werden:

[1]

Weblinks

Literatur


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik