🛠 Automatisation simple avec le M5Stamp Timer Power 2
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
- Carte M5Stamp Timer Power 2 (SKU S021)
- Câbles de prototypage (Dupont)
- Une alimentation USB 5V ou une batterie LiPo 3.7V
- Un multimètre (optionnel, pour vérifier les courants)
- Un ordinateur avec le logiciel Arduino IDE installé
- Bibliothèque M5Stack Timer Power Library (à installer via le gestionnaire de bibliothèques)
Étapes
- 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 menuOutils->Type de carte.
- 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 sortie3V3_DCDC_OUTest disponible pour alimenter un petit capteur ou une LED.
- É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();
}
- 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
- Premier branchement et mise en route du M5Stamp Timer Power 2
- Contrôler les GPIO avec le M5Stamp Timer Power 2
- M5Stamp Timer Power 2 : Premier branchement et mise en route
- Configurer les E/S du M5Stamp Timer Power 2
- Automatisation Domotique avec M5Stamp Timer Power 2
- M5Stamp Timer Power 2 : Branchement et Mise en Route