Smart Thermostat





Introduction: Smart Thermostat

In this instructable we look at how to build a Smart Thermostat. What makes this thermostat so smart you ask? Here is a list of some of its smart features:

  • It can be controlled by your Android device, which gives you one less reason to get up from the couch or get out of bed.
  • High accuracy temperature measurement capability. The cheap thermostats that are in most homes can have error ranges of +/- 2 degrees!
  • High resolution temperature settings to go with the great temperature accuracy, if you have a very slim temperature comfort zone this will give you the temperature setting resolution to hit your zone.
  • No more trying to change the temperature or search for a setting with only one or two buttons and a tiny screen, this thermostat comes with a lot of buttons and a large display for making easy and quick changes.

The project is laid out in a series of three videos. The Arduino code can be found on GitHub (link provided in video). You can access the Andriod App .aia file using this link:



  • Epilog Challenge 9

    Epilog Challenge 9
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
  • Paper Contest 2018

    Paper Contest 2018

We have a be nice policy.
Please be positive and constructive.




Seems that the dropbox link is not working anymore.

plz send me this project aia file on my mail '

Hi friend,

I need temperature in Celsius not Fahrenheit, can you give me conversion string to do this??


but code in not complete!!

// start RF24 communication layer
RF24 radio(9,10);

// start RF24 network layer
RF24Network network(radio);

// Coordinator address
const uint16_t thisNode = 00;

// Structure of our payload coming from router and end devices
struct Payload
float aDCTemp; //temperature from onboard sensor
bool batState; //bool to communicate battery power level, true is good and false means battery needs to be replaced

void setup(void)
Serial.println("Coordinator is online.....");

network.begin(90, thisNode);

void loop(void)
//check network communication regularly

RF24NetworkHeader header; //create header variable
Payload payload; //create payload variable
// Any data on the network ready to read
while ( network.available() )
// If so, grab it and print it out,&payload,sizeof(payload));
Serial.print("The node this is from: ");
Serial.print("Temperature: ");
Serial.print(" Battery status: ");

Nice project, although I would use an ESP8266 Arduino instead of the bluethoot module. But good schematics anyway, love your work.

Thanks, I am actually thinking of upgrading this project to add WiFi. Let me know if you get it up and running with the ESP8266

Awesome project!

nice project, scratch cmon man learn you some c! jk :)

Awesome. Thanks for sharing :)