ESP32 Smoker Controller
Description
Fully automatic smoker controller based on an ESP32-S3-N16R8 running ESPHome. A PID controller drives the heater via PWM to an SSR relay and keeps the chamber temperature precisely at the setpoint. Two DS18B20 sensors at the top and bottom of the chamber provide the input values, which are combined into a weighted average for the PID loop. A BME280 on the outside of the cabinet measures ambient temperature and humidity, which feeds into the heat-loss model. A separate PT1000 via MAX31865 is mounted on the outside of a stainless-steel cold smoke generator, right at the burn zone — the measured temperature there is used to regulate the generator's air pump so the chips smoulder cleanly without overheating. An adaptive power limiter calculates the maximum permissible heating power every 30 seconds based on ambient temperature, setpoint and computed heat loss — effectively preventing overshoot above the setpoint. A stable-state detector running every 5 minutes adapts the heat-loss coefficient; depending on the detected operating regime, different PID parameter sets (hot/cold) are switched in. An MS24 servo (270°) drives the exhaust damper, a PZEM-004T v4.0 over Modbus measures voltage/current/power/energy. The whole system integrates into Home Assistant via native ESPHome entities: Climate, Sensor, Number, Switch, Button.
Features
- PID temperature control with deadband
- Adaptive max-power calculation from heat-loss model
- Automatic switching between "hot" and "cold" PID parameter sets
- Multiple sensors: 2x DS18B20 (chamber), PT1000 via MAX31865 (smoke generator), BME280 (ambient climate)
- Servo-controlled exhaust damper (MS24, 270°)
- Energy monitoring via PZEM-004T v4.0 over Modbus
- Home Assistant climate entity, natively integrated
- Safe boot sequence: control OFF, fan 0%, damper closed
Techstack
- ESP32-S3-N16R8
- DS18B20 (x2)
- BME280
- PT1000 + MAX31865
- PZEM-004T v4.0
- MS24 Servo 270°
- SSR-40DA
- Heizelement
- ESPHome
- PID Climate
- One-Wire / SPI / UART-Modbus
- Lambda-Automationen
- Home Assistant Native
- ESPHome Dashboard
- MQTT optional







