Arduino Uno as a water heater control

Hi All,

Here is my project:

Context:

  • I have a water heater in my home with a hot water storage tank (see photo1).
  • There is a thermometer inside water tank that is connected with two wires to the water heater (see photo2). On the control panel I can setup the water temperature I need and the heater works till the water reaches this temperature. This is based on the readings from the termometer.
  • I assume that the thermometer is a simple termistor (only two wires)
  • When I measure the voltage on the ends of termistor connected to the heater I get from 2.5 (hot water) to 3.8V (cold water)
  • when I measure the resistance on the ends of termistor DISconnected from the heater I got about 4,7k Ohm (I only did this once)

Goal
The problem with the water heater is that I can only set the temperature I want, but I cannot program this to warm the water at 7am for the morning shower and then switch it off for the day and switch it on again at 8pm for kids' bath. Fixing this is the ultimate goal of my project.

Phases
I want to do a 3-phase project with Arduino Uno (and later with Attiny85, but this is out of scope for now)

Phase 1 - disconnect the termistor from the heater and read display the temperature on 2-digit, 7-segment display. I guess this is easy - tons of examples on the web. No help needed :slight_smile:

Phase 2A - connect the termistor to the heater (how it normally works), read the temperature from termistor in Arduino and display it on the same display as in Phase 1. Arduino is externally powered. No need to explaing the display part - I got this covered. This phase might be skipped if 2B is easy.

Phase 2B - the same as 2A, but Arduino is powered from the water heater (is it possible??)

Phase 3A - termistor is connected only to Arduino. Arduino is programmed to switch on and off the heating at needed hours. Arduino is connected to water heater where termistor was connected and Arduino somehow emulates the termistor behaviour. I guess I don't need full range of temperatures to be sent from Arduino to water heater, but only 3 levels: warm (40 deg Celcius), hot (45 deg Celcius) super-hot (55 deg Celcius). Sorry US people ;-). Arduino is externally powered. This phase might be skipped if 3B is easy.

Phase 3B - the same as 3A, but Arduino is powered from water heater.

What I mostly need is help with wiring the termistor, Arduino and water heater in different phases. I can probably handle most of the coding myself.
Most important assumption - don't damage anything in the water heater.

Cheers
Lech

While I have never seen a water heater like yours, and you have some electrical readings that may be described as interesting, I don't think it uses thermistors and there is no evidence of any low-voltage electronic control that might make sense of the readings you talk about. Nor would I expect any, as the controls are probably simple probes or even button thermostats, just like everybody else has. Perusing the installation manual might be helpful, or even a closer look at something more interesting than a junction box.

But before you get too involved, you might check your local water heater regulations first because I submit what you propose is a pretty bad idea and quite possibly illegal. You are likely to find that the minimum storage temperature is 60, which implies that 55 can hardly be called super-hot.

On that matter, you might also consider getting a better thermometer, as "warm 40" is only a degree or three below the maximum hot shower a typical human can stand.

In short, if you want cooler water, it is certainly simpler, and possibly safer, to turn the cold tap on like everybody else does.

As I said, I don't understand the water heater. It is probably quite old, which makes it less likely to use a thermistor. It has just occurred to me that it is some sort of two stage system, but I think the above would still apply.

Nick_Pyner:
While I have never seen a water heater like yours, and you have some electrical readings that may be described as interesting, I don't think it uses thermistors and there is no evidence of any low-voltage electronic control that might make sense of the readings you talk about. Nor would I expect any, as the controls are probably simple probes or even button thermostats, just like everybody else has. Perusing the installation manual might be helpful, or even a closer look at something more interesting than a junction box.

Here is an installation instruction http://www.immergas.com/documents/10184/76466/Victrix-X12-24-2I-1036643.pdf/2bdf57bf-c67a-49a9-bca5-4a96dae95ba1
Page 7 describes the junction box from Photo 2.

Nick_Pyner:
But before you get too involved, you might check your local water heater regulations first because I submit what you propose is a pretty bad idea and quite possibly illegal.

For sure it's not illegal, and why are you saying it's a bad idea?

Nick_Pyner:
You are likely to find that the minimum storage temperature is 60, which implies that 55 can hardly be called super-hot.

What is minimum storage temperature? Now I can set the desired water temperature anywhere between 20 and 70.

Nick_Pyner:
On that matter, you might also consider getting a better thermometer, as "warm 40" is only a degree or three below the maximum hot shower a typical human can stand.

Let's not focus on the exact temperatures - I can fix this leter.

Nick_Pyner:
In short, if you want cooler water, it is certainly simpler, and possibly safer, to turn the cold tap on like everybody else does.

As I wrote in my post, what I want is to be able to program hours when water is hot.

Nick_Pyner:
As I said, I don't understand the water heater. It is probably quite old, which makes it less likely to use a thermistor. It has just occurred to me that it is some sort of two stage system, but I think the above would still apply.

It's actually quite new - It's 6 years old.

ljoncz:
Here is an installation instruction http://www.immergas.com/documents/10184/76466/Victrix-X12-24-2I-1036643.pdf/2bdf57bf-c67a-49a9-bca5-4a96dae95ba1
Page 7 describes the junction box from Photo 2.

It is unreadable

For sure it's not illegal, and why are you saying it's a bad idea?

It sure as hell is illegal in Australia, and there is nothing special about us, so it is very likely illegal in most of the rest of the world. It is a bad idea because what you are proposing is to make in an incubator for legionnaires' disease.

As I wrote in my post, what I want is to be able to program hours when water is hot.

In that case all you need is a timer. You could use an Arduino for that, but it makes more sense to use a normal timer like everybody else.

It's actually quite new - It's 6 years old.

I only said it might be old because I thought I saw some gal fittings, but maybe they are not. However, if you can wind the thermostat down to 20, it implies the heater is old, or you have some very slack national health standards

Probably it is possible. I am actually working on heating regulator, little bit more complex so one important advice:
Do not bypass any of safety elements! Think about the situation when your Arduino fails.The system must work in such case like nothing was connected or safely stop working. Overheating could be extremely dangerous.
I can imagine to insert some relay before the water heater relay and switched according self independent temperature sensor, do not disconnect or bypass its original one. The water heater regulator will be set to e.g. maximal possible temperature while the Arduino will act according your needs at lower temperatures so in case of failure the water heater will be regulated to the maximal possible temperature like nothing were connected or it completely stops.

PDF is unreadable for me.