So...
After testing different tapes and other options I have decided to make my own
Please see attached schematic.
My thermostat utilises ATMEGA328P running on internal 8MHz oscillator, Nokia5110 LCD module, DS18B20 temperature sensor and SKA10420 SSR. All powered from 2x AA batteries.
The power consumption in sleep mode is 200uA (which is consumed by the LCD), the SSR takes roughly 2mA (with 440R in series, more than 560R wasn't reliable). The thermostat will be in use for max. 4-5 months and I don't expect the heating be more than 5-6 hours a day during the coldest days. Energy budget suggests that 2xAA will be ok in this scenario.
From the left on schematic:
- JP1 -> battery connector + switch (so I can turn off the entire unit completely),
- JP2 -> a connector for USB2Serial adapter,
- JP4 -> Nokia5110 display module + manual backlight switch,
- S5 -> double pole switch to turn off mains (as I described earlier, the main controller provides 230V that the thermostat passes it on to the motorised valve) - I wanted to cut off both ends.
- S6 -> allows me to manually override the thermostat in a case of a failure
- the resistor network (yes, I know, it's an overkill but I wanted to limit the heat generated as much as possible) is a feedback loop to the microcontroller - if there is no signal from the central heating controller, there is no point of enabling SSR (and wasting battery energy).
The program works in a way:
- the UP/DOWN buttons increment temperature by 0.5C, the temperature is stored in EEPROM (and restored after boot/power-up),
- the room temperature is measured every 15s (I may change it to 30?),
- if the room temperature is LESS than set temperature (minus 1C as a hysteresis) AND 230V is present from the central heating, then enable SSR (and pass the 230V to the valve).
- if the room temperature is MORE than set temperature OR 230V is not present, then turn off the SSR,
- the uC sleeps all the time, waking every 15s to check temperature, conditions, etc. an goes back to sleep,
- the UP/DOWN buttons are connected to interrupt pins so these can be pressed at any time,
- the LCD shows: set temperature, current room temperature, battery voltage, percentage (from 2.4V to 3V+), battery icon (with 100 pixels so each pixel represents 1%) and a heating icon.
If you have any feedback/comments, please let me know. I haven't designed a PCB yet, it just sits on a breadboard right now while I'm testing it.