How to build a smart thermostat using an MCU – 7 steps to make it happen!

Step 1 - A short story on where we come from and where we want to go

Co-authored by Bhargavi Nisarga, Systems Engineer at TI

How it all started

When starting in the ultra-low-power microcontroller (MCU) business at TI, just after finishing university, I found that I had a lot of questions regarding the features and functionality of a microcontroller. I started having regular discussions with more experienced colleagues to better understand the MCU functionality and its typical usage. After a while, I realized I could share what I was learning so other MCU newbies may benefit from the information I gathered. And, here I am, joining forces with my colleague to write this blog series!

Why another smart thermostat blog?

We wanted to focus on an end-application most people were familiar with, but would want a better understanding of how to implement using an MCU. We picked the smart thermostat end-application as it touches on different levels of detail and complexity, while still addressing basic MCU features and functionality. The basic building blocks of a smart thermostat application include sensing, processing, user-interface and wireless connectivity, and designing these components requires interaction between multiple MCU features Figure 1. The subsequent blog posts as part of this series will walk you through different implementation steps to help you better understand MCU features and how their functionality enables the creation of a smart thermostat.

Why make a thermostat smart?

The thermostat is a home or building automation application that automatically regulates temperature, or activates a device when the temperature reaches a certain point. With the emergence of the Internet of Things (IoT) and network connected devices, a whole new market has opened for smart thermostats.  Smart thermostats not only enable remote management and programming via mobile app or web browser, but they also learn and adapt to users’ daily routine, and provide users with energy consumption data to see usage patterns and make adjustments to significantly save on energy bills.

Figure 1: Building blocks of a smart thermostat

What to expect from the blog series

In order to implement a smart thermostat, you will need some background on the functionality and options an MCU offers. This series of blog posts will help you get started by covering the important implementation steps on your way to a working smart thermostat. 

  • The first blog post (this one) gives an introduction to the topic and provides you with an overview to see the whole picture before getting your hands dirty.
  • In the heart of a smart thermostat is the sensing and data processing. Can you imagine a thermostat which can't sense temperature? The second blog post will show you some basics on sensing, realized through external sensors, analog-to-digital converters (ADC), operational amplifiers and timers.
  • The third blog post will discuss data processing and help you take a look at some helpful MCU tools like the Direct Memory Access (DMA) Controller and hardware multiplier.
  • The fourth blog post is all about human machine interface (HMI). How can you insert user commands to control or program the thermostat? How to interface to displays so you see collected data?
  • We called it a "smart" thermostat. But until now we only covered a description of a normal and old-fashioned thermostat. You'll need two more steps for your thermostat to become smart:  First adding connectivity, either wired or wireless. The other "smart factor" is that the smart thermostat behaves, works and adapts to changes on its own. Cool, isn't it? You'll learn how to do so in our fifth blog post.
  • It's nearly time to wrap it up. You're close to your goal. But let's take a look at the underlying MCU systems, the clocking and the energy consumption. Don't you want your smart thermostat to be an ultra-low power application? And it's probably time to talk about some environmental monitoring here. So don't miss our sixth blog post.
  • Last but not least the seventh post you have been longing for. You made it. You collected the information on “How to build a smart thermostat on an MCU.” We'll close the loop and summarize for you. But how would you pick the right MCU? Just read the last post to get an idea on how to differentiate one from another.

Who can benefit from the blog series?

As mentioned before, this blog series is beneficial to MCU newbies, helping them to get started with MCU projects. So, if you are just starting to develop and dig deeper into MCU topics, you’re totally in the right place. Even if you already are an advanced user but wondering “How can I add smartness to my application?” or “How to make my application lower power?”, then you’re in the right place as well. We will focus on connectivity, low power and smart device operation within the course of this blog series.

What to take with you

As a wrap-up, here are the key takeaways of our first blog entry:

  • This blog series intends to provide insight into basic MCU features and functionality.
  • Smart thermostat is the chosen end-application for the blog series.
  • The basic building blocks of a smart thermostat include sensing, user interface, power, control and connectivity blocks.
  • The following six blog posts will provide step-by-step guidelines to implement a smart thermostat using an MCU.

And, don’t forget to keep reading the rest of our series.