Réveillez-vous Esptop 10 de Sleep Deep en utilisant des minuteries-microphython

Réveillez-vous Esptop 10 de Sleep Deep en utilisant des minuteries-microphython
ESP32 est une plate-forme IoT basée sur un microcontrôleur. La consommation d'énergie est l'une des principales préoccupations tout en travaillant avec une carte de microcontrôleur. Tant que nous alimentons ESP32 avec une alimentation DC, nous ne nous soucions pas davantage de la consommation d'énergie, mais avec les projets de sauvegarde à long terme, nous avons besoin pour optimiser la puissance globale.

Ici, nous discuterons de la façon dont nous pouvons définir ESP32 en mode de sommeil profond à l'heure fixe pour économiser l'énergie. Avant d'apprendre à nous réveiller ESP32 du sommeil profond à l'aide de la minuterie, comprenons le concept de sommeil profond:

Qu'est-ce que le sommeil profond dans ESP32

ESP32 peut être un appareil avide de puissance en raison de son module WiFi et Bluetooth intégré. ESP32 dessine généralement 75mA pour les opérations nominales alors qu'elle peut aller à 240mA Lors de la transmission de données sur le WiFi. Cependant, nous pouvons optimiser cela en permettant le mode de sommeil profond.

En mode sommeil profond, les périphériques numériques ESP32, les RAM inutilisés et les processeurs sont désactivés. Seule la liste suivante des pièces reste opérationnelle:

  • Contrôleur RTC
  • Coprocesseur ULP
  • RTC Mémoire rapide et lente
  • Périphériques RTC

Lorsque le mode de sommeil profond est activé, le CPU principal est arrêté; Cependant, le coprocesseur ULP (ultalowpower) peut toujours lire les données des capteurs et réveiller le CPU chaque fois que vous avez besoin.

Cette application d'ESP32 est utile où nous voulons générer une sortie à un moment précis ou lorsqu'une interruption ou un événement externe se produit. Cela économise la puissance ESP32 car son processeur reste éteint pour le reste du temps et s'allume que lorsqu'il est appelé.

Avec le CPU ESP32, la mémoire principale est également flashée ou effacée, donc tout ce qui est stocké à l'intérieur de cette mémoire ne sera plus disponible. Seule la mémoire RTC est maintenue là. Par conséquent, ESP32 enregistre les données WiFi et Bluetooth à l'intérieur de la mémoire RTC avant de passer en mode de sommeil profond.

Une fois le mode de sommeil profond réinitialisé ou supprimé, la puce ESP32 commence l'exécution du programme depuis le tout début.

Depuis le sommeil profond, nous pouvons nous réveiller ESP32 en utilisant différentes méthodes.

Réveiller les sources dans ESP32

Plusieurs sources sont disponibles pour réveiller ESP32 à partir du sommeil profond:

  • Minuteur
  • Tacs de touche
  • Réveil externe ext0
  • Réveil externe ext1

Dans ce guide, nous couvrirons Timer Wake Up Source pour ESP32.

Comment utiliser la minuterie pour se réveiller ESP32 de Sleep profondément

ESP32 est livré avec un contrôleur RTC qui a un module de minuterie intégré qui peut se réveiller ESP32 après un temps prédéfini. Cette fonction a de vastes applications où nous avons besoin de calendrier ou de devoir exécuter des instructions à des moments précis tout en maintenant une consommation d'énergie optimale.

Pour mettre ESP32 en mode de sommeil profond en utilisant le code micropython sommeil profond() fonction du module de machine sera utilisé. Voici la syntaxe de la fonction de sommeil profond dans Micropython:

machine.DeepSleep (sleep_time_ms)

Cette fonction prend 1 argument qui est une période prédéfinie dans millisecondes.

Pour comprendre l'utilisation de la minuterie ESP32 pour le réveil, nous prendrons un exemple que les clignotements ont mené après que chaque temps passe et reviendra une fois la tâche terminée.

Exemple de code

Ouvrez n'importe quel éditeur Micropython et téléchargez le code donné ci-dessous dans la carte ESP32. Ici, nous utiliserons Thonny IDE pour télécharger des croquis de micropython.

# Code Source Linuxhint.com
De la machine importe profonde
à partir de la broche d'importation de machine
à partir de temps pour sommeil
LED = broche (4, broche.Out) #pin 4 défini pour la sortie LED
dirigé.Valeur (1) #Turn sur LED pendant 1 sec
sommeil (1)
dirigé.Valeur (0) # Turn Off LED pendant 1 sec
sommeil (1)
imprimer («va dormir maintenant»)
DeepSleep (5000) #Sleep pendant 5 secondes

Code commencé par importer les bibliothèques nécessaires comme nous avons importé la bibliothèque DeepSleep.

Après cela, un nouvel objet pour ESP32 PIN 4 est créé. Cette broche affichera la sortie à chaque fois que ESP32 se réveille.

LED = broche (4, broche.DEHORS)

Les commandes ci-dessous clignotent avec un retard de 1 seconde.

dirigé.valeur (1)
sommeil (1)
dirigé.valeur (0)
sommeil (1)

Ici, à des fins de démonstration, nous clignons en clignotant la LED. Cependant, tout autre appareil peut également être contrôlé.

Avant d'aller dormir, nous avons imprimé un message que ESP32 passe en mode sommeil.

imprimer («va dormir maintenant»)

Note: Nous pouvons également ajouter un délai de 5 secondes ou plus ici avant que ESP32 passe en mode de sommeil. Cela nous aide lors de la construction d'un projet et de l'écriture d'un nouveau script. Lors du téléchargement d'un nouveau code, la carte doit être éveillée et non en mode veille. Si nous n'ajoutons pas le retard, il nous sera difficile d'attraper ESP32 en mode éveillé et télécharger un nouveau script.

Après avoir écrit le nouveau script et une fois le code final prêt, nous pouvons supprimer ce retard dans la version finale du script.

Enfin, la carte ESP32 est placée en profondeur pendant 5 secondes (5000 ms).

machine.DeepSleep (5000)

Une fois que le temps de 5 secondes passe, l'ESP32 se réveille et redémarre le code similaire au En bouton.

Sortir

La sortie suivante peut être observée sur la borne de la coque de Thonny IDE. Ici, nous pouvons voir qu'après 5 secondes ESP32 se réveille à partir du sommeil profond et clignote la LED à la broche GPIO 4.

La LED à GPIO 4 tournera SUR pendant 1 seconde.

Après 1 seconde, la LED tournera DÉSACTIVÉ.

Maintenant, la carte ESP32 passera à nouveau en mode sommeil pendant 5 secondes et après cela, tout le processus se répète. Alors c'est tout que nous avons réussi à contrôler le mode ESP32 du sommeil profond en utilisant le code de la minuterie.

Conclusion

Ici, dans ce didacticiel, nous avons configuré ESP32 pour nous réveiller du sommeil profond à l'aide d'un programme de minuterie écrit dans Micropython. Nous avons téléchargé le code en utilisant le Thonny ide. Nous avons simplement imprimé un message une fois que l'ESP32 se réveille et clignote une LED; Cependant, en utilisant cet article, on peut exécuter n'importe quelle tâche une fois que l'ESP32 se réveille depuis un sommeil profond.