Ligth_sleep con magnetic reed

Hola,
Estoy usando un Magnetic Reed en el proyecto, y necesito que cuando está cerrado, entre en modo bajo consumo y cuando está abierto se despierte. El código que tengo es el siguiente. pero no funciona correctamente. ¿Alguien sabe por que, o como hacerlo?.

#include <esp_sleep.h>
#define interruptPin GPIO_NUM_5

void setup() {
  pinMode(interruptPin, INPUT_PULLUP);   
  esp_sleep_enable_ext0_wakeup(interruptPin, 1);

}

void loop() {
  int estadoPuerta = digitalRead(interruptPin);

  if (estadoPuerta == HIGH) {
        Serial.println("abierto");
        
        
       } else if(estadoPuerta == LOW ) {
        Serial.println("cerrado");        
         esp_light_sleep_start();
         
         }
        

}

Prueba esto y nos dices

#include <esp_sleep.h>
#define interruptPin GPIO_NUM_5

void setup() {
  Serial.begin(115200);
  pinMode(interruptPin, INPUT_PULLUP);   
  esp_sleep_enable_ext0_wakeup(interruptPin, 1);  // Configura el pin para despertar del sueño profundo
}

void loop() {
  int estadoPuerta = digitalRead(interruptPin);

  if (estadoPuerta == HIGH) {
    Serial.println("abierto");
  } else if (estadoPuerta == LOW) {
    Serial.println("cerrado");        
    esp_deep_sleep_start();  // Cambia a sueño profundo en lugar de sueño ligero
  }
}

En

if (estadoPuerta == HIGH) {
  Serial.println("abierto");
} else if (estadoPuerta == LOW) {
  Serial.println("cerrado");        
  esp_light_sleep_start(); 
}

el condicional

else if (estadoPuerta == LOW) {

es redundante, ya que estadoPuerta solo puede tener 2 estados, si no es HIGH necesariamente es LOW.
Lo correcto es

if (estadoPuerta == HIGH) {
  Serial.println("abierto");
} else {  // entonces estadoPuerta == LOW
  Serial.println("cerrado");        
  esp_light_sleep_start(); 
}

Agrego:

De la documentación de Espressif:

External Wakeup (ext0)

The RTC IO module contains the logic to trigger wakeup when one of RTC GPIOs is set to a predefined logic level.

El GPIO5 (GPIO_NUM_5) no pertenece al grupo de RTC GPIOs, por lo que no podría "despertar" al micro.

Referencia: GPIO & RTC GPIO

Hola, he cambiado la configuración del gpio y funciona, gracias