Table des matières:

Moniteur de température Arduino basse consommation : 4 étapes
Moniteur de température Arduino basse consommation : 4 étapes

Vidéo: Moniteur de température Arduino basse consommation : 4 étapes

Vidéo: Moniteur de température Arduino basse consommation : 4 étapes
Vidéo: DeepSleep : gagnez en autonomie sur Arduino 2024, Juillet
Anonim
Image
Image
Obtenez les pièces
Obtenez les pièces

Dans ce Instructable, nous construisons encore un autre moniteur de température à l'aide d'un capteur de température DS18B20. Mais ce projet est différent. Il peut durer sur piles pendant près d'un an et demi ! Oui! En utilisant la bibliothèque Arduino basse consommation, nous pouvons avoir ce projet en cours d'exécution pendant une longue période. Continuez à lire pour en savoir plus!

Étape 1: Obtenez les pièces

Les pièces nécessaires pour construire ce projet sont les suivantes:

ATMEGA328P ▶

Nokia 5110 LCD ▶

DS18B20

Photorésistance ▶

Condensateurs ▶

Cristal 16MHz

Résistances ▶

Multimètre Mastech 8268 ▶

Le coût total du projet au moment où j'écris ce Instructable est inférieur à 10$

Étape 2: connectez toutes les pièces

Connectez toutes les pièces
Connectez toutes les pièces
Connectez toutes les pièces
Connectez toutes les pièces

Maintenant que vous avez toutes les pièces, connectons-les toutes ensemble selon le schéma de principe.

La clé de la faible consommation d'énergie de ce projet est l'utilisation d'une puce ATMEGA nue au lieu d'une carte Arduino. Étant donné que les cartes Arduino utilisent un régulateur de tension pour fonctionner avec de nombreux niveaux de tension différents, elles ont besoin de plus de puissance. Nous n'avons pas besoin de ce régulateur puisque nous alimentons notre projet avec des piles 3AA !

Dans ce projet, j'utilise l'écran LCD Nokia 5110 qui est un excellent écran et qui n'a besoin que de 0,2 mA de courant lorsque le rétroéclairage est éteint. Impressionnant!

Nous utilisons également une photorésistance afin de détecter la lumière. Donc, s'il fait nuit, nous désactivons l'écran LCD afin d'économiser de l'énergie.

Un autre petit secret est la bibliothèque LowPower. Lorsque nous ne mesurons pas la température, nous mettons Arduino en veille à l'aide de la bibliothèque LowPower. Lorsqu'une puce ATMEGA nue est en veille, elle ne nécessite que 0,06 mA de courant ! Cela signifie que vous pouvez faire dormir une puce ATMEGA pendant plus de 4 ans sur 3 piles AA !

Ainsi, avec une conception logicielle intelligente, nous obtenons une bonne autonomie de la batterie. La puce ATMEGA a besoin d'environ 10 mA de courant lorsqu'elle est éveillée. Donc, notre objectif est de le faire dormir la plupart du temps. Pour cette raison, nous ne le réveillons que lorsque nous devons mesurer la température, toutes les deux minutes. Lorsque nous réveillons la puce ATMEGA, nous faisons tout le plus rapidement possible et nous nous endormons immédiatement.

L'algorithme

Le projet se réveille toutes les deux minutes. La première chose qu'il fait est d'activer la photorésistance en écrivant HIGH sur la broche numérique 6. Il lit la valeur de la photorésistance et détermine s'il fait jour ou nuit. Ensuite, il écrit LOW sur la broche numérique 6 afin de désactiver la photorésistance et de conserver les pores. S'il fait nuit, nous désactivons l'écran LCD s'il est allumé et nous nous endormons immédiatement pendant deux minutes sans lire la température. Il n'est pas nécessaire de le faire, car l'écran est éteint. De cette façon, nous conservons encore plus d'énergie. S'il y a suffisamment de lumière, nous activons l'écran LCD s'il était désactivé, nous lisons la température, nous l'affichons sur l'écran et nous nous endormons pendant deux minutes. Cette boucle continue pour toujours.

Étape 3: Mesures

Des mesures
Des mesures
Des mesures
Des mesures
Des mesures
Des mesures
Des mesures
Des mesures

Comme vous pouvez le voir sur les images, lorsque le projet est en veille et que l'écran est allumé, il a besoin de 0,26 mA de courant, ce qui est très faible si l'on considère le fait que nous avons un écran !

Lorsque le projet mesure la température et met à jour l'affichage, il faut environ 11,5 mA

Enfin, lorsqu'il fait sombre et que le ldr a désactivé l'écran LCD du Nokia 5110, nous n'avons besoin que de 0,07 mA, ce qui est génial !

Vie de la batterie

Afin de calculer la durée de vie de la batterie du projet, j'ai créé un simple fichier Excel. J'ai rentré les mesures du multimètre et comme vous pouvez le voir on obtient une autonomie de plus de 500 jours si on mesure la température toutes les 2 minutes ! C'est avec l'utilisation de piles 3AA d'une capacité de 2.500mAs. Bien sûr, si vous utilisez de meilleures batteries comme une batterie Li-Ion 3.400 mAh, vous pouvez avoir votre projet opérationnel pendant plus de 2 ans !

Vous pouvez télécharger le fichier Excel à partir de ce lien.

Étape 4: Le code du projet

Le code du projet
Le code du projet
Le code du projet
Le code du projet

Le code du projet est très simple. Nous utilisons des bibliothèques dans ce morceau de code. Les librairies que nous utilisons sont les suivantes:

  • Bibliothèque basse consommation:
  • Bibliothèque de capteurs de température DS18B20:
  • La bibliothèque LCD Nokia 5110:

Le code du projet se compose de deux fichiers. Dans le premier fichier se trouve le code qui s'exécute sur Arduino. Le fichier suivant contient des données binaires pour les icônes affichées par le programme principal. Vous devez mettre les deux fichiers dans le dossier du projet afin de coder pour compiler correctement.

Le code est très simple. Vous pouvez le trouver ci-dessous. Toute la magie opère au niveau de la fonction sleepForTwoMinutes. Dans cette fonction, nous mettons Arduino en veille profonde. Le problème est qu'en utilisant la minuterie du chien de garde, la durée maximale pendant laquelle nous pouvons mettre Arduino en veille est de 8 secondes. Donc, nous insérons cela dans une boucle 15 fois et nous obtenons l'intervalle de deux minutes que nous voulons

J'espère que vous avez apprécié ce projet. À bientôt!

Conseillé: