DIY Wifi thermostat with ESP8266, NRF24L01+ and Pesto Novella

Yet another DIY Wifi IoT WTF thermostat, made of 3 modules: A base module which communicates with the other modules, implements the control logic and has internet connectivity. A wireless temperature/humidity sensor. A wireless heater activation relay.

Here are its base features:

  • Arduino based
  • Wireless heater relay and thermal probe
  • Base module uses a DS3231 RTC for timekeeping
  • Uses NRF24L01+ modules for wireless communication between modules
  • Uses the Blynk API for easy smartphone control
  • 7 days program with 30 minutes granularity (48 daily slices)
  • 2 temperature zones

Here are its advanced features:

  • Wireless temperature probe built inside a Pesto Novella jar
  • Ultra low power design of the thermal probe module, it runs on 2xAA batteries, 50uA idle current, 6mA peak when transmitting, once every 16 seconds
  • Monitoring of probe battery voltage
  • Monitoring of radio connection status
  • Thermostat daily program saved inside the ESP8266’s SPI flash
  • Overly complicated and unfriendly web interface for daily program setting
  • Programmable hysteresis

Here is the bill of materials:
Base module:

  • 4€ NodeMCU 1.0
  • 2€ 128×32 SSD1306 I2C OLED display
  • 2.5€ DS3231 RTC module
  • 1.5€ NRF24L01+ module
  • 1€ PCF8574 I/O expander for the RGB LED and maybe some buttons in the future
  • 4€ 60x80mm proto board

Temperature probe module:

  • 2€ Arduino pro mini 3.3V 8MHz (clone)
  • 1.5€ NRF24L01+ module
  • 2€ 2xAA battery holder
  • 3€ 40x40mm proto board
  • 1€ DHT22 temperature/humidity sensor
  • 2.99€ Pesto Novella plastic jar (130gr)

Heater activation relay module:

  • 2€ Arduino pro mini 5V 16MHz (clone)
  • 1.5€ NRF24L01+ module
  • 1€ ULN2004 driver for relay
  • 1€ 5v coil relay
  • 3€ 40x40mm proto board
  • ??€ Old USB phone charger as power supply
  • 1.6€ Plastic box