Alessandro Polselli
Published © Apache-2.0

Smart Pellet Stove: a wood pellets heating system made smart

How to innovate a pellet stove for remote monitoring, control and home automation integration with a Shelly 1 smart relay + ESP32 + sensors

IntermediateFull instructions provided4 hours508
Smart Pellet Stove: a wood pellets heating system made smart

Things used in this project

Hardware components

Shelly 1
×1
ATOM Matrix ESP32 Development Kit
M5Stack ATOM Matrix ESP32 Development Kit
×1
Adafruit Waterproof DS18B20 Digital temperature sensor
Adafruit Waterproof DS18B20 Digital temperature sensor
×1
Maxim Integrated MAX6675 K Type Thermocouple
×1
Maxim Integrated Current Transformer (CT) Clamp sensor
×1

Software apps and online services

Home Assistant
Home Assistant
ESPHome

Story

Read more

Schematics

Shelly 1

M5Stack Atom Matrix / Lite pinout

ESP32 development board with sensors attached

Code

smart-pellet-stove.yaml

YAML
This is the YAML file to build the ESPHome firmware for the Smart Pellet Stove
substitutions:
  devicename: smart-pellet-stove
  upper_devicename: Smart Pellet Stove

packages:
  m5atom: !include m5atom-common.yaml

# Enable Home Assistant API
api:

web_server:

# MAX6675
spi:
  miso_pin: GPIO23
  clk_pin: GPIO22
  
# DS18B20
dallas:
  - pin: GPIO21
    update_interval: 5s

sensor:
  - platform: max6675
    name: $upper_devicename Max6675 Temperature
    cs_pin: GPIO19
    update_interval: 5s

  - platform: dallas
    index: 0
    name: $upper_devicename DS18B20 Temperature

  - platform: ct_clamp
    sensor: adc_sensor
    id: current1
    name: $upper_devicename CT Clamp Current
    update_interval: 2s
  - platform: adc
    pin: GPIO33
    id: adc_sensor

binary_sensor:
  - platform: template
    name: $upper_devicename Feeding
    id: feeding1
    lambda: |-
      return id(current1).state > 0.3;
    filters:
      - delayed_off: 10s

m5atom-common.yaml

YAML
This is a "common" YAML for M5Stack Atom ESP32 devices that sets boilerplate definitions and pinouts: it is included by the Smart Pellet Stove YAML, but can be re-used for any other ESPHome project built for the same platform
esphome:
  name: ${devicename}
  comment: ${upper_devicename}
  platform: ESP32
  board: m5stack-atom
  platformio_options:
    upload_speed: 115200

# Enable logging
logger:

ota:

wifi:
  networks:
  - ssid: !secret wifi_ssid
    password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap: {}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device.
captive_portal:

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO39
      inverted: true
    name: ${upper_devicename} Button

sensor:
  - platform: wifi_signal
    name: ${upper_devicename} WiFi Signal
  - platform: uptime
    name: ${upper_devicename} Uptime

switch:
  - platform: restart
    name: ${upper_devicename} Restart
  - platform: safe_mode
    name: ${upper_devicename} Restart (Safe Mode)

Credits

Alessandro Polselli

Alessandro Polselli

2 projects • 9 followers

Comments

Add projectSign up / Login