Save $500/year in utilities with microcontroller

I save $500+/year just by modifying how the existing thermostat, dual output gas furnace and electric water heater operate.

Similar projects worth following
I save $500+/year just by modifying how the existing thermostat, dual output gas furnace and electric water heater operate using a separate inexpensive controller. It reduced my gas consumption per degree day by 33%. The water heater is controlled as well so it's only on at night just before use. Both can be monitored and controlled from a web page. The project is described at

In cold locations the furnace must be sized for worst case coldest temperature. This means for most of the year it operates at a small fraction of it's output by cycling on and off to meet a narrow thermostat temperature range. This modification let's the temperature vary more for more efficient, longer furnace run times. Also includes an electric water heater timer so it's only on at lower cost power time of use. Both changes are not noticeable but save $500+/year for $25 in components.

NodeMcu Furnace and Water Heater Control.txt

Copy and paste complete operational code for Furnace and Water Heater control. Includes automatic alert to send daily total furnace ON seconds = gas consumption to Google spreadsheet automatically via For details see:

plain - 71.25 kB - 10/16/2017 at 20:46


NodeMcu temp only.txt

Copy and paste code from this file for NodeMcu temperature demo as shown in the video. For details see:

plain - 71.78 kB - 10/16/2017 at 17:51


  • 1 × LoLin V3 NodeMCU
  • 1 × 4 channel relay board
  • 1 × photoresistor
  • 2 × DS18B20 digital temperature sensors
  • 1 × DS3231 Real Time Clock

View all 9 components

  • 1
    NodeMcu Board Setup Instructions

    We will use the common Arduino programming software to program this device. This device is not an Arduino product so other people have created modifications to the Arduino programming software so it works with this device. Setup consists of the following.
     1. Download and install an older version of the Arduino programming software.
    2. Add modifications to the software for this device.
    3. Add libraries to the programming software for other devices like the temperature sensor.
    4. Connect device to PC USB port and serially upload Basic_OTA programming including adding your network SSID and password changes.
    5. Unplug device USB from PC and plug into USB power supply. It will reboot and connect to your network.
    6. Look under ports in the programming software and you should see a new IP address for the device listed. Click on it to use as a wireless programming port.
    7. Upload ESP Temperature Only program.
    8. Plug in the temperature sensor as shown in the pic.
    9. Put device IP address in a web browser and you should be able to turn on and off the Blue LED and display the temperature as shown in the YouTube video.
    10. To ensure the IP address of the device doesn't change go to your router settings page and reserve the IP number. It should be beside a new user called ESP.  Change the username if you want.
    11. Plug in remaining hardware as shown in the pics and tailor example program to your application.  
    12. DS3231 Real Time Clock setting instructions are within code.
    See website for more details and applications and example code.

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates