Умный домофон. Ошибка компиляции

Помогите загрузить скетч на плату esp32 devkit v1
не загружает, после компиляции выдаёт ошибку

C:\Users\Nelly\Downloads\ESP32_domofon_v2_2\ESP32_domofon_v2_2.ino: In function 'void setup()':
C:\Users\Nelly\Downloads\ESP32_domofon_v2_2\ESP32_domofon_v2_2.ino:13:21: error: invalid conversion from 'int' to 'const esp_task_wdt_config_t*' [-fpermissive]
   13 | #define WDT_TIMEOUT 60
      |                     ^~
      |                     |
      |                     int
C:\Users\Nelly\Downloads\ESP32_domofon_v2_2\ESP32_domofon_v2_2.ino:13:21: note: in definition of macro 'WDT_TIMEOUT'
   13 | #define WDT_TIMEOUT 60
      |                     ^~
C:\Users\Nelly\Downloads\ESP32_domofon_v2_2\ESP32_domofon_v2_2.ino:156:20: error: too many arguments to function 'esp_err_t esp_task_wdt_init(const esp_task_wdt_config_t*)'
  156 |   esp_task_wdt_init(WDT_TIMEOUT, true);  //enable panic so ESP32 restarts
      |   ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Nelly\Downloads\ESP32_domofon_v2_2\ESP32_domofon_v2_2.ino:4:
C:\Users\Nelly\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32/include/esp_system/include/esp_task_wdt.h:47:11: note: declared here
   47 | esp_err_t esp_task_wdt_init(const esp_task_wdt_config_t *config);
      |           ^~~~~~~~~~~~~~~~~

exit status 1

Compilation error: invalid conversion from 'int' to 'const esp_task_wdt_config_t*' [-fpermissive]

сам скетч:

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <Preferences.h>
#include <esp_task_wdt.h>
#include "DFRobotDFPlayerMini.h"
//==========================================================================//
//+++++++++++++++++++ Initialize Telegram BOT AND WIFI +++++++++++++++++++++//
//==========================================================================//
#define FIRMWARE "28.05.2024"
#define DEBUG 0
#define TEST_CHECK_DELAY 30000
#define HEALTH_CHECK_DELAY 30000
#define WDT_TIMEOUT 60
//+++++++++++++++++++++++++++++++ WiFi ++++++++++++++++++++++++++++++++++++++//
#define USE_WIFI
#define WIFI_SSID "9999"  //"360WiFi"
#define WIFI_PASS "9999"  //"amkhalyawa"
//+++++++++++++++++++++++++ Настройка телеграм +++++++++++++++++++++++++++++//
#define USE_TELEGRAM                       //ракоментировать если используется телеграм
#define CHAT_ID "9999"                //Используйте @myidbot чтобы найти chat ID
#define BOTtoken "9999"  // Ваш Бот токен (возмите от  Botfather)
//Также вам нужно отправить "start" вашему боту для начала работы.
#define BOT_REQUEST_DELAY 15000
//++++++++++++++++++++++++++++++++ TCP +++++++++++++++++++++++++++++++++++++//
#define USE_TCP_SERVER  //ракоментировать если используется TCP
#define TCP_PORT 8888
#define TCP_TIMEOUT 5000
//==========================================================================//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//==========================================================================//
#define LED_PIN 2
#define RELAY_CONTROL_PIN 5
#define RELAY_PIN 13
#define DF_MINI_RX 16
#define DF_MINI_TX 17
#define DF_MINI_BUSY 27
#define PICK_UP_PIN 15      //1 - трубка положена,0 - трубка поднята
#define OPEN_DOOR_PIN 4     //1 - открыть дверь
#define CALL_DETECT_PIN 14  //детекция входящего звонка
#define DEBONCE_LEVEL 5000
#define SWITCHING_TIME 500
#define OPEN_DELAY_TIME 500
#define DF_MINI_WAIT_BUSY 1000
#define BLINK_LED_BUSY_DELAY 100
#define DEBUG_SPEED 500000
#define PREF_DEFAULT_RETURN 255
#define VOLUME 25
//============================ domofonBot states =============================//
#define NORMAL 0
#define OPEN_DOOR 1
#define OPEN_DOOR2 2
#define INTERCOM_OFF 3


#ifdef USE_TELEGRAM
#include <UniversalTelegramBot.h>
WiFiClientSecure secured_client;
UniversalTelegramBot bot(BOTtoken, secured_client);
#endif
WiFiServer server(TCP_PORT);
Preferences preferences;
const char* pref_key = "domfonBotSetup";
DFRobotDFPlayerMini myDFPlayer;

uint32_t debonce = 0;
uint32_t playerCounter = 0;
bool ledState = LOW;
unsigned short internalState = NORMAL;
unsigned long lastTimeCheckMessages = 0;
unsigned long currentTime = millis();
unsigned long lastTimeCheckHealth = 0;
unsigned long previousTime = 0;
unsigned long lastTimeTest = 0;

void blink_error(uint8_t count) {
  for (uint8_t i = 0; i < count; i++) {
    digitalWrite(LED_PIN, LOW);
    delay(100);
    digitalWrite(LED_PIN, HIGH);
    delay(100);
  }
}
//==========================================================================//
//+++++++++++++++++++++++++++++++++ tests +++++++++++++++++++++++++++++++++++//
//==========================================================================//
void relay_test(void) {
  while (1) {
    digitalWrite(RELAY_PIN, HIGH);
    digitalWrite(LED_PIN, HIGH);
    delay(500);
    digitalWrite(RELAY_PIN, LOW);
    digitalWrite(LED_PIN, LOW);
    delay(500);
  }
}
void sound_test() {
  myDFPlayer.volume(VOLUME);
  myDFPlayer.play(1);        //Play the first mp3
  delay(DF_MINI_WAIT_BUSY);  //wait until the busy pin status changes
  while (digitalRead(DF_MINI_BUSY) == LOW) {
    digitalWrite(LED_PIN, ledState = ledState ? LOW : HIGH);
    delay(BLINK_LED_BUSY_DELAY);
  }
}
//==========================================================================//
//++++++++++++++++++++++++++++++ debonce_read ++++++++++++++++++++++++++++++//
//==========================================================================//
boolean debonce_read(uint32_t pin, boolean check_level) {
  uint32_t pin_state_cnt = 0;
  uint32_t result;
  do {
    result = check_level ? digitalRead(pin) : !digitalRead(pin);
    if (result) pin_state_cnt++;
    if (pin_state_cnt > DEBONCE_LEVEL)
      return true;
  } while (result);
  return false;
}
//==========================================================================//
//+++++++++++++++++++++++++++++++++++ setup ++++++++++++++++++++++++++++++++//
//==========================================================================//
void setup() {

  internalState = OPEN_DOOR;  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  //========================================================================//
  Serial.begin(DEBUG_SPEED);
  Serial2.begin(9600, SERIAL_8N1, DF_MINI_RX, DF_MINI_TX);
  //============================ eeprom check setup =======================//
  preferences.begin("my_setup", false);
  unsigned short domofonBotState = preferences.getUShort(pref_key, PREF_DEFAULT_RETURN);
  if (domofonBotState != PREF_DEFAULT_RETURN)
    switch (domofonBotState) {
      case (NORMAL):
        internalState = NORMAL;  //0
        break;
      case (OPEN_DOOR):
        internalState = OPEN_DOOR;  //1
        break;
      case (OPEN_DOOR2):
        internalState = OPEN_DOOR2;  //2
        break;
      case (INTERCOM_OFF):
        internalState = INTERCOM_OFF;  //3
        break;
    }
  else Serial.println("Error reading settings set to default!");
  //================================= gpio setup ===========================//
  pinMode(LED_PIN, OUTPUT);
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(PICK_UP_PIN, OUTPUT);
  pinMode(OPEN_DOOR_PIN, OUTPUT);
  pinMode(CALL_DETECT_PIN, INPUT_PULLUP);
  pinMode(RELAY_CONTROL_PIN, INPUT_PULLUP);
  pinMode(DF_MINI_BUSY, INPUT);
  //============================== wachdog setup ===========================//
  esp_task_wdt_init(WDT_TIMEOUT, true);  //enable panic so ESP32 restarts
  esp_task_wdt_add(NULL);                //add current thread to WDT watch
  //===========================  connect to Wifi network ===================//
#ifdef USE_WIFI
  Serial.print("Connecting Wifi: ");
  Serial.println(WIFI_SSID);
  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(1000);
    blink_error(2);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
#endif
  //========================= Initializing DFPlayer =========================//
  Serial.println("Initializing DFPlayer");
  while (!myDFPlayer.begin(Serial2)) {
    delay(1000);
    Serial.println("DFPlayer.begin ERROR!!!");
    blink_error(3);
  }
  // else {
  Serial.println("DFPlayer OK");
  myDFPlayer.volume(VOLUME);  //Set volume value. From 0 to 30
                              // }
#ifdef USE_TELEGRAM
  secured_client.setCACert(TELEGRAM_CERTIFICATE_ROOT);  // Add root certificate for api.telegram.org
  //========================= send telegram message =========================//
  String start_msg = "DomofonBot restarted - выберите режим работы !!!\n";
  start_msg += "/normal - обычный режим работы\n";
  start_msg += "/open_door - отрыть двери и играть mp3\n";
  start_msg += "/open_door2 - играть mp3,затем открыть\n";
  start_msg += "/intercom_off - режим тишины\n";
  //bot.sendMessage(CHAT_ID, start_msg, "");
  String keyboardJson = "[[\"/normal\", \"/open_door\"],[\"/open_door2\",\"/intercom_off\"]]";
  bot.sendMessageWithReplyKeyboard(CHAT_ID, start_msg, "", keyboardJson, true);
#endif

#ifdef USE_TCP_SERVER
  server.begin();
#endif
}
//==========================================================================//
//++++++++++++++++++++++++++++++++ intercom_up +++++++++++++++++++++++++++++//
//==========================================================================//
void intercom_up(void) {
  if (DEBUG) Serial.println("intercom_up()");
  //internalState = INTERCOM_UP;
  delay(SWITCHING_TIME);
  digitalWrite(RELAY_PIN, HIGH);   //disconnect internal intercom from the line
  digitalWrite(PICK_UP_PIN, LOW);  //intercom picked up
}
//==========================================================================//
//++++++++++++++++++++++++++++++++ open_door +++++++++++++++++++++++++++++++//
//==========================================================================//
void open_door(void) {
  if (DEBUG) Serial.println("open_door()");
  internalState = OPEN_DOOR;
  digitalWrite(OPEN_DOOR_PIN, HIGH);
  delay(OPEN_DELAY_TIME);
  digitalWrite(OPEN_DOOR_PIN, LOW);
  delay(SWITCHING_TIME);
  digitalWrite(OPEN_DOOR_PIN, HIGH);
  delay(OPEN_DELAY_TIME);
  digitalWrite(OPEN_DOOR_PIN, LOW);
  delay(SWITCHING_TIME);
}
//==========================================================================//
//++++++++++++++++++++++++++++++ intercom_down +++++++++++++++++++++++++++++//
//==========================================================================//
void intercom_down(void) {
  if (DEBUG) Serial.println("intercom_down()");
  digitalWrite(PICK_UP_PIN, HIGH);  //intercom down
  delay(SWITCHING_TIME);
  digitalWrite(RELAY_PIN, LOW);    //connect internal intercom to the line
  digitalWrite(PICK_UP_PIN, LOW);  //intercom UP
}
//==========================================================================//
//++++++++++++++++++++++++++++++ parse_commands ++++++++++++++++++++++++++++//
//==========================================================================//
boolean parse_commands(String command) {
  if (command == "/normal") {
    internalState = NORMAL;
#ifdef USE_TELEGRAM
    bot.sendMessage(CHAT_ID, "DomofonBot - режим по умолчанию!", "");
#endif
    return true;
  } else if (command == "/intercom_off") {
    internalState = INTERCOM_OFF;
#ifdef USE_TELEGRAM
    bot.sendMessage(CHAT_ID, "DomofonBot - режим тишины!", "");
#endif
    return true;
  } else if (command == "/open_door") {
    internalState = OPEN_DOOR;
#ifdef USE_TELEGRAM
    bot.sendMessage(CHAT_ID, "DomofonBot - режим открытия двери!!", "");
#endif
    return true;
  } else if (command == "/open_door2") {
    internalState = OPEN_DOOR2;
#ifdef USE_TELEGRAM
    bot.sendMessage(CHAT_ID, "DomofonBot - режим открытия двери2!!", "");
#endif
    return true;
  }
  return false;
}
//==========================================================================//
//++++++++++++++++++++++++++ handleNewTelegrammMessages ++++++++++++++++++++//
//==========================================================================//
#ifdef USE_TELEGRAM
void handleNewMessages(int numNewMessages) {
  if (DEBUG) Serial.println("handleNewMessages");
  if (DEBUG) Serial.println(String(numNewMessages));
  for (int i = 0; i < numNewMessages; i++) {
    // Chat id of the requester
    String chat_id = String(bot.messages[i].chat_id);
    if (chat_id != CHAT_ID) {
      bot.sendMessage(chat_id, "Unauthorized user", "");
      continue;
    }

    // Print the received message
    String message = bot.messages[i].text;
    if (DEBUG) Serial.println(message);

    String from_name = bot.messages[i].from_name;
    unsigned short latsStateSetup = internalState;
    parse_commands(message);
    if (latsStateSetup != internalState) {
      preferences.begin("my_setup", false);
      unsigned short domofonBotState = preferences.putUShort(pref_key, internalState);
      preferences.end();
    }
  }
}
#endif
//==========================================================================//
//++++++++++++++++++++++++++++++ main loop +++++++++++++++++++++++++++++++++//
//==========================================================================//
void loop() {
  if (millis() > lastTimeCheckHealth + HEALTH_CHECK_DELAY) {
    esp_task_wdt_reset();
    if (WiFi.status() != WL_CONNECTED) ESP.restart();
    lastTimeCheckHealth = millis();
  }
  if (millis() > lastTimeTest + TEST_CHECK_DELAY) {
    //sound_test();
  }
#ifdef USE_TCP_SERVER
  WiFiClient client = server.available();  // Listen for incoming clients
  if (client) {                            // If a new client connects,
    currentTime = millis();
    previousTime = currentTime;
    if (DEBUG) Serial.println("New Client.");
    while (client.connected() && currentTime - previousTime <= TCP_TIMEOUT) {  // loop while the client's connected  //
      currentTime = millis();
      if (client.available()) {  // if there's bytes to read from the client,
        String comand = client.readStringUntil('\r');
        if (DEBUG) Serial.println(comand);
        if (comand == "/status") {
          if (DEBUG) Serial.println("send internalState");
          switch (internalState) {
            case (0):
              client.println("normal");
              break;
            case (1):
              client.println("open_door");
              break;
            case (2):
              client.println("open_door2");
              break;
            case (3):
              client.println("intercom_off");
              break;
          }
        } else if (parse_commands(comand) == true) {
          if (DEBUG) Serial.println("domfomBot mode has changed");
          client.println(comand);
          break;
        }
      }
    }
    if (DEBUG) Serial.println("Closing connection.");
    client.stop();
    if (DEBUG) Serial.println("Client disconnected.");
    Serial.println("");
  }
#endif

  if (debonce_read(CALL_DETECT_PIN, LOW) == true) {
    if (DEBUG) Serial.println("DomofonBot call detected!");
    if (debonce_read(RELAY_CONTROL_PIN, LOW) == true) {
      intercom_up();
      open_door();
      myDFPlayer.volume(VOLUME);
      myDFPlayer.play(1);  //Play the first mp3
    }

#ifdef USE_TELEGRAM
    bot.sendMessage(CHAT_ID, "DomofonBot call detected!", "");
#endif
    switch (internalState) {
      case OPEN_DOOR:  //open doors before starting mp3
        intercom_up();
        open_door();
        myDFPlayer.volume(VOLUME);
        myDFPlayer.play(1);  //Play the first mp3
#ifdef USE_TELEGRAM
        bot.sendMessage(CHAT_ID, "Domofon door opened!", "");
#endif
        delay(DF_MINI_WAIT_BUSY);  //wait until the busy pin status changes
        while (digitalRead(DF_MINI_BUSY) == LOW) {
          digitalWrite(LED_PIN, ledState = ledState ? LOW : HIGH);
          delay(BLINK_LED_BUSY_DELAY);
        }
        intercom_down();
        internalState = OPEN_DOOR;
        break;
      case OPEN_DOOR2:  //open doors at the end of mp3
        intercom_up();
        myDFPlayer.volume(VOLUME);
        myDFPlayer.play(2);  //Play the first mp3
#ifdef USE_TELEGRAM
        bot.sendMessage(CHAT_ID, "Domofon door opened!", "");
#endif
        delay(DF_MINI_WAIT_BUSY);  //wait until the busy pin status changes
        while (digitalRead(DF_MINI_BUSY) == LOW) {
          digitalWrite(LED_PIN, ledState = ledState ? LOW : HIGH);
          delay(BLINK_LED_BUSY_DELAY);
        }
        open_door();
        intercom_down();
        internalState = OPEN_DOOR2;
        break;
      case INTERCOM_OFF:
        intercom_up();
        myDFPlayer.volume(VOLUME);
        myDFPlayer.play(3);        //Play the first mp3
        delay(DF_MINI_WAIT_BUSY);  //wait until the busy pin status changes
        while (digitalRead(DF_MINI_BUSY) == LOW) {
          digitalWrite(LED_PIN, ledState = ledState ? LOW : HIGH);
          delay(BLINK_LED_BUSY_DELAY);
        }
        intercom_down();
        internalState = INTERCOM_OFF;
        break;
    }
  }
#ifdef USE_TELEGRAM
  if (millis() > lastTimeCheckMessages + BOT_REQUEST_DELAY) {
    digitalWrite(LED_PIN, HIGH);
    if ((WiFi.status() != WL_CONNECTED)) ESP.restart();
    if (DEBUG) Serial.print("start check new messages ");
    if (DEBUG) Serial.println(millis());
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    while (numNewMessages) {
      if (DEBUG) Serial.println("got response");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }
    lastTimeCheckMessages = millis();
    if (DEBUG) Serial.print("stop check new messages ");
    if (DEBUG) Serial.println(millis());
    digitalWrite(LED_PIN, LOW);
  }
#endif
}

Не нужно создавать кучу тем с одним вопросом. У вас версия аддона esp32 явно не та, что использовалась при написании этого скетча. Внимание, вопрос: какая версия аддона esp32 сейчас используется у вас в Arduino IDE?

Извините просто пользуюсь этим форумом впервые, не нашел как удалить тему старую, я там напортачил сильно.

версия esp32 - 3.0.1 стоит сейчас.

Откатитесь на какую-нибудь из версий 2.хх, в новой версии, скорее всего, изменили типы аргументов

откат на версию esp32 - 2.0.17 помог. Все удачно загрузилось на плату.
Спасибо Вам большое!