gpio-button-interrupt.ino
Ejemplo de gestión de energía usando interrupciones GPIO para despertar selectivo.
Usa el pin GPIO0. Requiere bibliotecas nativas de ESP-IDF. Compila seleccionando 'M5Stack-AtomS3' o 'ESP32-S3 Dev Module' en el IDE de Arduino. Pulsa el botón para despertar la placa.
gpio-button-interrupt.ino
#include <Arduino.h>
#define BTN_PIN 0 // Broche GPIO0 souvent utilisée pour le boot/bouton
#define DEEP_SLEEP_TIME 60000000 // 60 secondes en microsecondes
void setup() {
Serial.begin(115200);
pinMode(BTN_PIN, INPUT_PULLUP);
// Configure l'interruption pour réveiller de la deep sleep
esp_sleep_enable_ext0_wakeup(GPIO_NUM_0, 0);
Serial.println("Entering Deep Sleep...");
Serial.flush();
delay(100);
esp_deep_sleep_start();
}
void loop() {
Serial.println("Awake!");
// Action à réveil
delay(5000);
Serial.println("Going back to sleep...");
esp_deep_sleep_start();
}