#1800W Air fryer controlled by ESPhome

23 messages · Page 1 of 1 (latest)

thick rock
#

Hardware:

  • esp32 wroom module (custom PCB, will make one that is more integrated)
  • 2x 16A ac dimmer module,
  • max6675 thermocouple
graceful rune
#

Is it to cook the food or the electronics?

thick rock
graceful rune
#

Ha, would have never guessed

thick rock
#

i got tired that air fryer wouldn't allow me to run this for hours which is needed for filament so i ripped it apart and slapped my own electronics

graceful rune
#

Do you need 1800W for filament?

thick rock
#

nope but i need robust enclosure and "air flow path" that air fryer has

#

and i bought this one for 40e, aint no way im getting anywhere close to that with DIY

proud swallow
thick rock
#

the thermal cam video above is after 6h of run time

#

i didnt route it yet but i will probably make this pcb and reuse components from that robotdyn module

#

another thing i didnt like is how fan was running at full speed and that was very loud

#

pid tuning was extremely painful and i had to resort to some tricks to get it down to +/-1 deg, here is full config

#
switch:
  - platform: template
    id: fan_switch
    name: "Fan Switch"
    optimistic: True
    turn_on_action: 
      then:
        - lambda: 
             id(ac_fan).set_level(0.55);
    turn_off_action: 
      then:
        - lambda: 
            id(ac_fan).set_level(0);
            id(ac_fan).turn_off();

climate:
  - platform: pid
    name: "Air Fryer"
    sensor: main_temp
    id: heater_pid
    default_target_temperature: 0°C
    visual: 
      min_temperature: 10
      max_temperature: 180
    heat_output: heat_output_redirect
    on_state:
      then:
        - lambda: |-
            auto pidO = id(heat_output_redirect).valx;
            float temp_diff = id(heater_pid).target_temperature - id(main_temp).state;
            if (temp_diff > 20) {
            } else if (temp_diff > 0) {
              pidO = pidO * (temp_diff / 20.0); 
            } else {
              pidO = 0.0;
            }
            id(ac_heater).set_level(pidO);
    control_parameters:
      kp: 0.5
      ki: 0.0
      kd: 0.01
      output_averaging_samples: 1    
      derivative_averaging_samples: 1
    deadband_parameters:
      threshold_high: 0.1°C  
      threshold_low: -0.1°C

spi:
  miso_pin: GPIO5
  clk_pin: GPIO19

sensor:
  - platform: max6675
    id: main_temp
    name: "Temperature"
    cs_pin: GPIO2
    update_interval: 1s

output:
  - platform: passthru_float_output
    id: heat_output_redirect
  
  - platform: ac_dimmer
    id: ac_fan
    gate_pin: GPIO4
    method: LEADING
    zero_cross_pin:
      number: GPIO6
      allow_other_uses: true
      mode:
        input: true
      inverted: yes

  - platform: ac_dimmer
    id: ac_heater
    gate_pin: GPIO3
    max_power: 0.5
    zero_cross_pin:
      number: GPIO6
      allow_other_uses: true
      mode:
        input: true
      inverted: yes
dusk path
#

I haven't tried to hack it, but the Cosori Pro II has an ESP32 inside, using the VeSync platform

#

But 8266 means it can't be locked.

#

They must have more than one model or an extra chip, because the one I have has bluetooth for sure