top of page
  • Black Facebook Icon
Search

SHOWER TIMER

  • Writer: Lian Theron
    Lian Theron
  • Aug 5, 2018
  • 3 min read


Due to the drought in our country, we are currently living in a time where water conservation has become a part of our daily lives.


It is our duty to ensure that we use the water available as efficiently as possible. The reuse of gray water for our gardens and toilets is already a standard for most households, but we must especially restrict the use of clean water. In a normal household, we use the most water for bath, shower, washing machine’s and dishes. This is taken into consideration that we no longer wet our gardens.


Daily there are many new devices and ways to save water available. Due to the high demand for the products, consumers are exploited and the cost for such devices are very high.


Therefor I have decided to develop an affordable and efficient device to save water used by showering. This device can be built and installed by anyone. The design is available to everyone for free. To ensure that it is efficient, I used a Arduino UNO to control the device.


I designed my device for domestic use, but it can also be used in small hotels, guesthouses and hotels.


Flow diagram for SHOWER TIMER:



This device limit the shower time to 5 Minutes, but it can be changed in the Arduino's programming code.


Components needed for SHOWER TIMER:



Image of SHOWER TIMER Build onto a bread board:




Arduino code to program SHOWER TIMER:


The code for the SHOWER TIMER is as follow:

//SHOWER TIME code - Lian Theron

//User settings:-----------------------

const int showerTime = 5; //In minutes – SET SHOWER TIME

const int warmupTime = 20; //In seconds – SET WARMUP TIME

const int waitTime = 10; //In minutes – SET WAITING TIME

//-------------------------------------

int stat = 0; //This keeps track of the status

void setup() {

Serial.begin(9600);

pinMode(4,INPUT); //Set pin 5 as input (For BUTTON)

pinMode(6,OUTPUT); //Set pin 6 as output (For RELAY)

pinMode(7,OUTPUT); //Set pin 7 as output (For LED WARMUP)

pinMode(8,OUTPUT); //Set pin 8 as output (For LED 5 MIN)

pinMode(9,OUTPUT); //Set pin 9 as output (For LED 4 MIN)

pinMode(10,OUTPUT); //Set pin 10 as output (For LED 3 MIN)

pinMode(11,OUTPUT); //Set pin 11 as output (For LED 2 MIN)

pinMode(12,OUTPUT); //Set pin 12 as output (For LED 1 MIN)

pinMode(13,OUTPUT); //Set pin 13 as output (For BUZZER)

}

void loop() {

while(digitalRead(4) == LOW){

Serial.println("Press button to start: ");}

if(stat == 0){ //If the status is 0, begin warmup

digitalWrite(6,HIGH); //Open RELAY

digitalWrite(7,HIGH); //Open LED WARMUP

digitalWrite(8,HIGH); //Open LED 5 MIN

digitalWrite(9,HIGH); //Open LED 4 MIN

digitalWrite(10,HIGH); //Open LED 3 MIN

digitalWrite(11,HIGH); //Open LED 2 MIN

digitalWrite(12,HIGH); //Open LED 1 MIN

tone(13,2000,100); //Gives the warmup buzz

for(int i = warmupTime; i > 0; i--){

Serial.print("Water Warmup time left: ");

Serial.println(String(i) + " seconds"); //Text for Warmup time left

delay(1000);

}

stat++; //Update status

digitalWrite(7,LOW); //Close LED WARMUP

}

if(stat == 1){ //If the status is 1, begin the shower timer

tone(13,2000,100);

for(int i = showerTime * 60; i > 0; i--){

if (i == 300){

digitalWrite(8,LOW); //Close LED 5

}if (i == 240){

digitalWrite(9,LOW); //Close LED 4

}if (i == 180){

digitalWrite(10,LOW); //Close LED 3

tone(13,2000,500); //Buzzer

}if(i == 120){

digitalWrite(11,LOW); //Close LED 2

tone(13,3000,500); //Buzzer

}if(i == 60){

digitalWrite(12,LOW); //Close LED 1

tone(13,4000,1000); //Buzzer

}Serial.print("Shower time left: ");

Serial.println(String(i) + " seconds"); //Text for Shower time left

delay(1000);

}

stat++; //Update status

}

if(stat == 2){ //If the status is 2, close the relay and notify user that it is over

digitalWrite(6,LOW); //Close relay

tone(13,5000,1000); //Gives buzz until it is shut off

Serial.println("Shower time over"); //Text for Shower time over

for(int i = waitTime * 60;i >0; i--){

Serial.print("Wait: ");

Serial.println(String(i) + " seconds till next shower"); //Text for Time till next shower

delay(1000);

}

stat = 0;

"restart void loop";

}

}


Installation of the SHOWER TIMER:


To install the SHOWER TIMER, you can use Velcro strips. Attach it to the wall next to the shower pipe. Connect the water solenoid inline with the shower head. See image below:


The Shower timer can also be installed on the warm water pipe only, but this will require the assistance of a plumber. See diagram below:





Please add any more devices like this.

 
 
 

Recent Posts

See All

Comments


bottom of page