Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 16

ELECTRICAL AUTOMATION AND CONTROL

TECHNOLOGY MANAGEMENT (MSc)

EMBEDDED CONTROL SYSTEM

PROJECT TITLE:
MICROCONTROLLER BASED DIGITAL
THERMOMETER CONTROLLER

GROUP MEMBERS NAME ID No


1. HAILE NIGUSE TTRM/124/16
2. G/MICHEAL BELAY TTRM/461/16
3. ABUBEKER KEDIR TTRM/019/16

SUBMITTED TO: Dr Yohans


SUBMITTED DATE:
ADDIS ABABA, ETHIOPIA
ABSTRACT
This project demonstrates the design and development of a digital thermometer
using an Arduino microcontroller and LM35 temperature sensor. The LM35 is an
analog temperature sensor that provides a voltage output proportional to the ambient
temperature sensor that provides a voltage output proportional to the ambient
temperature. The Arduino reads the analog voltage from the LM35, converts it to a
digital value, and then calculates the corresponding temperature in degrees Celsius.
The system includes an Arduino uno board, an LM35 sensor, jumper wires and a
16x2 LCD display. The Arduino is programmed to continuously monitor the
temperature reading from the LM35, update the LCD display, and provide the
current temperature reading. The project showcases the east of integrating analog
sensors with digital microcontroller platforms like the Arduino to create simple and
effective measurement tools.
The digital thermometer can be used for a variety of application that require ambient
temperature monitoring, such as in home automation, HVAC systems, industrial
processes, and scientific experiments. The compact, low-cost, and easy-to-build
nature of this design make it a suitable educational project for learning about sensor
interfacing and Arduino programming.

Keywords: Digital thermometer, LM35 sensor, and an Arduino

CHAPTER ONE
INTRODUCTION
Over view of the project
The main goal of this project is to create a digital thermometer that can accurately
measure and display the ambient temperature using an Arduino microcontroller and
the LM35 temperature sensor.
Hardware Components
1. Arduino Board: the Arduino will serve as the main microcontroller for the
project, handling the data acquisition, processing, and display.
2. LM35 Temperature Sensor: the LM35 is an analog temperature sensor that
provides a linear voltage output proportional to the temperature in degrees
Celsius.
3. Display: A display, such as an LCD OR OLED, will be used to show the
temperature readings.
4. Miscellaneous: Jumper wires, breadboard (or perf board), and a power supply
(e.g. USB power or battery) will be required to connect the components.

Software Requirements
1. Arduino IDE: The Arduino integrated development environment (lDE) will be
used to write, compile, and upload the sketch (program) to the Arduino board.
2. Arduino Libraries: Depending on the display used, you may need to include
additional libraries (e.g., Liquid crystal for LCD displays, Adafruit_SSD1306
for OLED displays).

Project Implementation Steps:


1. Hardware Setup: Connect the LM35 temperature sensor to the Arduino’s
analog input pin (e.g., A0). Connect the display to the appropriate digital pins
on the Arduino.
2. Arduino Sketch: Write the Arduino code to read the analog value from the
LM35, convert it to a temperature value, and display the result on the
connected display.
 Read the analog value from the LM35 sensor using the analog read
function.
 Convert the analog value to a temperature reading using the LM35’s
sensitivity (typically 10mv/°c).
 Display the temperature reading on the connected display using
appropriate functions (e.g., LCD printer, display printer for OLED).
3. Testing and Validation: Test the digital thermometer by comparing its
readings with a known accurate temperature source. Ensure the temperature
reading are accurate and stable.
4. Enclosure and Finishing Touches: Optionally, you can design and 3D print or
laser-cut an enclosure to house the Arduino, LM35 sensor, and display for a
more polished and portable digital thermometer.

CHAPTER TWO
LITERATURE REVIEW
2.1. Related Works

Temperature measurement is a fundamental requirement in various applications,


ranging from home automation and environmental monitoring to industrial process
control and scientific research. The development of low-cost, accurate, and easy-to-
use temperature measurement systems has been an area of ongoing research and
innovation.
One of the widely used temperature sensors is the LM35 [1], a precision integrated-
circuit temperature sensor manufactured by Texas Instruments. The LM35 provides
a linear voltage output proportional to the Celsius temperature, eliminating the need
for external calibration or complicated A/D converter circuits. The LM35 has been
widely adopted in numerous temperature-sensing applications due to its accuracy,
low cost, and ease of integration with microcontroller-based systems.
The Arduino microcontroller platform [2] has emerged as a popular choice for
building various electronic projects, including temperature measurement systems.
The Arduino's ease of use, extensive community support, and wide range of
compatible sensors and modules make it an attractive option for prototyping and
developing small-scale projects.
Several studies have investigated the integration of the LM35 temperature sensor
with the Arduino platform to create digital thermometers. Sahu et al. [3] developed
a low-cost Arduino-based temperature monitoring system using the LM35 sensor
and a 16x2 LCD display. The system was designed for indoor temperature
monitoring and could be used in various applications, such as home automation and
environmental monitoring.
Likewise, Noor et al. [4] presented the design and implementation of a digital
thermometer using an Arduino Uno and the LM35 sensor. Their system included
additional features, such as temperature logging and wireless data transmission
using the ESP8266 Wi-Fi module.
These studies demonstrate the feasibility and effectiveness of using the Arduino
microcontroller and the LM35 temperature sensor to build compact, low-cost, and
user-friendly digital thermometers. The integration of these components provides a
versatile and accessible solution for temperature measurement and monitoring
applications.
CHAPTER THREE
METHODOLOGY
Thermometers are useful apparatus being used since long time for temperature
measurement. In this project we have made an Arduino based digital thermometer to
display the current ambient temperature on a 16x2 LCD unit in real time. It can be
deployed in houses, offices, industries etc. to measure the temperature. We can
divide this Arduino based thermometer into three sections - The first
section senses the temperature by using temperature sensor LM35, second section
converts the temperature value into a suitable numbers in Celsius scale which is
done by Arduino, and last part of system displays temperature on 16x2 LCD. The
same is demonstrated in below block diagram.

BLOCK DIAGRAM OF THE PROJECT

In this digital temperature sensor with Arduino, Arduino Uno is used to control
the whole process. An LM35 temperature sensor is used for sensing environment
temperature which gives 1 degree temperature on every 10mV change at its output
pin. You can easily check it with voltmeter by connecting Vcc at pin 1 and Ground
at pin 3 and output voltage at pin 2 of LM35 sensor. For an example if the output
voltage of LM35 sensor is 250m volt, that means the temperature is around 25
degrees Celsius.

Arduino reads output voltage of temperature sensor by using Analog pin A0 and
performs the calculation to convert this Analog value to a digital value of current
temperature. After calculations Arduino sends these calculations or temperature to
16x2 LCD unit by using appropriate commands of LCD. We have also built
other digital thermometer projects using DHT11, DS18B20 and other temperature
sensors.

Circuit Components
Arduino

In this project we have used a Arduino to control whole the process of system.
Arduino is a controller which runs on ATmega AVR controller. Arduino is an open-
source hardware platform and very useful for project development purpose. There
are many types of Arduino boards like Arduino UNO, Arduino mega, Arduino pro
mini, Lilypad etc. available in the market or you can also build Arduino by yourself.

LM35 Temperature Sensor

LM35 is a 3-pin temperature sensor which gives 1 degree Celsius on every 10mVolt
change. This sensor can sense up to 150-degree Celsius temperature. 1 number pin
of lm35 sensor is Vcc, second is output and third one is Ground. LM35 is the
simplest temperature sensor and can be interfaced easily with any microcontroller.
You can check various Temperature Measurement using LM35 based projects here.

Pin No Function Name


1 Supply voltage; 5V (+35V to -2V) Vcc

2 Output voltage (+6V to -1V) Output

3 Ground (0V) Ground

LM35 can be easily interfaced with Raspberry Pi, NodeMCU, PIC microcontroller,
etc to measure the temperature and can also be used standalone with Op-amp to
indicate temperature levels.

LCD

16x2 LCD unit is widely using in embedded system projects because it is cheap,
easily available, small in size and easy to interface. 16x2 have two rows and 16
columns, which means it consist 16 blocks of 5x8 dots. 16 pins for connections in
which 8 data bits D0-D7 and 3 control bits namely RS, RW and EN. Rest of pins are
used for supply, brightness control and for backlight.

Power Supply

Arduino Board already have an inbuilt power supply section. Here we only need to
connect a 9 volt or 12-volt adaptors with the board.

Circuit Diagram and Explanation


Circuit diagram for Digital Thermometer using Arduino and LM35
Temperature Sensor, is shown in the above figure. Make the connections carefully
as shown in the schematic. Here 16x2 LCD unit is directly connected to Arduino in
4-bit mode. Data pins of LCD namely RS, EN, D4, D5, D6, D7 are connected to
Arduino digital pin number 7, 6, 5, 4, 3, 2. A temperature sensor LM35 is connected
to Analog pin A0 of Arduino, which generates 1-degree Celsius temperature on
every 10mV output change at its output pin.

CODE

/*----------Arduino LM35 Code------------*/

/*----------Digital Thermometer Using Arduino-------------*/

#include˂LiquidCrystal .h˃

LiquidCrystal lcd(7,6,5,4,3,2);

#define sensor A0

byte degree[8] =

0b00011,
0b00011,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
};
Void setup()

lcd.begin(16,2);
lcd.createChar(1, degree);
lcd.setCursor(0,0);
lcd.print(“ Digital “);
lcd.setCursor(0,1);
lcd.print(“ Thermometer “);
delay(4000);
lcd.clear();

void loop()

{
/*----------Temperature----------*/
float reading=analogRead(sensor);
float temperature=reading*(5.0/1023.0)*100;
delay(10);

/*----------Display Result----------*/
lcd.clear();
lcd.setCureor(2,0);
lcd.print(“Temperature”);
lcd.setCursor(4,1);
lcd.print(temperature);
lcd.write(1);
lcd.print(“C”);
delay(1000);
}
Flow chart for project Development phase

The process involved in the development of the project is very important so


that the process is smooth without any difficulties. The processes involved
are under constant changes due to unexpected changes or complications.

Flow of the development of the project is divided into two that are the
hardware and software. The hardware part is divided into two parts that are
the temperature sensor LM35 part and the output LCD display part.
CHAPTER FOUR
4. BUDGET AND WORK PLAN
The work plane and Budget Allocation for accomplishing my thesis work can be summarized as follows:

Table 4. 1: Budget Allocation


No. Item Unit of measurement Total Cost
1. Personal Expenditure ETB
 Transportation
2. Fully Cracked Software ETB
3. Service Printing e page=5birr
Secretary Per page=10birr
Photocopy Per page=5birr
Lamination & Binding Per Pcs=500
4. Consumable Pcs

5. Internet Access GB
6. Communication
 Fax ETB
 Tel ETB

7. Sub Total ETB


8. Allowance 10% ETB
9. Total ETB

REFERENCES:
1. Texas instruments, “LM35 precision centigrade temperature sensors,”
[online].
2. Arduino, “Arduino – Home,” [online]. Available: https://www,arduino.cc/.
3. S. Sahu, J. K. Mandal, and M.Tiwari, “Arduino-based low-cost temperature
monitoring system,” in 2017 international conference on wireless
communications, signal processing and networking (WiSPNET), 2017
#include <LiquidCrystal.h>
#include <LM35.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LM35 tempSensor(A0);
void setup() {
lcd.begin(16, 2);
lcd.print("Temperature:");
}
void loop()
{
float temperature = tempSensor.read();
lcd.setCursor(0, 1);
lcd.print(temperature, 1);
lcd.print((char)223); // Degree symbol
lcd.print("C");
delay(1000);
}

You might also like