Project tutorial
Shower Regulator

Shower Regulator © GPL3+

Learn how to make a device to limit your shower time!

  • 5,560 views
  • 6 comments
  • 10 respects

Components and supplies

Ardgen 101
Arduino 101 & Genuino 101
×1
Normally Closed Solenoid Valve
Make sure it can withstand the temperature of the shower water; if you are using a metal one make sure it contains no lead. ALSO: Measure your own plumbing before buying
×1
Fittings for Solenoid Valve
Make sure it can withstand the temperature of the shower water; if you are using a metal one make sure it contains no lead. ALSO: Measure your own plumbing before buying
×1
12002 04
Breadboard (generic)
×1
398 09
Adafruit RGB Backlight LCD - 16x2
×1
Adafruit industries ada1536 image
Buzzer
×1
11026 02
Jumper wires (generic)
×1
Fairchild semiconductor fqu13n06ltu image 75px
Power MOSFET N-Channel
×1
09939 01
Rotary potentiometer (generic)
×1
Flip Switch
×1
Battery Bank
×1
Mfr 25fbf52 221r sml
Resistor 221 ohm
220 ohm will also work aswell
×2
Fairchild semiconductor 1n4004. image
1N4007 – High Voltage, High Current Rated Diode
×1
Plastic Container
×1
Velcro Wall Strips
×2
Cheap USB Cable
×2

Necessary tools and machines

Hy gluegun
Hot glue gun (generic)
09507 01
Soldering iron (generic)

Apps and online services

About this project

Why?

It may not seem like it, but the shower is easily one of the most wasteful appliances in a home and expends great amounts of water and energy.

According to Home Water Works, the average flow rate of a shower is 2.1 Gallons (7.94L) per minute; this with an average shower time of 8.2 minutes results in 17.2 gallons (65.1L) used per shower or 51.6 gallons (195.3L) used in an average American household (3 people) per day. This makes it the third largest water user in a home.

The numbers are even more surprising if you look at the energy use. According to Skidmore College, the average shower uses 440 BTUs (0.13 kWh) to heat one gallon (3.78L) of water. This means that about 2.2 kWh are used in a single typical 8.2 minute shower and 6.6 kWh used per household per day! According to the US Department of Energy, this makes up 17% of total home electricity usage.

With the US EPA's estimate of 0.000703 metric tons (1.55 pounds; 0.7 kg) of CO2 per kWh, this results in 3.4 pounds (1.54kg) of CO2 per shower and 10.2 pounds per household.

However, the recommended shower time is only 5 minutes according to Green Lifestyle Changes - this cuts water use by 6.7 gallons (25.4L), power use by 871Wh (That's enough to power 174 CFL bulbs for an hour!), and CO2 emission by 1.35 pounds (0.6 kg) per shower. This is where the Shower Regulator for the Intel Earth Day Challenge comes in which would limit the shower time to 5 minutes or to whatever time the user chooses.

In one 365 day year, this would save 2,455.5 gallons (9,295.1L) of water (enough for a person to drink for about 13 years) and 317.9kWh or 492.7 pounds (223.5kg) of CO2 per person, resulting in 7,366.5 gallons (27,885.2L) of water, 953.7kWh of power, and 1,478.2 pounds (670.5kg) of CO2 saved per household.

How Does it Work?

1- The solenoid valve is closed when the device is powered off so no water can flow if the regulator is not running.

2- The valve opens when the device is powered on; the user can turn on the water now.

3- The regulator allows the water to warm-up for 20 seconds (is adjustable) indicated by 1 beep.

4- After warm-up, the regulator begins the shower timer for 5 minutes (is adjustable) indicated by 2 beeps.

5- The regulator will give 1 beep warnings 1 and 2 minutes before the shower is over.

6- Once the shower time is completed, the device will automatically close the valve, stopping the flow of water. The user can turn off the water and the regulator now. This is indicated by a continuous beep.

Instructions

Note- make sure that the valve is the right size and can withstand the temperature of the shower water. Also make sure that the fittings and valve don't contain any hazardous substances like lead.

1- Strip 2 USB wires and solder them to the switch and step up (boost) converter (remember to adjust the converter to output a voltage between 6 and 12V). Refer to the pictures below.

2- Build the circuit using the schematics provided in the "Schematics" Section below.

3- Upload the code provided in the "Code" Section below to the regulator using the Arduino IDE.

4- Cut holes into the plastic container for the switch and wires for the solenoid valve.

5- Thread the solenoid valve wires through its hole and steal it with water-proof hot-glue. Then glue the switch into its hole. After this, glue the LCD screen onto the lid of the plastic container.

6- place the circuit into the container and close the lid. Make sure the switch and LCD are properly connected to the breadboard.

7- Attach the valve and its fittings between the water outlet and the shower head.

8- Stick the Velcro straps onto the back of the plastic container and attach it to a wall near the shower head.

Video

Check out this video to see how it works!

Code

CodeC/C++
//User settings:-----------------------
const float showerTime = 5; //In minutes
const int warmupTime = 20; //In seconds
//-------------------------------------

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int stat = 0; //This keeps track of the status 

void setup() {
  // put your setup code here, to run once: 
  lcd.begin(16,2); 
  pinMode(13,OUTPUT); //Set pin 13 as output (For solenoid valve)
  pinMode(10,OUTPUT); //Set pin 10 as output (For piezo buzzer)
}

void loop() {
  // put your main code here, to run repeatedly:
  if(stat == 0){ //If the status is 0, begin warmup
    digitalWrite(13,HIGH); //Open solenoid valve
    tone(10,2000,1000); //Gives the warmup buzz
    for(int  i = warmupTime; i > 0; i--){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Water Warmup:"); //Text for line 1
      lcd.setCursor(0,1);
      lcd.print(String(i) + " seconds"); //Text for line 2
      delay(1000);
    }
    stat++; //Update status
  }
  if(stat == 1){ //If the status is 1, begin the shower timer
    tone(10,2000,1000); //Gives the shower buzz; warmup is over
    delay(1500);
    tone(10,2000,1000);
    for(int i = showerTime * 60; i > 0; i--){
      if(i == 120){ //If there are 2 minutes left, give a warning buzz
        tone(10,2000,1000); 
      }else if(i == 60){ //If there is 1 minute left, give a second warning buzz
        tone(10,2000,1000);
      }
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Shower:"); //Text for line 1
      lcd.setCursor(0,1);
      lcd.print(String(i) + " seconds"); //Text for line 2
      delay(1000);
    }
    stat++; //Update status
  }
  if(stat == 2){ //If the status is 2,stop the shower and notify user that it is over
    digitalWrite(13,LOW); //Close solvenoid valve
    tone(10,2000); //Gives buzz until it is shut off
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Shower Over"); //Text for line 1
    lcd.setCursor(0,1);
    lcd.print("Have a Good Day!"); //Text for line 2
    delay(2000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Turn me off"); //Text for line 1
    lcd.setCursor(0,1);
    lcd.print("Turn water off"); //Text for line 2
    delay(5000);  
  }
}

Schematics

Schematics Image
Diagram bb jdxfotwnhx
Schematics
diagram_F3mdu8tMGy.fzz

Comments

Similar projects you might like

The Magnetic Field and RGB Tester

Project tutorial by Kutluhan Aktar

  • 3,746 views
  • 0 comments
  • 15 respects

SMART CUBE: A New Way to Control Your Home

Project tutorial by Alberto Sartori

  • 13,954 views
  • 7 comments
  • 31 respects

Arduino101 / tinyTILE BLE: Match-Making Sunglasses

Project tutorial by Kitty Yeung

  • 11,336 views
  • 2 comments
  • 35 respects

Arduino 101 - Intel Curie Pattern Matching Dress

Project tutorial by Kitty Yeung

  • 9,875 views
  • 17 comments
  • 52 respects

IoT for coins

Project tutorial by Erik Moran

  • 8,644 views
  • 1 comment
  • 44 respects

Automated Shower Boiler

Project tutorial by George Kartsonas

  • 3,393 views
  • 2 comments
  • 9 respects
Add projectSign up / Login