Subscribe to Arduino Academy and start learning today for FREE!

The Arduino Thermostat

I’ve talked about this before, but since I just built another one last week, I thought I’d reshare this project, as it has a slight twist.

The idea is to select the temperature you want with a potentiometer, and display it on the screen. Then the Arduino reads a Dallas 18B20 digital temperature chip (or a thermocouple for higher temperature needs, like a temperature controlled soldering station) and controls a SSR (with a heater or A/C attached) to match the temperature requested. When the temperature chip reads the same as the requested temperature, then the power to the heating or cooling device is turned off.

This project has many applications, from room temperature control, to water heaters, or even environmental chambers. The concept is the same. With the addition of a RTC, you can easily program day night setbacks or even weekend setbacks. With a second temp sensor outdoors, you can add a offset based on outdoor temperature, i.e. increase indoor temperature by 5 F if outdoor is <30, and decrease indoor by 5 F if outdoor is >90.

Become the Maker you were born to be. Try Arduino Academy for FREE!

I’ve covered some of these concepts before at Two DS18B20 Temp Sensors on LCD Display!

Find your DS18B20 address!

Most of the parts needed to make this unit are available at Amazon:
Arduino Uno
LCD Display – button control of temperature instead of potentiometer (will require code changes)
Dallas 18B20

40 amp 24-330vac load, 4-32vdc control (opto isolated) SSR

Download the two sketches, a low temp dallas chip version, and a high temp thermocouple version!

Send temperature data to a webserver for historical data trends and remote viewing –


Notify of
Inline Feedbacks
View all comments


Would love your thoughts, please comment.x