Kronos Robotics and Electronics
Site Map
 
Home Zeus Projects App Notes Downloads Dios Athena Forums
 

Build a Wood Stove Monitor

Updated 10/31/2008

By Michael Simpson

 

Wood Stove Monitor in place

 

 

My house has a wood stove located in the basement under our living room.   It is a very efficient stove and has reduced our electric bill by several hundred dollars each winter.  One problem is that in order to heat the upstairs the basement must cook.  A couple of my offices are located in my basement so I need to figure out how to keep it from getting so hot.

I decided to cut a hole in the floor and add a register type vent to the living room.   I purchased the vent cover for a couple of dollars and its located in a inconspicuous place next to the wall.   It looks just like a furnace vent.

After trying it out a few times I found it did help heat the living room a bit better.  I could keep the stove turned down a notch which helped with the overheating of the basement area.  This was still not enough however.

I decided to add a small 200cfm muffin fan to the vent.  The actual fan is attached to the underside of the vent and cant be seen from the living room.

This worked great.  The only problem was I had to manually turn the fan on and off.   At night when the stove was banked and the temperature would drop it would be nice if the fan would shut off.   I could just use some type of thermostat but I also wanted to add an overheat alarm and some sort of indicator that would let me know when it was time to trough a few logs on the fire.

I decided to use  the Dios Ultra board because everything could be placed on the board and the whole thing would cost less than most other controllers.

The Dios Ultra has a small prototyping (experimental area) that can be used to hold the DS1620 temperature chip and a small relay to control the fan. 

The LED's can be mounted right on the IO port header.

I also decided to use the Kronos Siren for alarms and warnings because it already has a driver transistor built in and can be driven directly by the Dios Ultra.

The whole thing will be mounted on a piece of ply-wood so it can hang in position above the stove.

 

I will mount the fan connector on a small header so I can remove it when ever I wish.

A note about headers

The Dios Ultra can be purchased with female or male headers.  The use is totally up to you.  I prefer male or no headers for permanent projects and female for bread board type projects that I will be tinkering with from time to time.  If you decide to use male headers checkout my header application note on connections options.

 

Hookup

Dios Ultra Board Hookup

Other Dios Chips

I'm showing the connections to the ultra board but you can connect the DS1620, Relay, and siren to any of the Dios Form factors.  Just use the same IOports so you wont have to make modifications to the program.

Fan Power

I don't show power connection to the fan because it all depends upon the fan you use.  The Relay can switch 1A at 30v or .5A at 110v.   You should not need much more than this for a vent.

The Relay

The relay is a small Telecom Type.   It can be driven directly from the Dios.   You don't need any clamping diodes as they are build in.  So pay attention to polarity.

LED Indicators

I use a green LED as a heartbeat LED.  It blinks once each second after it polls the temperature chip.  This way know the program is always running.

I use a yellow LED to indicate when the relay is on.

Tip:  I mount both the anode and cathode pins of the LED's to IO ports.  This allows me to source one pin and sink the other.   This way I can easily mount the LED's without connecting to a ground.  Also the LED's I'm using have internal resistors.  If you don't have access to this kind of LED then use a normal one with a 390 Ohm resistor in series.

Mounting the DS1620

Since the DS1620 chip is mounted right next to the relay I found that the energized relay gets a little warm.  This threw off the temperature readings.   To solve this I just used two 8 pin sockets to raise the chip above the relay.  It worked perfectly.   A piece of tape or hot glue can be used to make sure the sockets and chips are held in place.

Power

I use a small 12v wall wart to power my Ultra.  I even tap the 12volts to power the small muffin fan.  There are a couple places on the board you can do this.

The Program (download it here)

Dios
'Stove Fan Program
func main()

   gconst ontemp 99
   gconst offtemp 97
   gconst onhot 150
   gconst offhot 145


   dim clickcount as integer
   dim clickflag as integer

   clickcount = 0
   clickflag = 0

   output 3,7,8,12,13,14
   low 3,7,8,12,13,14

   dim celsius as float
   dim fahrenheit as float

   DS1620init(0,1,2)


'---------------------------------------------
'Main loop
'---------------------------------------------
again:

   celsius = DS1620readtemp(0,1,2)
   fahrenheit = CelsiustoF(celsius)

   print {-0.1} celsius,"c ",fahrenheit,"f"

'=========================================
'Check to see if its warm enough to turn
' On fan
'=========================================
   if fahrenheit > ontemp then
     Relayon()
     LEDon()
     clickcount = 0
   endif

   if fahrenheit < offtemp then
     Relayoff()
     LEDoff()

     if clickcount < 10 then
        clickcount = clickcount + 1
        click()
     endif

   endif

'=====================================
'Check to see if its too hot
'=====================================
   if fahrenheit > onhot then
     sirenon()
   endif

   if fahrenheit < offhot then
     sirenoff()
   endif


   toggle 7 ' heartbeat
   pause 1000
   goto again


endfunc


func Relayon()
   high 3
endfunc

func Relayoff()
   low 3
endfunc


func LEDon()
   high 12
   low 13
endfunc

func LEDoff()
   low 12
   low 13
endfunc

func sirenon()
   high 14
endfunc

func sirenoff()
   low 14
endfunc

func click()
   sirenon()
   pause 50
   sirenoff()
endfunc


include \lib\Dios1620.lib

 

A few notes on the program

Time for log warning

The siren is much to loud to use as a "time for new log" warning.   In order to tone it down a bit I only turn it on for 50 milliseconds for the first 10 heartbeats when the temperature drops below the relay shutdown threshold.

Temperature constants

The following constants are used for setting the trip points for alarms and fan.

  gconst ontemp 99
  gconst offtemp 97
  gconst onhot 150
  gconst offhot 145

ontemp

When the temperature jumps above this point the relay will be turned on.

offtemp

When the temperature drops below this point the relay will be turned off.  Also the siren will be clicked to let us know the temperature has dropped.  You will have to tweak this temperature a bit for your stove and environment.

onhot/offhot

These are used to turn the siren on full power to indicate that things are getting a bit too hot.

debug output

The temperature is sent to the debug port each time it is taken.  This will allow you to make some test points.  It is sent in both Celsius and Fahrenheit.

 

Final Notes

I have been using the Monitor for a few weeks and I could not be happier.   When the Time for Log alarm sounds.  There is just enough embers left in the stove to start the next batch of logs.  I no longer have to over stuff the stove. The temp above the stove (near ceiling) rarely gets above 114 Fahrenheit. 

 

The Parts

Dios 28 Pin Chip

DS1620

 

 Relay: Digi-Key Part # 255-1001

 

 

 9 Pin Cable

 

 

For the KR Siren you will need to build it in this Application note.

 

Copyright © 2001 - 2007 Kronos Robotics