🛠 Automatisation simple avec le M5Stamp Timer Power 2

M5Stamp Timer Power 2 (PY32L020) · debutant · Apprenez à configurer le réveil programmé pour contrôler un périphérique externe tout en minimisant la consommation d'énergie.

Objectifs

Ce tutoriel vous guide dans la création d'un système d'automatisation basique utilisant le M5Stamp Timer Power 2. L'objectif est de comprendre comment le microcontrôleur PY32L020 peut réveiller un circuit externe à intervalles réguliers, puis se mettre en veille profonde pour préserver la batterie. C'est une compétence clé pour les objets connectés autonomes.

Matériel nécessaire

Étapes

  1. Installation de l'environnement : Ouvrez l'Arduino IDE. Allez dans Outils -> Gestionnaire de bibliothèques, recherchez "M5Stack Timer Power" et installez la dernière version. Sélectionnez ensuite la carte "M5Stamp Timer Power 2" dans le menu Outils -> Type de carte.
  1. Câblage de base : Le module utilise des broches castellated. Pour ce test, connectez la broche EXT_5V_INOUT à une source d'alimentation stable si vous testez sur batterie, ou laissez-la en l'air si vous alimentez par USB sur les broches DC 5V. Assurez-vous que la broche de sortie 3V3_DCDC_OUT est disponible pour alimenter un petit capteur ou une LED.
  1. Écriture du code : Copiez le code ci-dessous. Il configure le réveil toutes les 10 secondes. Notez l'adresse I2C par défaut 0x6E.
#include <M5TimerPower.h>

// Adresse I2C par défaut du module
#define TIMER_ADDR 0x6E

void setup() {
  Serial.begin(115200);
  // Initialisation de la communication I2C
  Wire.begin();
  
  // Initialisation du module Timer Power
  M5TimerPower.begin(TIMER_ADDR);
  
  // Configuration du réveil programmé (ex: 10 secondes)
  // La fonction exacte dépend de la version de la lib, 
  // consultez l'exemple "WakeUpTest" fourni.
  M5TimerPower.setWakeUpInterval(10); 
}

void loop() {
  // Le code s'exécute ici au réveil
  Serial.println("Réveil ! Action en cours...");
  
  // Simuler une action (ex: allumer une LED sur un GPIO programmable)
  // digitalWrite(LED_PIN, HIGH);
  
  delay(1000); // Temps de travail
  
  // Retour en veille profonde
  Serial.println("Passage en veille...");
  M5TimerPower.deepSleep();
}
  1. Téléversement : Connectez la carte à l'ordinateur via USB. Téléversez le code. Ouvrez le Moniteur Série à 115200 bauds.

Vérification

Observez le Moniteur Série. Vous devriez voir "Réveil !" s'afficher, puis "Passage en veille...". Le module devrait ensuite consommer très peu (environ 6.72uA en mode arrêt). Si vous avez un multimètre en série avec la batterie, vous devriez voir le courant chuter drastiquement après la mise en veille, puis augmenter brièvement tous les 10 secondes. Vérifiez également que la sortie 3V3_DCDC_OUT reste stable si un périphérique y est connecté.

Pour aller plus loin

Explorez les fonctionnalités d'interruption externe (IRQ) pour réveiller le module par un bouton poussoir plutôt que par un timer. Vous pouvez aussi ajuster le courant de charge (650mA vs 180mA) selon votre batterie pour optimiser la durée de vie. Essayez de combiner plusieurs sorties (LDO et DCDC) pour alimenter différents capteurs avec des tensions distinctes.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels