2 # Simple sleep monitor (Harvie 2012)
4 # You probably have soundcard with one output and input
5 # Take PIR motion sensor from security system
6 # Use PIR to switch connection between left channels of output and input (tips of 3.5mm jacks)
7 # Connect grounds of these two together (maybe you will not need it - depending on your soundcard)
10 # Use alsamixer and some GUI recorder (like audacity) to tune volume to some usable level
11 # Place PIR facing to your bed and go sleep
16 out
=/tmp
/sleeplog-
"$(date +%F_%T)".txt
17 speaker-test
-t sine
&>/dev
/null
&
22 while getopts "s" OPT
; do
23 test "$OPT" == 's' && screen
=true
;
25 echo "Writing to file: $out";
26 arecord | .
/goertzel
-n i
-q -l c
-t $tresh -d 4 |
while read line
; do
28 time="$(echo "$line" | cut -f 1)"
29 level
="$(echo "$line" | cut -f 2)"
30 echo -ne "$time\t$date\t$(date '+%F%t%T')\t"
31 test "$level" -gt "$tresh" && {
32 echo -n "0 Nothing detected...";
33 $screen && xset dpms force off || true
;
35 echo -n "1 Motion detected!!!!";
36 $screen && xset dpms force on
;
38 test "$lastdate" != 0 && {
39 after
=$
(( $date - $lastdate))
40 echo -ne "\t$level After $after secs";
43 .
/sleepplot.sh
"$out" &>/dev
/null
&
48 echo "Your file: $out"