Thermostat Update Version 3.2

I suppose it’s about time to let you know about the multitude of changes in my thermostat. If you’ve been following along, you might be surprised that I’ve jumped all the way from Version 2.0 to Version 3.2, but that’s just how drastic the updates have been. You can read about version 1 here, and the version 2 update here, if you want the backstory.

Is that a Photon in your pocket?

Yes (and I’m happy to see you). The Particle Photon is a programmable wifi microcontroller. The version 2 update included the Photon, but it only served as a link to the internet for basic control and minimal monitoring. The system still ran on the Arduino platform. Now, the Photon runs 100% of the system, and the Arduino has been phased out. This gives me full control, and full monitoring capabilities.

Don’t Blynk, you may miss it.

Blynk is an app that allows you to communicate with your microcontroller projects. It works with a number of popular platforms. You can read data from your hardware to keep tabs on it, or you can write data to the hardware to control it. It is very simple to set up, and has proven quite flawless. As you can see in the pic, I am monitoring temperature, humidity, and furnace runtime. This data is also being graphed. The graphed data can be output to a csv file as well.

I’m also using Thingspeak as a primary means to log data for analysis later. There is a graph at the end of this post. It it one of the live feeds from the system to Thingspeak. You can see the whole public feed here.

Alexa, I’m freezing my testicles off.

I have incorporated an Amazon Echo Dot into the equation, using the IFTTT service to link everything together. I can tell the Echo to turn the furnace on or off, and trigger it to certain temperatures. You can’t use IFFFT to send variables, so I can’t pick any random temperature, the control has to be pre-defined. I had to write a function for 65°F, and one for 70°F.

Look, Ma, no hands!

Between the Blynk app, and the Echo/IFTTT integration, the system runs without me ever actually interacting with it. I rarely ever use the buttons on the physical interface. The delay function I added in V2.0 was recently incorporated into the app. I also added indicators for the temperature setting and the standby status, which makes it more clear that the system has responded to my remote commands.

This is crazy, but here’s my number. Text me, maybe?

The IFTTT service is also set up for texting. I can text it an ON command, or a specific temperature. It will respond to confirm the action. The system will also text me if the temperature drops below 38°F, because that means that my propane tank has run empty (Yes, that has happened when I was gone overnight. Yes everything froze. Luckily, nothing was lost. My water system thawed out and worked fine). The IFTTT service limits you to 100 texts per month, so you have to be mindful of when you use that type of notification. My 38° notifications (being high priority) are quite incessant, and come in waves that will quickly trip that threshold.

A day in the life.

So here’s what a typical day might look like. Before bed, I will determine what time I plan to wake, and set my delay for one hour earlier. Then I tell the system to turn off and crawl into my sleeping bag. The temperature is allowed to drop to 40°F overnight. When I wake up, the system will have been on for an hour, and it will be close to 60°F. I tell it to turn off before iI leave for work. If I forget, the motion sensor will do it for me after an hour. Before I leave work for the day, I’ll will check in. The system will be in standby mode (40°F) since there has been no motion for over an hour. When I hit the ON button, I can clearly see the system come out of standby mode, set itself to 60°F, and turn on. I can also set a specific temperature, if required. When I get home, it’s nice and toasty. Lather, rinse, repeat.

Thanks for reading. As a parting gift, enjoy this live graph of the temperature in the camper. It updates every 2 hours.

Leave a Reply

Your email address will not be published. Required fields are marked *