Le thermomètre est un exemple d’utilisation d’Arduino relativement simple à réaliser, et qui a une application pratique immédiate.
Il se base sur le matériel suivant :
- une carte Artuino Uno Rev 3
- un capteur de température Maxim DS18B20, capteur numérique basé sur le protocole 1-wire
- un afficheur 7 segments 4 digits ATA3492-BR (chez Sparkfun, ou Alpha-Crucis)
Montage matériel
Le montage est assez simple, même si il demande un peu d’organisation (il y a beaucoup de fils, liés aux 16 pattes de l’afficheur). Le montage présenté se base sur l’afficheur 7-segments 4-digits, qui ne correspond pas aux afficheurs disponibles au TéléFab. La résistance utilisée est une 4.7kΩ.
Il est bien sûr possible de modifier l’affectation des pattes, il faudra alors en tenir compte dans la partie logicielle. Dans une autre version du montage, un capteur de luminosité a été inséré afin d’adapter la luminosité de l’afficheur 7-segments en fonction de la luminosité ambiante. Ce montage sera décrit plus tard
Contrôle logiciel
La partie logicielle est séparée en deux parties :
- un ensemble de fonctions pour le contrôle de l’afficheur
- un ensemble de fonctions pour l’implantation du protocole 1-wire et la communication avec le capteur numérique de température
La mise en commun de ces deux parties impliquent également de gérer correctement le temps. Comme on ne dispose pas, dans ce montage, d’un contrôleur d’afficheur 7 segments, il est nécessaire de contrôler en permanence l’affichage, et la communication avec le capteur entraîne donc une rupture dans l’affichage. Pour que cette rupture ne soit pas visible, il est nécessaire de répartir la communication avec le capteur.
Le projet est encore expériemental, et pour bien faire il faudrait soit développer une librairie 1-wire, soit utiliser la librairie existante. Le fichier est téléchargeable ici : thermometre . Il faut renommer le fichier pour lui mettre l’extension .ino .
Résultat
Une fois terminé, le thermomètre affiche la température en permanence (mise à jour toutes les 20 secondes), ce qui permet de balader l’Arduino n’importe où sans avoir besoin d’une connection série.
Le cablage de la photo ne correspond pas au cablage présenté précédemment, il a été modifié pour des raisons de commodité.
Extensions à venir
Une première amélioration, déjà réalisée mais non décrite, consiste en l’ajout d’un capteur de luminosité, pour adapter l’intensité lumineuse. La deuxième amélioration utilise les sorties PWM de l’arduino por réduire l’intensité lumineuse, ce qui limitera le scintillement actuellement constaté sur l’afficheur. L’afficheur pourrait aussi être remplacé par un afficheur LCD, même si cela augmenterait le prix.
A terme, l’objectif est de réaliser une carte à base d’ATmega328 (le composant de base de l’Arduino) qui gérera uniquement ce thermomètre, afin de réaliser des boitiers de relevés de températures. De la connectique spécifique sera intégrée afin de rendre ces boitiers compatibles avec un système domotique. Potentiellement, un autre capteur de température sera utilisé, celui-ci étant précis mais cher (4€ la pièce, alors qu’un thermistor coûte moins de 50 centimes). L’implantation du 1-wire pourrait alors être faite en esclave, et non en maître. Cependant, il reste des problèmes à résoudre avec ces thermistors, en termes de précision de mesure.
Voici le code qui permet d’afficher le résultat du capteur sur le port série, sans afficheur : thermometre
Salut, je suis une étudiante en Electronique, je travaille sur mon projet de fin d’étude qui a pour théme:THERMOMETRE A BASE D’ARDUINO, la réalisation de ce projet n’est pas très compliqués, j’aimerais bien ajouter d’avantage option ou bien extension a ce projet! pouvais vous m’aidez a ce propos!!!
Merci d’avantage, j’attend votre réponse !