You are on page 1of 13

5/28/2019 Project Report

Water Temperature Controller

Submitted by :
Muhammad Qasim(16-ME-179)
Muhammad Qasim(16-ME-183)
Asghar Ali (16-ME-191)
Nouman Imtiaz 16-ME-198)

Submitted to:
Sir Rizwan Siddique

Leeds, Mitchel
[COMPANY NAME]
Acknowledgements

We are most grateful to the Almighty God, for sustaining preserving us throughout the period of
this project work.

We are also very grateful to some very key persons who contributed in more ways
than one to the success of this project.

We would like to thank Mr Umair Aqib for helping us in the Arduino programming.
We would like to thank Attique ur Rehman (Electrical Department) for helping us in understanding
the circuits.
Table of contents:
 Abstract
 Objectives
 Objectives Achieved
 Introduction
 Problem Faced
 Equipment
 Flow chart
 Conclusion
 Future Recommendation
 References
 Appendix A
Abstract:
Temperature control can be described as a process in which temperature of a system is
maintained in a control manner that can be in a range. The controller is used to maintain the
temperature in control.
As we see many examples around us in which energy is wasted on boiling of water. We can save
this energy by monitoring temperature. Moreover usually the water we get in result is hotter than
thermal comfort level. We can get water in our thermal comfort zone and energy is also saved as
controller switches off the system after the system achieved desired range.
This project can be used in various places likes homes, offices and hospitals where hot water is
required for almost 24 hrs. Also be use in industries and laboratories to replace old costly methods
to maintain temperature.

Objectives :
We have following objectives:
 The basic aim of this project was to maintain the temperature of water in thermal comfort
zone.
 The range of this project should be variable and can be changed according to comfort.
 To eliminate hazards that result from the accidental neglect of heating.
 Simple design of Circuit so it that can be easily understand by users.
 Not much costly

Objectives Achieved:
All the objectives have been achieved in this project except last one .According to us it is bit costly
.Moreover simple design of circuit was difficult to achieve but somehow we manage to achieve it.

Introduction:

Temperature: This is the degree of hotness or coldness of a body or an environment.


Control System: A control system is a device or set of devices that manage, command,
direct or regulate the behavior of other devices or systems.
Thus we can literally say that a Temperature Control System is a device or set of devices that
Manage, command, direct or regulate the behavior of other devices or systems in order to influence
the degree of hotness or coldness of a body or an environment.
A Temperature Control System is a more like a programmable thermostat that can keep the water
at a desired temperature regardless of fluctuating exterior weather conditions. The advantage of
having a temperature control system over a common thermostat is that it saves energy and money
by automatically maintaining different temperatures at different times of the day and night. It is
usually a feedback system having a control loop, including sensors, control algorithms and
actuators/effectors, and is arranged in such a fashion as to try to regulate a variable at a set point or
reference value.

Temperature is the most often-measured environmental quantity. This might be expected since
most physical, electronic, chemical, mechanical and biological systems are affected by
temperature. Some processes work well only within a narrow range of temperatures. Certain
chemical reactions, biological processes, and even electronic circuits perform best within limited
temperature ranges. When these processes need to be optimized, control systems that keep
temperature within specified limits or constant are often used.
Nowadays with the advancement of technology particularly in the field of micro-controllers, all the
activities in our day-to-day living have become part of information technology and we find
controllers in each and every application.
A Programmable Logic Controller (Micro-controller) is an electronic device used for
automation of industrial processes, such as control of machinery on factory assembly lines.

Arduino are increasingly being used to implement control systems so we also designed this system
with Arduino (minicontroller). Since the system is intended to control the cooling system, it is
therefore important to understand Arduino controlled system well.
In this project work, the program is written in Arduino IDE and facilitates the display
of temperature in degree centigrade. According to the temperature the Arduino gives input to the
Relay, thereby cooling system on/off automatically depending up on the temperature.
Problem Faced :
Although we had done this project but we faced some problems as mentioned below:
 Lack of knowledge related to circuits and Arduino’s programming
 Problem in making connections
 Soldering
 Managing the cost
 Buying of equipment

Equipments :

This project is based on both hardware and software. The hardware requirements are
as follows :-
Arduino
Arduino is an open-source platform used for building electronics projects. Arduino
Consists of both a physical programmable circuit board (often referred to as a microcontroller)
and a piece of software, or IDE (Integrated Development Environment) that runs on your
computer, used to write and upload computer code to the physical board.
Relay:
A relay is an electrically operated switch. Many relays use an electromagnet to mechanically
operate a switch, but other operating principles are also used, such as solid-state relays. Relays are
used where it is necessary to control a circuit by a low-power signal (with complete electrical
isolation between control and controlled circuits), or where several circuits must be controlled by
one signal. The first relays were used in long distance telegraph circuits as amplifiers: they
repeated the signal coming in from one circuit and re-transmitted it on another circuit. Relays were
used extensively in telephone exchanges and early computers to perform logical operations.

The DS18B20 Digital Thermometer:


The DS18B20 Digital Thermometer provides 9 to 12-bit (configurable) temperature readings which
indicate the temperature of the device. The DS18B20 communicates over a 1-Wire bus that by
definition requires only one data line (and ground) for communication with a central
microprocessor. In addition, the DS18B20 can derive power directly from the data line eliminating
the need for an external power supply.

Heating Rod:

The immersion rod is a coiled rod that works as a resistor. Once an electric current is passed


through the rod, its conducts heat, thus causing the surrounding area around the rod to heat up.
When placed in water, it heats it up.
Resistor:
Resistor is used in this circuit to maintain current flow in regular manner avoiding any over flow to
current that can effect badly our ciruit.

Connecting Wires:
A bunch of connecting wires were also used to connect different components .

Bread board:
The circuit is made on this bread board.
Flow chart:

CONCLUSION:
Controlling the temperature is a major problem in our rapidly evolving world and it needs
cost-efficient solutions. This Temperature Control System shows a way to get the temperature
value Arduino microcontroller. In this Project temperature values are measured in analog form, and
then it is converted to digital by the Arduino. The user can configure a set-point temperature value
and control an external heating and/or cooling device by using the Temperature Control System.
The system can be used as the basis for developing custom solutions for networked and standalone
data collection and control equipment. It can be centrally powered due to its low current
requirement and its small size makes it more portable, allowing it to be placed almost anywhere.

FUTURE RECOMMENDATION:
There is always need of improvement even this project can be improved by many ways some of
improvements suggested by our group are below:
 Use of buzzer
 Use of LCD
 Use of PID controller
 Use of fluids instead of rod
 Use of fan to make reverse of this project
These are some recommendation. These will help other for making a better project than this one
.Like we change controller and made a better project than old minicontroller that take much more
time.
References:
Ahmad Faris Bin Zulkifli, A Project on Automatic Room Temperature Control with Security
System, University of Malaysia (May 2009)
American Society of Mechanical Engineers (ASME) http://www.asme.org
Ana Sayfa (2009), Digital Thermometer Project,
http://sites.google.com/site/digitalthermometerusingds1620/
Automatic Temperature Control System using RZK, Zilog Technologies and Zilog Developer
Studio, http://www.zilog.com
Cytron Technologies: Temperature Control System
http://www.youtube.com/watch?v=WsRHuc-SC9w&feature=player_detailpage
Data Sheets, http://www.datasheetarchive.com
Google Search Engine (Temperature Control System and related resources)
http://www.google.com
J.L.M. Hensen, Thermal Comfort in transient Conditions, Eindhoven University of
Technology (2000)
May Wong, Edward Hettiaratchi, Gautham Jayachandran, Ian Cathers (2001) Temperature
Control System; http://www3.fhs.usyd.edu.au/bio/homeostasis/
Temp_Control_System.html
Mike Mann (August 2002); Control Systems and Homeostasis; http://www.mann2.wpd
Norhaslinda Binti Hasim, Water Level and Temperature Control using a Programmable
Logic Controller (PLC), University of Technology, Malaysia (November 2008)
Nor Mazlee Bin Norazmi, Temperature Control System, University of Malaysia (May 2009)
Omega Technologies Ltd. (Temperature Control System), http://www.omega.com
Proportional Control, http://www.amswers.com
Appendix A

DS1820_Temperature Program
#include <OneWire.h>

OneWire ds(10); // on pin 10 (a 4.7K resistor is necessary)

int relay_pin = 8;
int led_pin = 11;

void setup(void) {
Serial.begin(9600);
pinMode(relay_pin,OUTPUT);
pinMode(led_pin,OUTPUT);
}

void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;

if ( !ds.search(addr)) {
Serial.println("No more addresses.");
Serial.println();
ds.reset_search();
delay(250);
return;
}

Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}

if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return;
}
Serial.println();

// the first ROM byte indicates which chip


switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return;
}

ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end

delay(1000); // maybe 750ms is enough, maybe not


// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad

Serial.print(" Data = ");


Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();

// Convert the data to actual temperature


// because the result is a 16 bit signed integer, it should
// be stored to an "int16_t" type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
Serial.print(" Temperature = ");
Serial.print(celsius);
Serial.print(" Celsius, ");
// Serial.print(fahrenheit);
// Serial.println(" Fahrenheit");

if (celsius<=50)
{
digitalWrite(relay_pin,LOW);

if (celsius>=60)
{
digitalWrite(relay_pin,HIGH);
}

Relay_test Program:
int relay_pin = 8;
int led_pin = 11;
void setup(){
pinMode(relay_pin,OUTPUT);
pinMode(led_pin,OUTPUT);
digitalWrite(led_pin,HIGH);}
void loop(){
digitalWrite(relay_pin,HIGH);

delay(5000);
digitalWrite(relay_pin,LOW);

delay(5000);
}

You might also like