Here's an update to were I am at with my little hot tub controller project..
Hardware:
Arduino uno, Digole 4x20 blue lcd (ic2), membrain 4 button keyboard, 2 x one wire temp sensors, real time clock, 4 way 10a relay board, 1 way 30a relay board, sim900 SMS/phone module.
After I had got a basic design on paper, I decided that the whole project could be done with pre made boards, I do have the facilities to make pcb boards but it seemed a bit overkill, there is so little 'glue' circuitry that only a small square of vero board will be required!
my design will:
control...... heater, circ pump, main pump, pump2, blower,
accept input from..... keypad, SMS and Serial, temp sensor for water, and outside
Display.... 4x20 Lcd, optional second display
progress so far is good , all the main components are on the workbench and connected and code has been written, most of the basic function are now complete, its basically a working controller!
so far the code includes the following
settings are stored in EEPROM so on power up it will recover its basic fail safe settings.
there is a frost protection mode which activates automatically I the water temp and the outside temp both fall below 5deg C, in frost protection it cycles the water pumps and heats if required to 5 deg
there is a standby mode, in this mode you can set a temperature, which it will maintain, run the circ pump when heating and cycle the pumps for a few mins each hour to purge any stale water in the pipework.
manual mode allows you to adjust the temp, turn on the pumps and blowers etc
I am planning an auto mode which will maintain temp and randomly cycle the pumps for random times, not sure if I need this but may consider it especially if I decide to control the spa lighting as well.
SMS:
This still needs a little more work, at the moment I have to manually turn on the sms module and check its ready, so I need to had a little hardware/software routine to automate this.
The controller send me an SMS if it goes into frost protection, and I can get it to send a status report with the current operation mode, outside and water temp
I need to write a procedure to decode incoming SMS messages and extract commands, just getting my head around how arduino and C++ handles strings (first time coding in C++)
the goal is to be able to send commands for Example
Status : sends back an SMS with current temps and mode
GO 38: sets the mode to standby and the set temp to 38
GO frost : power down and enter frost protection mode
REG (pin code): store the calling tel number in memory, so that only the registered phone can access the tub
I also need to write a little code to set the time, although it may be simpler just to set it from the last SMS received, currently its just been set from some example code, but it seems to be keeping good time
As its now just a matter of time before its a complete project, I have started to assemble the boards onto an aluminium chassis that will fit inside the existing controller box, final assembly if you like!
a couple of points about my design...
I used relays rather than SSR's , Why ?, well when an SSR fails it can fail short!, this rarely happens with the humble relay, secondly if your tub has a dual speed pump (circulation and jets1) the you should never power both windings up at the same time!, so my dual speed pump has two relays , one for on and one to switch to the high speed via change over contacts, making it impossible to power both windings.
Safety
My tub heater tube has fitted to it both an over temp cut out and a pressure switch, these will be wired in series with the heater to ensure it can not over heat and the heater will only run when the circ pump is running, make sure you include this in your design !
As I an using the existing housing , this contain both over current trips for all pumps and a RCD, both are essential.
It would be interesting to see how others are progressing , has anyone else got any good features to add ?