Christophe Nowicki

December 8, 2009

Capteur de dioxyde de carbone pour réseau 1-wire

Après la lecture de plusieurs livres de Jean-Marc Jancovici (merci Nicolas ;-) ),
je me suis intéressé à la concentration de dioxyde de carbone dans l’air.
En effet, cette concentration afflue directement sur le climat de la planète.
Je me suis donc mis à la recherche d’un capteur de CO2 abordable pour ma station météo.

La recherche du capteur

co2 sensor Mes critères pour le capteur de dioxyde de carbone de ma station météo étaient les suivants :

  • communicant avec le pc à l’aide d’un protocole standard ;
  • fonctionnant sous Debian GNU/Linux ;
  • petit budget, moins de 150 euros.

Après plusieurs jours recherche, je me suis retrouvé le bec dans l’eau.

En effet, ce genre de capteur est visiblement réservé aux équipements scientifiques et la plupart des devis que j’ai réussi à obtenir sont bien au dessus de mon budget.
Mais dernièrement, j’ai trouvé un revendeur de matériel 1-wire en Suède : m.nu.
Celui-ci propose un capteur de CO2 abordable : CO2-meter.
Ce capteur est basé sur le capteur K30 de chez SenseAir et un DS2450.
Ce capteur peut être utilisé en intérieur ou bien à l’extérieur.
Par contre dans le cas d’une utilisation extérieur, il faut le protéger des précipitations.

Matériel

Pour faire fonctionner le capteur vous avez besoin des composants suivants :

Produit Prix
CO2-meter 139,93€
5V Power injectors 19,96€
Alimentation 5V 14,95€

Exploitation du capteur

Avec OWFS

Une fois le capteur branché sur le réseau 1-wire, il est vu par owfs :

$ tree /mnt/owfs/20.C17E0D000000
/mnt/owfs/20.C17E0D000000
|-- PIO.A
|-- PIO.ALL
|-- PIO.B
|-- PIO.C
|-- PIO.D
|-- address
...
|-- type
|-- volt.A
|-- volt.ALL
|-- volt.B
|-- volt.C
|-- volt.D
|-- volt2.A
|-- volt2.ALL
|-- volt2.B
|-- volt2.C
`-- volt2.D
3 directories, 74 files
$ cat /mnt/owfs/20.C17E0D000000/type
DS2450%

Les informations intéressantes se trouvent dans les fichiers :

  • volt.A : sortie du capteur de CO^2, donne la concentration de CO2 en ppm. Il faut multiplier la valeur par 1000. Ex: 0.772277 * 1000 = 772 ppm ;
  • volt.B : statut du capteur de CO^2, le voltage doit être au alentour de 3.2V ;
  • volt.D : voltage du DS2450S, doit être aux alentours de 5V ;

Avec Munin

Pour faire un graphique de la concentration de dioxyde de carbone, j’utilise munin et un petit plugin fait maison :

$ svn co http://svn.csquad.org/owcarbondioxide
A owcarbondioxide/owcarbondioxide
...
$ chmod a+x owcarbondioxide/owcarbondioxide
# mv owcarbondioxide/owcarbondioxide /usr/share/munin/plugins/
# ln -s /usr/share/munin/plugins/owcarbondioxide /etc/munin/plugins/owcarbondioxide
$ /etc/munin/plugins/owcarbondioxide config
graph_title Carbon dioxide 1-wire sensor
graph_args --base 1000 --lower-limit 0 --upper-limit 5000
graph_vlabel Carbon dioxide in ppm
graph_category sensors
graph_info This graph shows the Carbon dioxide on the one-wire network.
Chambre.label Chambre
$ /etc/munin/plugins/owcarbondioxide get
Chambre.value 786.184

Vous devriez obtenir ce type de graphique :
meuh.csquad.lan-owcarbondioxide-day

Références

Voici quelques références intéressantes sur le sujet :

Filed under: Home automation — Tags:, , , — cscm @ 20:09

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

Powered by WordPress