ESPHome MAX6675 config info

Hi.
I have an ESP32 Wroom with MAX6675 Thermocouple.

This is my config:


  - platform: max6675
    name: "Temperatura Stufa"
    cs_pin: GPIO15
    update_interval: 10s

spi:
  miso_pin: GPIO23
  clk_pin: GPIO21

If I leave the CS wire connected in the GPIO15, the sensor always signals 0 degrees.

If I disconnect the CS wire from the ESP32 board, the sensor oscillates between 2, 64 and 66 degrees

What did i do wrong? Thanks

Not sure if it helps, but this guide usually helps me finding suitable pins: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

I have a thermocouple on an ESP32 working using the following pins and aligned with the VSPI bus:

spi:
  clk_pin: GPIO18
  miso_pin: GPIO19

sensor:
  - platform: max31855
    cs_pin: GPIO5

I have tryed, but no results.

This is my ESP config:


esphome:
  name: esp32_01
  platform: ESP32
  board: esp-wrover-kit
  on_loop:
    then:
      - lambda: delay(5);

wifi:
  ssid: "name"
  password: "password "
  power_save_mode: none
  fast_connect: true
  manual_ip:
    static_ip: 192.168.1.30
    gateway: 192.168.1.1
    subnet: 255.255.255.0
  
logger:

api:

ota:

spi:
  miso_pin: GPIO19
  clk_pin: GPIO18

sensor:

  - platform: max6675
    name: "Temperatura Stufa"
    cs_pin: GPIO5
    update_interval: 10s
    
  - platform: wifi_signal
    name: "ESP32_01_WiFi"
    update_interval: 60s
    
  - platform: uptime
    name: "Uptime"
    id: uptime_s
    update_interval: 60s
    internal: true

text_sensor:
  - platform: template
    name: "ESP32_01_Uptime"
    lambda: |-
      uint32_t dur = id(uptime_s).state;
      int dys = 0;
      int hrs = 0;
      int mnts = 0;
      if (dur > 86399) {
        dys = trunc(dur / 86400);
        dur = dur - (dys * 86400);
      }
      if (dur > 3599) {
        hrs = trunc(dur / 3600);
        dur = dur - (hrs * 3600);
      }
      if (dur > 59) {
        mnts = trunc(dur / 60);
        dur = dur - (mnts * 60);
      }
      char buffer[17];
      sprintf(buffer, "%ud %02uh %02um", dys, hrs, mnts);
      return {buffer};
    icon: mdi:clock-start
    update_interval: 60s

binary_sensor:
  - platform: gpio
    pin: 
     number: GPIO15
     mode: INPUT_PULLUP
    id: sensore_cancello
    name: "Sensore Cancello"
    device_class: opening
    internal: false