Summary of Build a fully featured Arduino Thermostat
This article details the construction of an Arduino-based thermostat featuring a 24-hour temperature graph, heat time tracking, and a menu system. The project utilizes an Arduino Mega 2560 for its memory capacity, connected to an LM35 sensor and a 4-inch LCD monitor via specific pin configurations. It includes push buttons for navigation, a voltage regulator circuit, and a relay to control a heating boiler, all housed in a project box powered by a 12V supply.
Parts used in the Arduino Thermostat:
- Arduino Mega 2560 board
- LM35 Temperature Sensor
- 4 inch LCD Monitor
- Maplins Project Box
- 5V Voltage Regulator (TS7805)
- 2 x 1uf Capacitors
- 4 x Stateless push buttons
- 4 x 10K Resistors
- 12V power supply
- 6v Relay
- 1 x 1K Resistor
- 1 x 470 OHM Resistor
- 3v LED (optional)
In this post I will attempt to describe the steps I took to build the arduino based thermostat shown in the following videos. The first video was taken when around just half of the coding of the menu system was complete, but gives you a basic run through of the features.
This second video shows the completed thermostat with additional features implemented over the holidays, which includes a Total Heat Time counter, and a line graphing feature which shows temperature variations over a 24 hour period, including when the heating was turned on, so from the graph you could see how long it takes your heating system to bring the house up to the desired temperature.
Circuit Diagram
Pin Connections
LCD Monitor Video In – 1K resistor to Pin 11
LCD Monitor Video In – 470ohm resistor to Pin 12
LM35 output pin to Analog Pin A1
Button Down to Digital Pin 33
Button Up to Digital Pin 37
Select button to Digital Pin 32
Back button to Digital Pin 36
Relay Coil to PWM Pin 4
1 x Arduino Mega 2560 board (mainly because of the larger memory capacity)
1 x LM35 Temperature Sensor or equivalent
1 x 4 inch LCD Monitor, the one I used was this one from amazon
1 x Maplins Project Box (for housing the arduino and cabling)
1 x 5V Voltage Regulator (I’m using a TS7805)
2 x 1uf Capacitors (for the regulator circuit)
4 x Stateless push buttons
4 x 10K Resistors
1 x 12V power supply (I’m using an old Linksys router power supply rated at 12v @ 1amp)
1 x 6v Relay (with the contacts rated at 240v 3amps or greater for connection to combi boiler)
1 x 1K Resistor (for connection to the Composite input of the LCD monitor – SYNC)
1 x 470 OHM Resistor (for connection to the Composite input of the LCD Monitor – VIDEO)
1 x 3v LED (optional mainly for diagnosing when the relay turns on and off)
For more detail: Build a fully featured Arduino Thermostat
- Why was the Arduino Mega 2560 chosen for this project?
It was selected mainly because of its larger memory capacity. - What features are included in the completed thermostat video?
The completed version includes a Total Heat Time counter and a line graphing feature showing 24-hour temperature variations. - How is the LM35 output pin connected?
The LM35 output pin connects to Analog Pin A1. - Which digital pins are used for the navigation buttons?
Button Down connects to Digital Pin 33, Button Up to Digital Pin 37, Select button to Digital Pin 32, and Back button to Digital Pin 36. - How is the LCD monitor connected to the Arduino?
The LCD Monitor Video In connects to Pin 11 via a 1K resistor and to Pin 12 via a 470ohm resistor. - What type of power supply is recommended for the relay circuit?
A 12V power supply rated at 1amp or greater is used, such as an old Linksys router power supply. - Can the relay contacts handle standard household heating systems?
Yes, the 6v Relay should have contacts rated at 240v 3amps or greater for connection to a combi boiler. - What is the purpose of the optional 3v LED?
The 3v LED is optional and is mainly used for diagnosing when the relay turns on and off.


