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 :
- Installation de owfs sur une Debian(Etch);
- Utilisation de owfs et de munin pour monitorer des capteurs de températures(DS1820).
J’ai donc installé le tout et configuré le monitoring avec munin :
![]() |
![]() |
C’est pas ti beau?