Instructables
Since this Lazy Old Geek (LOG) is getting Old, he(I) forget things. Now I like to take a shower every other day but can’t remember if it’s shower day or not. I could mark it on a calendar (paper or computer) or I could even have the calendar alarm me but for various reasons, sometimes I will want to shift my schedule. Well, my MD said my memory was okay for my age, so I decided to make a little Shower Monitor. For the electronic hobbyist, enough information is provided to make this project (hopefully). Parts list, CAD files and software is provided.
 
Remove these adsRemove these ads by Signing Up

Step 1: Design

Design

1. Well, this is LOG so I naturally decided to use an Arduino.
2. It would be battery powered since it will go in my bathroom.
3. I wanted it to show the day of the week and whether or not it’s shower day.
4. I also wanted to be able to toggle the shower day on or off if I wanted to change it.
 
The ‘standard’ Arduino, like the UNO is not very well designed for battery operation, so I decided to build my own Arduino on a PCB.
I decided on the Lithium 18650 battery as it’s my current favorite battery of choice. (see picture) This battery voltage will vary from about 4.2Vdc fully charged down to about 2.0Vdc.
Technobabble: One of the brains of the Arduino is the AtMega328P. Another current favorite for me. Now this microprocessor will theoretically operate with a voltage of 4.2Vdc down to about 1.8Vdc but I think in the Arduino standard environment it is limited to 2.9Vdc? Anyway, that’s good enough for me. However, at lower voltages, the clock needs to be reduced to 8MHz.
Eagle files are atttached, schematic and PCB. This schematic is my prototype design so includes parts I thought might be necessary. I did not stuff the DS1307, 32.768KHz crystal and battery holder.
 
I made and stuffed the PCB.
I installed different colored LEDs for the day of the week so it’s a little easier to distinguish one day from another. (My eyesight isn’t the greatest)

Parts List:
1 18650 Battery
1 18650 Battery holder
1 Shower Monitor PCB (Can be made with Eagle Cadsoft files)
1 ATmega328P microprocessor
1 28 pin IC socket
6   Male header pins
1 Tactile SPST switch
1 Tactile DPST switch
1  Capacitor 0.1uFd
2  Capacitor 22pFd
1  Cylindrical crystal 8MHz
8  LED 3MM (assorted colors)
1  Resistor 10K
8  Resistor 1.5K
1 JST2.0 connector set (male/female)
Scrap wire
Scrap plastic
diy_bloke3 days ago

"Problem: I needed a way to figure out the day of the week."
I presume you found out already but there is afunction 'weekday' or 'day of week' that returns nr 1-7

msuzuki777 (author)  diy_bloke3 days ago

I guess I didn't explain the RTC library in this Instructable. It's available at:

https://github.com/jcw/rtclib

It does include a function like you want called dayOfWeek() and it does return numbers, I think 0-6.

What I didn't like about this Instructable was that the clock in just the Arduino wasn't very accurate. So I made another Instructable:

http://www.instructables.com/id/Arduino-Shower-Mon...

which uses a DS1307 to keep time.

LOG

yes i saw the other one. pretty nice. I like your PCB, well done. I presumed you had figured it out already, just wanted to leave the reply in case someone else stumbled upon it.
The DS1307 actually isnt that accurate either. I think mine was 4 minutes behind in 10 days. There is a more precise one, the DS3231 that can be bought for around the same price and it is lib compatible

msuzuki777 (author)  diy_bloke2 days ago

Thanks for the info. I guess for my purposes accuracy isn't that important but it's something to keep in mind.

LOG

probably one of the funnest instructables I've seen thus far. I'm wondering if it's mod-able to shift into weeks. I only have time once a week to shower
msuzuki777 (author)  ElectronExciter1 year ago
Thanks.

Yes, if your familiar with writing sketches, it's fairly easy to rewrite it so that 'shower day' is a specific day of the week.

LOG