- Différentes méthodes pour minimiser la consommation d'énergie
- Composants requis
- Types de modes de veille dans ESP8266
- Programmation du mode veille profonde ESP8266
- Test de DeepSleep dans l'ESP8266
Alors que la révolution IoT est en plein essor chaque jour, le nombre d'appareils connectés augmente très rapidement. À l'avenir, la plupart des appareils seront connectés les uns aux autres et communiqueront en temps réel. L'un des problèmes rencontrés par ces appareils est la consommation d'énergie. Ce facteur de consommation d'énergie est l'un des facteurs critiques et décisifs pour tout appareil IoT et projets IoT.
Comme nous savons qu'ESP8266 est l'un des modules les plus populaires pour créer n'importe quel projet IoT, nous allons donc dans cet article découvrir comment économiser l'énergie tout en utilisant ESP8266 dans n'importe quelle application IoT. Ici, nous téléchargeons les données du capteur de température LM35 sur le cloud ThingSpeak dans un intervalle de 15 secondes et pendant ces 15 secondes, l' ESP8266 reste en mode DeepSleep pour économiser l'énergie.
Différentes méthodes pour minimiser la consommation d'énergie
Il existe plusieurs façons d'optimiser la consommation d'énergie des appareils embarqués et IoT. L'optimisation peut être effectuée sur du matériel et des logiciels. Parfois, nous ne pouvons pas optimiser les composants matériels pour réduire la consommation d'énergie, mais nous pouvons sûrement le faire du côté logiciel en modifiant et en optimisant les instructions et les fonctions du code. Non seulement cela, les développeurs peuvent également modifier la fréquence d'horloge pour réduire la consommation d'énergie du microcontrôleur.Nous pouvons écrire un firmware pour mettre le matériel en veille lorsqu'il n'y a pas d'échange de données et effectuer la tâche définie dans un intervalle particulier. En mode veille, le matériel connecté consomme très moins d'énergie et, par conséquent, la batterie peut durer longtemps. Vous pouvez également lire Minimiser la consommation d'énergie dans les microcontrôleurs, si vous souhaitez en savoir plus sur les techniques de consommation d'énergie.
Les modules ESP8266 sont les modules Wi-Fi les plus largement utilisés.Ils sont livrés avec de nombreuses fonctionnalités de petite taille ayant différents modes, y compris le mode veille et ces modes sont accessibles à l'aide de certaines modifications matérielles et logicielles. Pour en savoir plus sur ESP8266, vous pouvez consulter nos projets basés sur l'IoT à l'aide du module Wi-Fi ESP826, certains d'entre eux sont répertoriés ci-dessous:
- Interfaçage de l'ESP8266 NodeMCU avec le microcontrôleur Atmega16 pour envoyer un e-mail
- Envoi de données de capteur de température et d'humidité à la base de données en temps réel Firebase à l'aide de NodeMCU ESP8266
- LED contrôlée par l'IoT à l'aide de la console Google Firebase et de l'ESP8266 NodeMCU
Ici, nous allons expliquer les différents modes de veille disponibles dans ESP8266 et les démontrer en envoyant des données de température au serveur Thingspeak à intervalles réguliers en utilisant le mode de veille profonde.
Composants requis
- Module Wi-Fi ESP8266
- Capteur de température LM35
- Fils de cavalier
Types de modes de veille dans ESP8266
Le module Esp8266 fonctionne dans les modes suivants:
- Mode actif: dans ce mode, toute la puce est allumée et la puce peut recevoir, transmettre les données. De toute évidence, c'est le mode le plus consommateur d'énergie.
- Mode de veille du modem: dans ce mode, le processeur est opérationnel et les radios Wi-Fi sont désactivées. Ce mode peut être utilisé dans les applications qui nécessitent le fonctionnement de la CPU, comme dans PWM. Il permet au circuit du modem Wi-Fi de s'éteindre lorsqu'il est connecté au point d'accès Wi-Fi (point d'accès) sans transmission de données pour optimiser la consommation d'énergie.
- Mode veille légère: dans ce mode, le processeur et tous les périphériques sont mis en pause. Tout réveil tel que des interruptions externes réveillera la puce. Sans transmission de données, le circuit du modem Wi-Fi peut être désactivé et le processeur suspendu pour économiser la consommation d'énergie.
- Mode veille profonde: dans ce mode, seul le RTC est fonctionnel et tous les autres composants de la puce sont mis hors tension. Ce mode est utile lorsque les données sont transmises après de longs intervalles de temps.
Connectez le capteur de température LM35 à la broche A0 de NodeMCU.
Lorsque le module ESP a HIGH sur la broche RST, il est en état de fonctionnement. Dès qu'il reçoit le signal LOW sur la broche RST, l'ESP redémarre.
Réglez la minuterie en utilisant le mode de veille profonde, une fois la minuterie terminée, la broche D0 envoie le signal LOW à la broche RST et le module se réveillera en le redémarrant.
Maintenant, le matériel est prêt et bien configuré. Les relevés de température seront envoyés sur le serveur Thingspeak. Pour cela, créez un compte sur thingspeak.com et créez une chaîne en suivant les étapes ci-dessous.
Maintenant, copiez la clé d'API d'écriture. Qui sera utilisé dans le code ESP.
Programmation du mode veille profonde ESP8266
L'IDE Arduino facilement disponible sera utilisé pour programmer le module ESP8266. Assurez-vous que tous les fichiers de la carte ESP8266 sont installés.
Commencez par inclure toutes les bibliothèques importantes requises.
#comprendre
Une fois que toutes les bibliothèques sont incluses pour accéder aux fonctions, attribuez la clé d'écriture API, configurez votre nom et votre mot de passe Wi-Fi. Ensuite, déclarez toutes les variables pour une utilisation ultérieure où les données doivent être stockées.
String apiWritekey = "*************"; // remplacez par votre clé THINGSPEAK WRITEAPI ici char ssid = "******"; // votre nom SSID wifi char password = "******"; // mot de passe wifi
Maintenant, créez une fonction pour connecter le module au réseau Wi-Fi en utilisant la fonction wifi.begin (), puis vérifiez en continu jusqu'à ce que le module ne soit pas connecté au Wi-Fi en utilisant la boucle while.
void connect1 () { WiFi.disconnect (); retard (10); WiFi.begin (ssid, mot de passe); while (WiFi.status ()! = WL_CONNECTED) {
Créez une autre fonction pour envoyer les données au serveur Thingspeak. Ici, une chaîne sera envoyée qui contient la clé d'écriture de l'API, le numéro de champ et les données à envoyer. Envoyez ensuite cette chaîne en utilisant la fonction client.print ().
void data () { if (client.connect (serveur, 80)) { String tsData = apiWritekey; tsData + = "& champ1 ="; tsData + = Chaîne (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / mise à jour HTTP / 1.1 \ n"); client.print ("Hôte: api.thingspeak.com \ n");
Appelez la fonction connect1 qui appellera la fonction de connexion Wi-Fi, puis prenez les lectures de la température et convertissez-la en Celsius.
void setup () { Serial.begin (115200); Serial.println ("l'appareil est en mode réveil"); connect1 (); valeur int = analogRead (A0); float volts = (valeur / 1024,0) * 5,0; tempC = volts * 100,0;
Maintenant, appelez la fonction data () pour télécharger les données sur le cloud Thingspeak. Enfin, la fonction importante à appeler est ESP.deepSleep (); cela mettra le module en veille pendant l'intervalle de temps défini qui est en microsecondes.
Les données(); Serial.println ("sommeil profond pendant 15 secondes"); ESP.deepSleep (15e6);
La fonction de boucle restera vide car toute la tâche doit être exécutée une fois, puis réinitialiser le module après l'intervalle de temps défini.
La vidéo de travail et le code complet sont donnés à la fin de ce tutoriel. Téléchargez le code dans le module ESP8266. Retirez le fil connecté RST et D0 avant de télécharger le programme, sinon cela donnera une erreur.
Test de DeepSleep dans l'ESP8266
Après avoir téléchargé le programme, vous verrez que les lectures de température sont téléchargées sur le cloud ThingSpeak toutes les 15 secondes, puis le module passe en mode de veille profonde.
Ceci termine le didacticiel sur l'utilisation de Deep Sleep dans le module ESP8266. Le sommeil profond est une caractéristique très importante et il a été inclus dans la plupart des appareils. Vous pouvez consulter ce didacticiel et appliquer cette méthode à différents projets. En cas de doute ou de suggestion, veuillez écrire et commenter ci-dessous. Vous pouvez également accéder à notre forum.