mardi 11 octobre 2011

Domotique - Température: le DS18B20

Dans le cadre d'un de mes projets, je recherchais un moyen de mesurer une température, sans avoir à me prendre la tête à faire des montages complexes pour étalonner le capteur, convertir les mesures en numérique et j'en passe.

Je suis rapidement tombé sur un capteur répondant à mes critères: le DS1820.
Ce capteur a même 2 autres atouts, qui m'ont amené à initier mon projet de domotique:
- sa techno one-wire, qui, comme son nom ne l'indique pas, permet de mettre en oeuvre ce composant avec 2 fils seulement, et surtout permet d'utiliser plusieurs capteurs sur ces 2 mêmes fils !
- sa résolution. J'ai jeté mon dévolu sur le DS18B20 qui a une résolution de 0.0625°. Je me dis qu'avec une telle précision, il doit être fiable ;) A noter qu'il existe le DS18S20, qui a une résolution plus faible

Autre atout, et de taille: le web regorge d'exemples de mise en oeuvre avec l'Arduino. Je n'ai donc pas réinventé la poudre et je me suis largement inspiré de ce qui est très bien présenté sur le site mon-club-elec

J'ai cependant retouché le sketch car il ne répondait pas vraiment à mon cahier des charges, à savoir:
- permettre de relier plusieurs capteurs de température: dans sa version d'origine, et malgré ce que j'ai cru comprendre dans les explications, le sketch ne permet d'interroger qu'un seul capteur
- ne pas limiter l'installation domotique à un nombre de capteurs fixe, ce qui nécessiterait des retouches trop complexes en cas de modifications (ajout/retrait) de capteurs. Le sketch modifié envoie, en plus des valeurs mesurées, les ref des capteurs ainsi que le nombre de capteurs détectés

2 commentaires:

JACKES a dit…

bonjour,

Comment faire pour afficher la valeur de plusieurs ds18b20 ?

Je bloque depuis pas mal de jours.

Merci

Jamais sans mon scoot' a dit…

Bonjour,
Où bloquez vous ?
En fin du post Trame Arduino & sketch (funwitharduino.blogspot.fr/2011/10/domotique-temperature-trame-arduino-et.html) il y a un lien vers mon sketch. Celui-ci gère plusieurs capteurs.
Il faut reprendre la partie setup, puis, dans la partie loop, récupérer le code placé une trentaine de ligne sous "Lancer une mesure" (capteur.reset).
De mémoire, un capteur est lu a chaque boucle de la fonction loop.
Si vous êtes toujours perdu, faites le moi savoir: je vous fournirai une version nettoyée de mon code perso, avec juste la partie lecture des capteurs

Enregistrer un commentaire

Laissez vos commentaires ...