Smart Thermostat

22K70126



Intro: 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: https://dl.dropboxusercontent.com/u/26591541/Smart...

22 Comments

I LOVED your videos. However, in the second video you "promised" that you were going to show how to include a power supply for all the digital electronics, but it wasn't in the third video. I'm very interested in an easy way to power the digital section off the available 24VAC. Have you done that for this design or some other version?

Seems that the dropbox link is not working anymore.

plz send me this project aia file on my mail 'allwayskush@gmail.com

Hi friend,

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

thanks

Hi,
but code in not complete!!
#include
#include
#include

// 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.begin(57600);
Serial.println("Coordinator is online.....");

SPI.begin();
radio.begin();
network.begin(90, thisNode);
}

void loop(void)
{
//check network communication regularly
network.update();

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
network.read(header,&payload,sizeof(payload));
Serial.print("The node this is from: ");
Serial.println(header.from_node);
Serial.print("Temperature: ");
Serial.print(payload.aDCTemp);
Serial.print(" Battery status: ");
Serial.println(payload.batState);
}
}

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 :)

great project! Because my home contains 3 thermistor stats, I would want to go with a WiFi approach. This way you do not have to Bluetooth attach to each module and you could also potentially do this remotely / away from home. Sort of like the AT&T Digital Life. I love this.

Thanks! Yeah with the recent release / availability of the low cost ESP8266 WiFi to serial module I may have to do an upgrade to WiFi in the future.

I love it. Thanks for sharing.

Hey Thanks! Please vote for this project in the "Coded Creations Contest"

A good way, I do not know if my phone can support this

use an ESP8266 module instead of bluetooth ;)

Yeah, I went back and forth on WiFi versus Bluetooth on this project. Settled on Bluetooth most likely because I already had some Bluetooth modules ;-)

More Comments