So this project at this point in time is not a MySensors based project, but I may make it into one in the future and use one for my home. That said,
My project is a digital thermostat using an arduino uno and a 3.2 inch touch screen TFT shield. This thermostat is going to replace the thermostat in my RV.
One difference from an RV thermostat to a normal house thermostat is that the house system typically runs on 24 volts AC whereas the RV runs on 12 volts DC. My original plan was to use the incoming 12 volts to power the uno. The specs for the UNO say that you can put up to 12 volts in the barrel jack. The only problem I have with this is that the linear regulator that the UNO has gets quite hot when running it from 12 volts. This heat will no doubt affect the temp sensor that reads the open air temp. I need to find a reasonably small way to regulate 12 volts to 5 volts without a lot of heat.
And now a bit about my design. I have most of this built and my firmware is nearly ready. I am designing it as an auto changover setup with a relay for fan speed (low or high). Here is the board setup that I have.
The area of the board marked in yellow will be where the screw terminals will go for connecting it to the system. The 3 relays are heat, cool and fan. I was originally going to use 5 volt relays supplied from the 5 volt pin on the arduino. I found out that when two relays would trigger, the UNO would reset. I tried adding a capacitor to the power line near the relays, but that didn't help. I am changing the relays to 12 volt relays so I can just use the incoming 12 volts to power them. I am triggering them with NPN transistors connected to 3 digital pins.
Here are a few more pics of the setup. I have designed and 3D printed a case for this also.
This is with the TFT shield in place.
And this is with the cover in place. The cover needs a little bit of cleanup work, but otherwise not too bad.
And now a look at the firmware. The first image is the main screen. The main screen shows the current temp with the HVAC, fan status and set point on the right side of the screen.
The main screen has two touch areas, the gear in the upper left corner and the set point box. Touching the gear icon gets you to the settings page, seen here.
When you touch to change any setting, it is stored in the EEPROM on the UNO allowing it to recover on the same settings if it were to loose power. Most of the settings are pretty self explanatory except for the threshold and changeover settings.
The threshold value is either added or subtracted from the set point to offset when the heater or AC is switched on to know if it should have the fan on high or low. if the temp is with the threshold value of the setpoint, the fan is set to low, otherwise set it to high. On the RV, this just sets the fan to low or high. On a house multi-stage HVAC system it could switch stages.
The changeover value tells the system how many degrees the temperature must go up or down from the setpoint before the system changes over from heating to cooling or vice versa.
Clicking Exit at the bottom will take you back to the main screen.
On the main screen, clicking anywhere in the box that shows the set point temp will take you to the setpoint screen.
This screen is self explanatory in its function. The up and down arrows let you set a new setpoint, and Exit at the bottom will take you back to the main screen. The setpoint value is also saved to EEPROM on any change in value.