gpio-button-interrupt.ino

M5Stack PaperDIY Complete Kit · Fichier : gpio-button-interrupt.ino · Langage : C++ (Arduino) · Usage : Gérer un bouton physique via interruption pour réveiller l'ESP32-S3 de sommeil profond.

Exemple de gestion d'énergie utilisant les interruptions GPIO pour un réveil sélectif.

Utilise la broche GPIO0. Nécessite l'inclusion des bibliothèques ESP-IDF natives. Compilez avec la carte 'M5Stack-AtomS3' ou 'ESP32-S3 Dev Module' sélectionnée dans l'IDE Arduino. Appuyez sur le bouton pour réveiller la carte.

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();
}

← Retour à la fiche