const int BUTTON_PIN = 4;
volatile unsigned long lastInterruptTime = 0;
volatile unsigned long lastInterruptTime2 = 0;
bool buttonPressed = false;
int count = 0;

void IRAM_ATTR handleButtonInterrupt() {
  if (millis() - lastInterruptTime > 50) {
    buttonPressed = true;
    lastInterruptTime = millis();
  }
}

void setup() {
  Serial.begin(9600);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), handleButtonInterrupt, CHANGE);
}

void loop() {
  if (buttonPressed) {
    buttonPressed = false;
    count++;
    if (millis() - lastInterruptTime2 > 200) {
      count++;
      lastInterruptTime2 = millis();
    }
  }
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r