Christophe Nowicki

April 23, 2009

Mesure de température à l’aide de capteurs 1-wire

Cherchant une solution pour mesurer la température de mon appartement de manière informatisée ; j’ai découvert le bus 1-Wire qui permet de connecter des capteurs divers à l’aide d’un seul cable (téléphonique aka RJ11 dans mon cas).
Ce protocole est généralement utilisé pour des instruments de mesure météorologiques.

Ce billet explique le fonctionnement de mon installation.

Le matériel nécessaire

Composant Prix
Adaptateur USB vers 1-Wire ( DS9490R ) 29 $
Cable RJ12 2 à 10 $
Capteur de température ( TAI8520 ) 22 $
Capteur de température et d’humidité ( TAI8540D ) 50 $

Le fabriquant de ces modules est AAG Electronica.
Vous pouvez commander ce matériel directement chez le fabriquant aux USA ou bien chez Audon Electronics en Angleterre.

J’ai acheté mon matèriel chez Audon, car le taux de change de la Livre sterling est actuellement très avantageux (1 € = 1 £ ).
De plus, cela évite les diffèrents problèmes liés aux douanes (non … je vous dis que ce sont des capteurs de température pas des missiles ;-) )

Installation du matériel

Avant de brancher l’adaptateur USB, il faut désactiver le chargement des modules noyau ds2490 et wire dans le fichier : /etc/modprobe.d/blacklist


cat <<EOF >> /etc/modprobe.d/blacklist
blacklist ds9490r
blacklist ds2490
blacklist wire
EOF

Vous pouvez ensuite brancher l’adaptateur USB et vérifier qu’il est bien présent à l’aide de la commande lsusb :


$ lsusb | grep 1-Wire
Bus 002 Device 006: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter

Digitemp, tu oublira vite

Lorsqu’on cherche une solution de monitoring de température, on trouve sur le programme Digitemp.
Je ne vous le conseille vraiment pas, car il ne fonctionne pas très bien :

  • il renvoie une valeur de manière aléatoire ;
  • il nécessite les droits root pour lire le port usb ;
  • les scripts fournis avec le programme ne fonctionnent pas, il faut les modifier, etc…

Bref après une soirée de configuration, j’ai bien réussi à mettre les valeurs dans une base MySQL avec un script cron et digitemp, mais le lendemain matin cela ne fonctionnait plus …

Owfs, rocks les ours de laponie du nord

Owfs est un bien meilleur solution pour le monitoring de la température.
L’installation et la configuration est décrite sur le Wiki de Sebastien Mei :

J’ai donc installé le tout et configuré le monitoring avec munin :

C’est pas ti beau?

Filed under: Debian, Home automation — Tags: — cscm @ 22:19

2 Responses to “Mesure de température à l’aide de capteurs 1-wire”

  1. MAIDEN says:

    Si si, c’est beau, mais t’es aussi un grand malade sur le chauffage ! ^^

  2. Olivier says:

    Salut Christophe,

    Moi j’oublie pas digitemp, je viens de faire le montage décrit ici : http://martybugs.net/electronics/tempsensor/multiple.cgi et tout fonctionne bien. Là, j’ai installé munin (à la place de cacti), mais faut que je vois encore pour faire les graphs de digitemp…

    Sinon, grâce à digitemp et le montage réalisé, j’ai 3 capteurs dans ma “salle serveur” : 1 en bas, 1 au milieu et 1 en haut. Conclusion de mes tests : à l’école, on apprend n’importe quoi : la chaleur descend et ne monte pas ! ;-)

    Pour preuve :
    digitemp -a -q -c /etc/digitemp.conf
    Jul 04 21:30:16 Sensor 0 C: 35.12 F: 95.22
    Jul 04 21:30:17 Sensor 1 C: 32.75 F: 90.95
    Jul 04 21:30:18 Sensor 2 C: 32.56 F: 90.61

    Sensor 0 = en bas, Sensor 1 = au milieu , Sensor 2 = en haut

Leave a Reply

Powered by WordPress