Skip to content
Snippets Groups Projects
Commit 9d8ef748 authored by void's avatar void
Browse files
parents 3e7cbd55 cf779775
No related branches found
No related tags found
No related merge requests found
{% set devicename = "esphome_popcorn" %} {% set devicename = "esphome_popcorn" %}
{% include "/includes/ansible.inc.yaml" %} {% include "/includes/ansible.inc.yaml" %}
{% include "/includes/board.d1_mini.inc.yaml" %} {% include "/includes/board.esp32-doit-devkit-v1.inc.yaml" %}
on_boot:
priority: 250
then:
- climate.control:
id: pid_heater
mode: "OFF"
{% include "/includes/common.inc.yaml" %} {% include "/includes/common.inc.yaml" %}
spi: spi:
miso_pin: GPIO12 miso_pin: GPIO19
clk_pin: GPIO14 mosi_pin: GPIO23
clk_pin: GPIO18
climate: climate:
- platform: pid - platform: pid
id: pid_climate id: pid_heater
name: "PID Climate Controller" name: "PID Heater Controller"
sensor: pot_sensor sensor: pot_sensor
default_target_temperature: 21°C default_target_temperature: 264
heat_output: heater heat_output: pot_heater
control_parameters: control_parameters:
kp: 0.0 kp: 0.0
ki: 0.0 ki: 0.0
kd: 0.0 kd: 0.0
visual:
min_temperature: 0
max_temperature: 275
temperature_step: 1
button: button:
- platform: template - platform: template
name: "PID Climate Autotune" name: "PID Heater Autotune"
on_press: on_press:
- climate.pid.autotune: pid_climate - climate.pid.autotune: pid_heater
sensor: sensor:
- platform: pid
name: "PID Climate Result"
type: RESULT
- platform: max31855 - platform: max31855
name: "Pot Temperature" name: "Pot Temperature"
id: pot_sensor id: pot_sensor
cs_pin: GPIO15 cs_pin: GPIO15
update_interval: 30s update_interval: 30s
- platform: pid
name: "PID Heater Result"
type: RESULT
- platform: pid
name: "PID PROPORTIONAL Result"
type: PROPORTIONAL
- platform: pid
name: "PID INTEGRAL Result"
type: INTEGRAL
- platform: pid
name: "PID DERIVATIVE Result"
type: DERIVATIVE
- platform: pid
name: "PID HEAT Result"
type: HEAT
output: output:
- platform: slow_pwm - platform: slow_pwm
pin: GPIO0 pin: GPIO0
id: heater id: pot_heater
period: 15s period: 15s
\ No newline at end of file - platform: ledc
pin: GPIO4
id: gpio_4_backlight_pwm
binary_sensor:
- platform: gpio
pin:
number: GPIO32
inverted: true
mode:
input: true
pullup: true
name: "Heat Button"
id: heat_button
on_release:
then:
- climate.control:
id: pid_heater
mode: "OFF"
on_press:
then:
- climate.control:
id: pid_heater
mode: HEAT
target_temperature: 264
font:
- file: "gfonts://Roboto"
id: temp
size: 115
- file: "gfonts://Roboto"
id: text
size: 40
color:
- id: my_red
red: 100%
green: 0%
blue: 0%
- id: my_green
red: 0%
green: 100%
blue: 0%
- id: my_blue
red: 0%
green: 0%
blue: 100%
- id: my_yellow
red: 100%
green: 100%
blue: 0%
display:
- platform: ili9341
model: TFT 2.4
cs_pin: GPIO5
dc_pin: GPIO16
reset_pin: GPIO17
rotation: 90°
lambda: |-
it.printf(160,120,id(temp),TextAlign::CENTER,"%.1f°C",id(pid_heater).current_temperature);
if ((id(pid_heater).action) == 0) {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: OFF");
}
else if ((id(pid_heater).action) == 4) {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: IDLE");
}
else {
it.printf(0,10,id(text),TextAlign::TOP_LEFT,"PID: ERROR");
};
it.printf(0,230,id(text),TextAlign::BOTTOM_LEFT,"Target: %.1f°C",id(pid_heater).target_temperature);
time:
- platform: sntp
id: ntp_time
timezone: 'Europe/Berlin'
light:
- platform: monochromatic
output: gpio_4_backlight_pwm
name: "ILI9341 Display Backlight"
id: back_light
restore_mode: ALWAYS_ON
text_sensor:
- platform: template
name: "PID State"
id: pid_state
lambda: |-
if ((id(pid_heater).action) == 0) {
return {"OFF"};
}
else if ((id(pid_heater).action) == 4) {
return {"IDLE"};
}
else {
return {"NaN"};
}
update_interval: 5s
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment