Forum: Mikrocontroller und Digitale Elektronik Schlafphasen für Lichtwecker erfassen


von Karl Käfer (Gast)


Lesenswert?

Hallo liebe Liebenden,

inspiriert nicht zuletzt durch den Quick&dirty-Thread [1] möchte ich 
einen Lichtwecker bauen. Der soll aber nicht nur einfach wecken, sondern 
das zu einem angenehmen Zeitpunkt tun -- also in der richtigen 
Schlafphase.

Da ich mich und die beste Ehefrau von allen nächtens nur ungern 
verkabeln möchte, sehe ich für die Schlafphasenerkennung aktuell zwei 
Möglichkeiten: entweder einen PIR-Sensor über dem Bett, oder einen 
Bewegungs- und / oder Drucksensor unter der Matratze oder dem 
Lattenrost.

Zu Beginn möchte ich nur einen simplen Datenlogger bauen, der nachts 
läuft und die Daten eines PIR-Sensors und eines Bewegungsmelders loggt. 
Daraus sollen dann hybsche Grafiken erzeugt und das Schlafverhalten 
analysiert werden.

Hat jemand schon einmal mit diesen Methoden experimentiert und möchte 
ihre oder seine Erfahrungen schildern?

Welche Bewegungs- und / oder Drucksensoren könnte ich verwenden, fällt 
da jemandem spontan etwas ein?

Hat möglicherweise noch jemand Interesse an so einem Projekt und möchte 
dabei mitwirken?

Liebe Grüße,
Karl

[1] Beitrag "Quick&dirty - schnelle Problemlösungen selbst gebaut"

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Karl Käfer schrieb:
> Bewegungs- und / oder Drucksensor unter der Matratze oder dem
> Lattenrost.

 Nicht vergessen diesen bei gewissen Tätigkeiten abzuschalten.

von Tom (Gast)


Lesenswert?

Karl Käfer schrieb:
> Hat jemand schon einmal mit diesen Methoden experimentiert[?]
> Welche Bewegungs- und / oder Drucksensoren könnte ich verwenden?

Eine Piezoscheibe auf den Lattenrost geklebt ist ziemlich simpel:
http://www.roboternetz.de/community/threads/32403-Schlafhasen-Wecker-mit-Beschleunigungssensor-realisierbar?p=306329&viewfull=1#post306329
Der Rest ist Software.

von Frank S. (Firma: arbeitslos) (arduino_macht)


Lesenswert?

Einfach eine App auf dem Smartphone zu benutzen (und damit den 
eingebauten Bewegungssensor) wäre zu unaufwändig vermute ich?

App: Sleep as Android

von Der Gast (Gast)


Lesenswert?

Hat jemand von euch sowas schomal probiert und kann davon berichten?

Laut einem Test soll das System mit der reinen Bewungserkennung nicht 
soo wirklich hinhauen: 
http://www.spiegel.de/wissenschaft/medizin/iphone-schlafphasenwecker-mangelhafter-muntermacher-a-674180.html

von Steffen (Gast)


Lesenswert?

Also ich hab so ein Gerät zu Hause, vielleicht kann man die Druckplatte 
verwenden. Müsste man mal schauen wie das Teil funktioniert...

http://www.angelcare.de/produkte/angelcare-ac300.html

von unwissender (Gast)


Lesenswert?

Hm ... wenn schon dann wäre soetwas vielleicht mehr die sinnvollere 
Richtung:

http://de.wikipedia.org/wiki/Schlafphasenwecker

und daran eine Schaltung für den Lichtwecker basteln ... ?

Ein Bewegungsensor hat m.M. wenig Sinn denn der Mensch bewegt sich ja 
andauernd im Schlaf, die einen weniger, die anderen mehr.

Ein Lichtwecker mit dem man über einen steuerbaren Steckdose eine 
Stehlampe anschliessen kann ist eine sehr angenehme Sache (auch für 
Partner(in). Ich wache seit 20 Jahren mit so einem Lichtwecker auf ...

von unwissender (Gast)


Lesenswert?

Ok, ich habe es nochmal durch gelesen ... sorry, war zu schnell.

Funktioniert ja alles mit Bewegungsmeldern ... :(

von Ulrich H. (lurchi)


Lesenswert?

Es gibt noch die Möglichkeit den Schlaf so zu trainieren das man zur 
rechten Zeit in der richtigen Schlafphase ist, bzw. auch kurz vor dem 
klingeln des Weckers normal aufwacht. Mit einer festen Weckzeit, auch am 
Sonntag schaffen das einige.

von Jan H. (j_hansen)


Lesenswert?

Ich habe mir dieses Thema vor zwei Jahren angesehen. Soweit ich mich 
erinnere war die Erkenntnis, dass die Messung der Bewegung eher ungenau 
ist. Und wenn zwei Personen im selben Bett liegen kann man es sowieso 
vergessen.
Gerade bei einem über 30 Minuten hochdimmenden Lichtwecker ist die 
Schlafphase wohl sowieso eher egal. Wenn man schon fast wach ist, dann 
wacht man schon bei ein bisschen Licht auf. In der Tiefschlafphase wird 
man das bisschen Licht einfach ignorieren.

von jz (Gast)


Lesenswert?

War der Sinn der Lichtweckers nicht der, dass der in jeder Schlafphase 
recht angenehm ist? Ich meine, wenn das Licht langsam angeht, gibt's da 
doch bestimmt irgendeinen Rest aus der Steinzeit(oder früher), der mich 
in eine etwas wachere Phase versetzt, bis ich gemütlich aufwache...

von unwissender (Gast)


Lesenswert?

Ich glaube Morgenmuffel sind auch gegen langsam ansteigendes Licht 
ziemlich imun ... ;) Die Wirkungsweise eines normalen Lichtweckers 
(eigentlich für gehörlose Menschen gedacht) beruht darin dass die 
Lichtfrequenz einem langsam an die "Oberfläche" bringt ohne dass es 
schreckhaft wirkt wie beim Klingelton. Aber dass ist ja denoch nicht die 
Frage des Threaderstellers.

Ich könnte mir jedoch so ein Neigungssensor mit Funk als Armband 
vorstellen oder eingenäht in der Unterwäsche (hüstel) ... da hätte man 
zu mindenst nicht das Gefühl verkabelt zu sein.

von unwissender (Gast)


Lesenswert?

OT: Auch wenns angenehm ist aber es ist das Ein und Aus in einem 
1Hz-Takt dass selbst schwerste Fälle von Morgenmuffel langsam an die 
Oberfläche bringt. (nur nebenbei erwähnt).

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Also Licht mit 1HZ ein/aus ist besser als Sonnenaufgang simulieren 30min 
lang?
Haste maln Link?

Hab ja nen selbergebauten Lichtwecker, den ich mal um Schlafphasen 
erweitern wollte, aber ein rumliegender MEMS Sensor war einfach zu 
unempfindlich.

von unwissender (Gast)


Lesenswert?

Schau mal unter Wecker von Humantechnik. Ist nicht billig. Das könntest 
du sicher billiger haben indem du einen normalen Wecker irgendwie den 
Alarmausgang an so ein Solid-State-Relais im Steckergehäuse bastelst.
Von Humantechnik gibst auch andere Wecksysteme wie Vibrationskissen ect.

von Daniel (Gast)


Lesenswert?

Martin Wende schrieb:
> aber ein rumliegender MEMS Sensor war einfach zu
> unempfindlich.

Nicht lachen - ich hab meinen so auf der Matratze befestigt, dass er 
sich etwa auf Höhe des Hinterns befindet. Bei Bewegung verändert er 
seine Neigung, es werden also nicht die vergleichsweise hochfrequenten 
Erschütterungen ausgewertet, sondern die Lageänderung. War eigentlich 
ein Provisorium, läuft aber schon seit fast 2 Jahren so.

Ich hab es so gemacht, dass das Licht langsam aufdimmt und innerhalb der 
Aufdimmphase bei Bewegung sowie spätestens am Ende der Aufdimmphase ein 
Signalton angeht.
Innerhalb der Aufdimmphase kann man mittels Tastendruck den Ton nochmal 
abstellen bis zum Ende des Aufdimmens. Nach dem Aufdimmen geht das auch, 
der Ton geht dann aber bei Bewegung sofort wieder los und das Licht auf 
volle Pulle.

von Michael L. (michaelx)


Lesenswert?

Karl Käfer schrieb:

> Da ich mich und die beste Ehefrau ...

Habt ihr getrennte Schlafzimmer? Alternativ: Wie stellst du sicher, dass 
ihr beide eure Schlafphasen synchronisiert?

Sonst wird einer von euch beiden in der falschen Phase geweckt. ;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Radar wäre auch eine Möglichkeit: Conrad 502370

von Karl Käfer (Gast)


Lesenswert?

Hallo Michael,

sorry, daß meine Antwort so lange auf sich warten ließ, aber in der 
Firma war es in den letzten Tagen ein wenig, nunja, hektisch.

Michael L. schrieb:
> Karl Käfer schrieb:
>
>> Da ich mich und die beste Ehefrau ...
>
> Habt ihr getrennte Schlafzimmer?

Nein, haben wir noch nicht. Aber ich befürchte, daß das demnächst der 
Fall sein wird, wenn sie weiterhin morgens um sieben von meinem 
Piepswecker geweckt und dann von einem morgenmuffeligen Ehemann 
angeranzt wird.

> Alternativ: Wie stellst du sicher, dass ihr beide eure Schlafphasen
> synchronisiert?

Gar nicht. Ich werde leicht von Licht wach, bin aber eher unempfindlich 
gegenüber Geräuschen. Bei der besten Ehefrau von allen ist es genau 
andersherum: bei Geräuschen schreckt sie sofort auf, aber Licht ist kein 
Problem. Nicht zuletzt diese Erfahrung hat mich auf die Idee gebracht, 
es einmal mit einem Lichtwecker auszuprobieren.

> Sonst wird einer von euch beiden in der falschen Phase geweckt. ;-)

Das ist möglich, aber aufgrund der vorgenannten Erfahrungen vermutlich 
kein allzu großes Problem. Zumal die beste Ehefrau von allen meistens 
entweder schon wach ist und die Kazten gießt, wenn mein Wecker klingelt, 
oder sich einfach noch mal umdrehen und weiterschlafen darf, wenn ich 
aufgestanden bin.

Soviel zum "sozialen" Hintergrund meiner Ideen; zu meinen aktuellen 
technischen Überlegungen komme ich in einem weiteren Beitrag.

Liebe Grüße,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo Daniel,

Daniel schrieb:
> Martin Wende schrieb:
>> aber ein rumliegender MEMS Sensor war einfach zu
>> unempfindlich.
>
> Nicht lachen - ich hab meinen so auf der Matratze befestigt, dass er
> sich etwa auf Höhe des Hinterns befindet. Bei Bewegung verändert er
> seine Neigung, es werden also nicht die vergleichsweise hochfrequenten
> Erschütterungen ausgewertet, sondern die Lageänderung. War eigentlich
> ein Provisorium, läuft aber schon seit fast 2 Jahren so.

Was für einen Sensor hast Du denn benutzt, und wie wertest Du den aus?

> Ich hab es so gemacht, dass das Licht langsam aufdimmt und innerhalb der
> Aufdimmphase bei Bewegung sowie spätestens am Ende der Aufdimmphase ein
> Signalton angeht.

Ja, so ähnlich habe ich das auch vor. In meinem Fall sollen LEDs in drei 
verschiedenen Farben und ein (oder mehrere) Halogen-Strahler für das 
Licht sorgen: zuerst rote LEDs, dann orange, dann warmweiße und zuletzt 
dann der Strahler.

> Innerhalb der Aufdimmphase kann man mittels Tastendruck den Ton nochmal
> abstellen bis zum Ende des Aufdimmens. Nach dem Aufdimmen geht das auch,
> der Ton geht dann aber bei Bewegung sofort wieder los und das Licht auf
> volle Pulle.

Gute Idee, vielleicht übernehm ich die. Aber mit dem Ton bin ich mir 
noch nicht sicher, wie ich das mache.

Meine derzeitigen Überlegungen drehen sich noch primär um die Erkennung 
von Bewegung. Mit einem MEMS-Sensor habe ich noch nie gearbeitet und 
habe keine Ahnung, was ich da nehmen kann. Die von Tom (Gast) erwähnte 
Piezo-Scheibe hört sich interessant an; beim Lesen kam mir auch der 
Gedanke, ein Elektret-Mikrofon unter den Lattenrost zu kleben und das 
Signal mit einem OPV zu verstärken. Lothars Idee mit dem Radarsensor 
klingt ebenfalls interessant, ich fürchte jedoch um den WAF...

Hardwareseitig möchte ich jetzt langsam mal mit einem Prototypen zur Tat 
schreiten; vermutlich wird der Datenlogger ein RasPi mit einem oder zwei 
Arduino Uno als Analog-Schnittstellen. Gleichzeitig soll der RasPi mit 
einer NoIR-Raspi-Camera alle paar Sekunden Bilder machen, um Bewegungen 
mit den Sensordaten zu korrelieren. Einen PIR-Sensor, eine Piezoscheibe 
und ein Elektret-Mikro habe ich hier eh noch irgendwo herumliegen, und 
einen RasPi und ein paar Arduinos sowieso. Wenn Du mir jetzt noch einen 
MEMS-Sensor nennen kannst, würde ich also erstmal Daten sammeln.

Der Rest ist, wie jemand anderes in diesem Thread bereits angemerkt hat, 
eine passende Software. Da bin ich sehr gespannt, was auch mich zukommt.

Liebe Grüße,
Karl

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Soll der Halogenstrahler dann auch die Wärme der Sonnenstrahlen 
simulieren?

von Karl Käfer (Gast)


Lesenswert?

Hallo Martin,

Martin Wende schrieb:
> Soll der Halogenstrahler dann auch die Wärme der Sonnenstrahlen
> simulieren?

Auch das gehört zur Überlegung, ja. Aber vor allem soll er 
breitbandiges, beim Aufdimmen etwas rötlich gefärbtes und danach helles 
Licht in einem Farbspektrum liefern, das der Sonne möglichst ähnlich 
ist.

Liebe Grüße,
Karl

von Daniel (Gast)


Lesenswert?

Karl Käfer schrieb:
> Daniel schrieb:
>> Martin Wende schrieb:
>>> aber ein rumliegender MEMS Sensor war einfach zu
>>> unempfindlich.
>>
>> Nicht lachen - ich hab meinen so auf der Matratze befestigt, dass er
>> sich etwa auf Höhe des Hinterns befindet. Bei Bewegung verändert er
>> seine Neigung, es werden also nicht die vergleichsweise hochfrequenten
>> Erschütterungen ausgewertet, sondern die Lageänderung. War eigentlich
>> ein Provisorium, läuft aber schon seit fast 2 Jahren so.
>
> Was für einen Sensor hast Du denn benutzt, und wie wertest Du den aus?

Sorry, hab den Thread vergessen, weil ich ihn auf dem anderen PC 
geöffnet hatte, und erst jetzt gesehen, dass da noch eine Frage für mich 
war.

Hatte bis dahin auch noch nix mit MEMS gemacht und war folglich auch 
neugierig. Ist aber unspektakulär. Ich hatte mich für den entschieden:
http://www.watterott.com/de/MMA7361L-3-Axis-Accelerometer-15/6g
Gründe: Breakoutboard ist praktisch, Analogausgang war billiger. Würde 
aber, wenn ich's nochmal zu tun hätte, was Digitales (I2C) bevorzugen. 
Man braucht ja ein längeres Verbindungskabel, und da fängt man sich doch 
Brumm etc. ein.

Auswertung (wie gesagt, alles mehr oder weniger Zufall, weil ich 
eigentlich auch erstmal nur Bewegungen erfassen wollte; der Code ist 
auch Kraut und Rüben, sonst würde ich ihn posten):
Sensor an 3 Analogeingänge. Messintervall ca. 8 Hz. Jeden Kanal nochmal 
tiefpassfiltern. Dann jeden Kanal "ableiten" (also Differenz zum vorigen 
Wert bilden) und für alle Kanäle aufsummieren. Diesen Wert mit einem 
Schwellwert versehen. Wird der überschritten --> Bewegung erkannt.

Durch die Filterung wird alles SEHR langsam. Verändert der Sensor seine 
Lage, wird das Filter angeregt, macht einen großen Buckel und schwingt 
dann sehr langsam auch wieder aus. Man kann es bestimmt auch weglassen. 
Es stammt von einem Online-Tool und war eigentlich gegen eine Störung 
gedacht, die über eine Brummschleife vom angeschlossenen Laptop kam und 
sieht so aus:
1
/* Digital filter designed by mkfilter/mkshape/gencode   A.J. Fisher
2
   Command line: /www/usr/fisher/helpers/mkfilter -Bu -Lp -o 2 -a 2.0000000000e-03 0.0000000000e+00 -l */
3
4
#define NZEROS 2
5
#define NPOLES 2
6
#define GAIN   2.555570536e+04
7
8
typedef struct _filterData
9
{
10
  float xv[NZEROS+1], yv[NPOLES+1];
11
} filterData;  
12
13
void InitFilterDerData(filterData* fd)
14
{
15
  for(uint8_t i=0; i<(NZEROS+1); i++)
16
    fd->xv[i] = 0.02;
17
18
  for(uint8_t i=0; i<(NPOLES+1); i++)
19
    fd->yv[i] = 512;
20
}
21
22
23
float Filter(filterData* fd, uint16_t inval)
24
{
25
    fd->xv[0] = fd->xv[1]; fd->xv[1] = fd->xv[2];
26
        fd->xv[2] = (float)inval / GAIN;
27
        fd->yv[0] = fd->yv[1]; fd->yv[1] = fd->yv[2];
28
29
        fd->yv[2] =   fd->xv[0] + fd->xv[2] + 2 * fd->xv[1]
30
                     + ( -0.9823854506 * fd->yv[0]) + ( 1.9822289298 * fd->yv[1]);
31
32
        return (float)(fd->yv[2]);
33
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.