Skip to content
Snippets Groups Projects
Commit cf779775 authored by 3d's avatar 3d
Browse files

add features to popcorn

parent 8aa80f81
No related branches found
No related tags found
No related merge requests found
......@@ -17,13 +17,88 @@ spi:
mosi_pin: GPIO23
clk_pin: GPIO18
climate:
- platform: pid
id: pid_heater
name: "PID Heater Controller"
sensor: pot_sensor
default_target_temperature: 264
heat_output: pot_heater
control_parameters:
kp: 0.0
ki: 0.0
kd: 0.0
visual:
min_temperature: 0
max_temperature: 275
temperature_step: 1
button:
- platform: template
name: "PID Heater Autotune"
on_press:
- climate.pid.autotune: pid_heater
sensor:
- platform: max31855
name: "Pot Temperature"
id: pot_sensor
cs_pin: GPIO15
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:
- platform: slow_pwm
pin: GPIO0
id: pot_heater
period: 15s
- 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: my_font
id: temp
size: 115
- file: "04B03.ttf"
id: b03
size: 20
- file: "gfonts://Roboto"
id: text
size: 40
color:
- id: my_red
......@@ -52,21 +127,42 @@ display:
rotation: 90°
lambda: |-
it.printf(160,120,id(my_font),TextAlign::CENTER,"264°C");
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'
output:
- platform: ledc
pin: GPIO4
id: gpio_4_backlight_pwm
light:
- platform: monochromatic
output: gpio_4_backlight_pwm
name: "ILI9341 Display Backlight"
id: back_light
restore_mode: ALWAYS_ON
\ No newline at end of file
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