This is a pretty simple project based on the Lumich One papercraft lamp. It features a touchless on/off/dimming lamp and sunrise alarm, and a PIR activated bedside clock.
Like most things I make, the functionality was born of necessity. I required a bedside light that I didn't have to hunt to find the switch, dimmer capability, and a bedside alarm clock that doesn't "bother" my overly-light-sensitive-while-sleeping wife.
- Three(N) position touchless control interface.
- PIR activated clockface
- Sunrise alarm
- Dimmer controlled lamp
- DST compensation
Some notes here:
My wife is a finicky sleeper when it come to light. Call it thin eyelids or an inability to shut her damn eyes off at night, but she requires near total blackness to sleep well. Oh, and did I mention she doesn't like sleep masks? Now, having said that, after taping over all of the LED's in the bedroom, squashing every light crack, and making this lamp, I have to say that I rather enjoy it. The PIR is set to minimum sensativity and a 10 sec re-retrigger. There is a selector switch for high or low trigger signal. I think I have the code set to trigger = HIGH. This is directly tied to the clockface being on or off. It works well.
I straight jacked the sunrise RGB data from the internet. I have looked and there are several possible sources. Have a Google for yourself. If anyone would like to claim it, I will post ATTRIB. and no, I don't actually use the sunrise alarm, but snooze was cool to try to figure out.
In the original Lumich lamp, an ultrasonic Ping)) sensor was used to detect distance from the top. They are surprisingly noisy to me and my children, but not the wife, and 3 of the 4 cats don't much care for them either. If you have a pest problem, use the ultrasonic. The IR distance sensor, being available in several flavors, was an easy choice for me.
Working out DST compensation that I like has been weird. I hate it. I've tried three different ways and every one, I've screwed up in some ridiculous way. The current one goes from 24:59 to 1:00. But, trying to stay true to the "NoTouch" name, I will have figure[d] this out.