heating control with web interface


this project is in development, what I’ve got so far is most of the web interface ( http:// is the direct link to the Arduino with Ethernet shield and SD card, when it’s not running you can take a look at the interface on http:// ). Notice it’s in german language, if requested it’s not a problem to translate it to english.

The heating to be controlled is not fully installed yet. There will be a heating circuit fed with hot water from a tank by a mixer. This mixer is driven by a motor to be controlled via relays. To this end, a sensor reads the temperature on the heating circuit, positioned directly behind the mixer. This temperature is compared to a target value (dependent on the outside temperature). The relays then move the motor either to mix more or less hot water to the heating circuit.

Temperature sensors are Dallas 16B20, I don’t know yet how many I might need, but since they are connected serially to the One Wire Bus, I can add as many as I like.

Total costs: Arduino Uno 30€, Ethershield 30€, relays (4 on 1 board) 10€, each 16B20 3€.

The heating circuit is circulated by an intelligent pump (I don’t interfere there with my control).

Simplified, that’s it. If anyone wants to look at the source: Just ask, I’ll post it.

Thanks for any feedback.

I am planning to do something similar myself - I would love to see your code.

One question - why do you want the inside temperature to be dependent on the outside temperature?

You find the code in this thread: http://arduino.cc/forum/index.php?topic=81070

But the heater control is not yet written. Your question shows me that you are not at all acquainted with heating control, so it’s hard where to begin explaining.

Basically, the colder it is outside, the more energy you need to heat your house. The radiators need to be hotter, so the temperature inside the heating circulation is increased. When it’s rather warm outside (but you still need some heating), you would waste a lot of energy if you’d feed the radiators with very little very hot water, so you use water at lower temperatures.

Thanks for the link to the code.

Thanks for the explanation. Here in the UK most domestic heating systems have a temperature sensor (thermostat) inside the house and switch on/off depending on whether the target temperature is reached - the water running through the radiators stays at a constant (hot) temperature. Outside temperature is ignored. Hence why I appeared to be "not at all acquainted with heating control"...

Now back in the day...

Switch the web interface to http://jquerymobile.com/ and use only one page and use asynchronous HTTP to send commands and get data (http://api.jquery.com/category/ajax/)

As I understand jquery is a development framework – what I need though is a webserver, because I want to access my heater control with any device, not just the tablet or phone. Or have I misunderstood the concept that you suggest?

jquery mobile is web interface that should work on almost all devices produced in the last year (check http://jquerymobile.com/gbs/) The web server should output a html page for the client, just write it with jquery mobile controls.

The second advice is to use ajax: build a static html page with jquery ajax (jscript) calls to send and bring data

There is no conflict in using a framework on you arduino web server, just make sure you include the js and css files in the html. It would be nice if your arduino web sever can host those files too (SD Storage).

If it's still unclear just PM me. I'll produce something like this in the next 2-3 weeks.

Regards, Adi

Thanks for your advice. I am afraid I have no experience whatsoever regarding HTML5 or ajax. I see the advantages in having an interactive web page instead of having to up-/download a page each time you click a link, but I am not sure if I have the time to get into that... Is there any good tutorial to start with or to have a look at with simple examples?


I understand what you're saying about the temperature of the radiator feed water, but I think you could probably do it by using a PI loop to determine how much heat is required, rather than the outdoor temperature. With a PI algorithm, you can decide how much heat to add by measuring how far you are from the desired temperature and how long you have not been at the desired temperature. The outdoor temperature would affect how fast you drift from the desired temperature, but you would probably need to determine experimentally how much gain to add based on the outdoor temperature. A PI would do this automatically, and without the need for the outdoor temp. Food for thought.