Problem:

My house is configured so that my thermostat is positioned in a way that does not keep me comfortable.  The thermostat's distance from me at most times makes its readings less than useful, and adjusting it annoying.  A wirelessly controllable thermostat with multiple sensors would be ideal.  However those features cost hundreds of dollars and give Amazon, Google, or worse control over your HVAC.  I figured I could do better without the cloud.


Components:

  • 1 x ESP-32 for main control board
  • 1 x ESP-8266 for remote sensing board
  • 2 x AHT10 temperature sensor (one each for main and remote boards)
  • 1 x 1.5" Color OLED Screen for main UI
  • 1 x 1" B&W OLED Screen for remote display
  • 2 x 3v Relays
  • 1 x Push-button rotary encoder

Challenges:

The HVAC protocol is dead simple, no timing or multiplexing or anything, but the voltage used is 24VAC.  I decided to let relays handle switching that.  These relays led to minor issues.

Relays emit RFI.  I knew this, but I didn't know it would be bad enough to crash my ESP-32.  A combination of wire tidying, copper shielding, extra distance, and software failsafes alleviated this issue in the end.

Relays emit heat when energized.  This makes sense, but I didn't realize just how badly it would affect my temperature readings.  Some thermal shielding, venting, and better positioning fixed this issue.  

Minimum cycle times were a big concern to me.  I wanted to make sure I wasn't over-stressing my compressors, blowers, and igniters.  I paid special attention to these parts of the code and did many days of bench testing with dummy loads before actually installing it onto my house.  The testing paid off and I haven't had any issues.

Things I lucked out on:

The thermostat I'm replacing clearly indicated the pinout on the back, saving lots of time. 

The existing pins were 0.2" apart, a perfect fit for every other hole on 0.1" protoboard.

I was able to make my own extra long and beefy pin headers with 8ga solid core wire

Status:

It's been on my wall since early September of 2022, so about three months now.  The ESP chips have been rock solid the whole time, never giving me any hiccups after I solved the relay issues.  I've been enjoying the graphs generated and have shown some neat insights into my house's thermal behavior.

Update: As of Jan 2024 this system has been running unmodified and without major issue in all four seasons.  The OLED screens have experienced severe burn in, but I don't really care.