Pages: 1 [2]   Go Down
Author Topic: Home Heat Thermostat - 7day prog., IR control, Graphic LCD  (Read 9172 times)
0 Members and 1 Guest are viewing this topic.
BC, Canada
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Honestly, I just threw in as much cool stuff as I could think of without really wondering if it was going to work or be functional lol...

You're right though!  I might as well load up with features what harm can it do apart from costing me some £s?!  smiley-razz 

If I do decide to also build a wireless thermostat controller that I can take to whichever room I'm sat in, I'm guessing I'd need something like an Arduino Uno, Xbee (or something), LCD screen for temp/function (low power), temp sensor and a couple of buttons.  How long could this thing realistically run on some kind of rechargable battery pack?  Say if it sent temp data every minute and the LCD screen was in low power mode.  Is this thing even feasible?

I don't think it would last very long on batteries... but I don't know for sure. Maybe someone else can chime in.

But I'm questioning why you're placing the thermostat near the furnace anyway, how come you can't place it in your main living area?
Logged

Cardiff, UK
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
Programmer of all sorts
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I don't think it would last very long on batteries

That's exactly what I thought.  I didn't think it would be possible for it to run for any longer than 3 days at best.  However, I did some Googling and found this page which has a simple setup of an Atmega 168 connected directly to 3 batteries, running a small program which puts the chip to 'sleep'.  By using just the Atmega means power is not lost on the onboard USB chip and the voltage regulator, as in a normal Arduino!  Looks like a pretty sweet solution and can last for 3 years.  I have no experience with dealing with loose ATmega chips and loading them with programs, etc...
 
http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/

Quote
But I'm questioning why you're placing the thermostat near the furnace anyway, how come you can't place it in your main living area?

I could put everything in one box in the living area (like you have) but the problem is that my boiler is in the kitchen, a couple of rooms away.  In order to control my boiler I'd have to put wires in the walls (=trouble) or use a wireless link (yay!).  If I'm using a wireless link I thought I might as well also make the thermostat enclosure itself portable so that it isn't limited to one room.  It could be in the bedroom at night and then go to the living room in the day.   Hope that makes sense.  It might just be a bad idea!   
« Last Edit: October 06, 2011, 11:39:39 am by supercrab » Logged

My Arduino 7 segment LCD/LED library

http://code.google.com/p/arduino-seven-segment/

Maidenhead, UK
Offline Offline
Newbie
*
Karma: 0
Posts: 46
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This is a great project and very nicely documented too - thanks for sharing, it's given me some ideas.
Logged

BC, Canada
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well that part about over-shooting the temp that I thought I didn't need, I did.

Now that it's getting colder and I'm using both heat sources I need to account for sharp temp rises and room equalization. I solved the problem with a linear relationship, for .5degrees C rise over 5min I compensate by pre-empting the off timer by 90 seconds.

This runs @ every cycle (TIMER_SLOPE) and adjusts the off timer.

Code:
float fHighTempDiff = iSetTemp + BUFFER_UBOUND - fCurrentTemp;

if (fHighTempDiff > 0 && fTempSlope > 0.05 && bHeatCycle == true) {
    //Adjust the off time to prevent over-shoot
    adjustOffTime(fHighTempDiff);
}

void adjustOffTime(float fTempDiff){

  bAdjustedOff = true;
  lOffTimer = millis() + ((fTempDiff/fTempSlope) * TIMER_SLOPE);
  lOffTimer = lOffTimer - (fTempSlope/0.5*90*1000); //Allow for room equilization, 90 seconds for .5 degree/5 min rise.
  if (bElec) lOffTimer = lOffTimer - 45000;  //Baseboard heat has an internal relay delay of 30-45 seconds.

}

Full code updated @ http://mcmicken.ca/arduino/Thermostat_V1.html
Logged

Cardiff, UK
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
Programmer of all sorts
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the update. smiley

I've spent way too long on writing a simple LCD driver for my wireless thermostat...  smiley-sad-blue  It looks like you completed yours in a few weeks?
« Last Edit: November 03, 2011, 04:19:17 pm by supercrab » Logged

My Arduino 7 segment LCD/LED library

http://code.google.com/p/arduino-seven-segment/

BC, Canada
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I did it pretty quick yea... Several weeks elapsed from the start but I was mostly just waiting on parts or being lazy! haha

The enclosure and soldering connectors etc was the most time consuming. Software was only a few nights of work thanks to the libraries I used smiley

How's yours looking so far, are you documenting the progress?

Logged

Cardiff, UK
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
Programmer of all sorts
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've had some building work done on my house and my office was dismantled so had to put the project on hold for a while.  I'm back on it but still bashing away at this all singing all dancing driver for 7 segment LCD/LEDs displays.  The display will go on the battery powered hand held device that tells you the temperature and has a remote on/off switch for the boiler (I think it will).   I shall document progress when I start making some!  smiley-sweat
Logged

My Arduino 7 segment LCD/LED library

http://code.google.com/p/arduino-seven-segment/

BC, Canada
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

For anyone interested, I'm happy to report the thermostat has been running strong for a few months without a single hardware hiccup.

I've updated it a few times though to tweak features etc.. New code is posted to my site. The most recent revision is documented here: http://mcmicken.ca/2011/12/another-update-to-the-arduino-thermostat/.

Cheers,
Logged

Cardiff, UK
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
Programmer of all sorts
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What temperature sensor did you use?  I have been using an LM35 and reading a value every second for a basic prototype.  I'm using 3.3v and setting the aref to get the value more acccurate.  It seems to fluctuate +/- 1 degree which is a bit annoying because I would rather avoid taking averages! Is your digital sensor more stable?
Logged

My Arduino 7 segment LCD/LED library

http://code.google.com/p/arduino-seven-segment/

BC, Canada
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I used the Dallas DS18B20. It's very stable, temps increment nice and slow with no bouncing down to 0.07 degree C.

It does however pick up a little heat through the wire and case... I had to adjust the temp readout in the software by a few degrees. It still rises and falls correctly with room changes though so I'm happy.
Logged

Cardiff, UK
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
Programmer of all sorts
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for that!  It looks like I'm gonna have to get rid of my LM35s then as they don't cut the mustard!   Ebay here and a Dallas DS18B20 here I come!
Logged

My Arduino 7 segment LCD/LED library

http://code.google.com/p/arduino-seven-segment/

Maidenhead, UK
Offline Offline
Newbie
*
Karma: 0
Posts: 46
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@supercrab if you can wait a few days, try ebay seller dailydealuk in China, bought 10 and they arrived the other day, work fine and a good price.

@gmcmicken thanks for posting and updating this project, your finished item looks great!
Logged

Cardiff, UK
Offline Offline
Jr. Member
**
Karma: 0
Posts: 70
Programmer of all sorts
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@maidbloke Cheers!  Unfortunately, I had already ordered 5*Dallas DS18B20 for £10 off eBay by the time I read your reply.  They have arrived from a UK seller (with some 4.7K resistors) and I look forward to plugging them in tomorrow!  Not sure what I'll do with those LM32s smiley-sad
Logged

My Arduino 7 segment LCD/LED library

http://code.google.com/p/arduino-seven-segment/

Pages: 1 [2]   Go Up
Jump to: