Table des matières
Debian Etch
Materiel
Clé USB
Capteur de température
DS1820
Lien:
Brancher
la clé DS9490R
$ tail -f /var/log/syslog Aug 13 23:29:12 k8 kernel: usb 3-2.1.4: new full speed USB device using ehci_hcd and address 11 Aug 13 23:29:12 k8 kernel: usb 3-2.1.4: configuration #1 chosen from 1 choice Aug 13 23:29:12 k8 kernel: Driver for 1-wire Dallas network protocol. Aug 13 23:29:12 k8 kernel: usbcore: registered new interface driver DS9490R Aug 13 23:29:24 k8 kernel: w1_master_driver w1_bus_master1: Family 81 for 81.0000002ab801.87 is not registered.
Ok… bon… et alors?
Les modules chargés:
# diff lsmod-1.txt lsmod-2.txt 1a2,4 > ds2490 7776 0 > wire 21764 1 ds2490 > cn 8032 1 wire 111c114 < usbcore 133004 7 wacom,pl2303,usbserial,usb_storage,ehci_hcd,uhci_hcd --- > usbcore 133004 8 ds2490,wacom,pl2303,usbserial,usb_storage,ehci_hcd,uhci_hcd
Mais encore:
# lsusb Bus 003 Device 014: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter
avant de brancher
Avant de brancher la clé, il faut desactiver le chargement de certains pilotes.
Editer le fichier /etc/modprobe.d/blacklist
pour avoir (à la fin par exemple):
# ---- # TJ blacklist ds9490r blacklist ds2490 blacklist wire # ----
Si besoin, forcer aussi le dechargement des pilotes en faisant:
# modprobe -r ds2490 # modprobe -r wire
J'ai aussi ajouté un petit:
# rmmod cn
(c'est koi ce truk?)
Digitemp
Install
# aptitude install digitemp
Test
Et puis:
# digitemp_DS2490 -a -v DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 003/012
Ca a marché ?
# digitemp_DS2490 -a -v -w DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 003/012 Turning off all DS2409 Couplers . Devices on the Main LAN 8101B82A00000087 : Unknown Family Code
Hu?
Branchons le capteur DS1820
:
# digitemp_DS2490 -w -v DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 006/012 Turning off all DS2409 Couplers .. Devices on the Main LAN 1035317F0108005B : DS1820/DS18S20/DS1920 Temperature Sensor 8101B82A00000087 : Unknown Family Code
Chouette, mon petit cablage fonctionne
Configurer
D'aprés le “man”, on initialise un fichier .digitemprc
avec -i
# digitemp_DS2490 -i DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 006/012 Turning off all DS2409 Couplers .. Searching the 1-Wire LAN 1035317F0108005B : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 1035317F0108005B Wrote .digitemprc
C'est quoi ce fichier:
# cat .digitemprc TTY USB READ_TIME 1000 LOG_TYPE 1 LOG_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F" CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C" HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%" SENSORS 1 ROM 0 0x10 0x35 0x31 0x7F 0x01 0x08 0x00 0x5B
Examinons le senseur:
# digitemp_DS2490 -t 0 DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 006/012 Aug 14 23:04:56 Sensor 0 C: 25.25 F: 77.45
Yes ! Il fait chaud.
interrogations
Un autre format de reponse:
# digitemp_DS2490 -t 0 -o 2 DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 006/012 0 25.56
Le “0” est juste le nombre de seconde ecoulé…
“25.56” est la température.
Autre chose:
# digitemp_DS2490 -t 0 -o 2 -n 3 -d 5 DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Found DS2490 device #1 at 006/012 0 25.50 5 25.50 10 25.50
Explication rapide:
-t 0
interroger le senseur 0 (d'aprés la config)
-o 2
format de réponse
-n 3
interroger 3 fois…
-d 5
delay entre les interrogations
Autoriser user
J'ai fait ça:
# chmod u+s /usr/bin/digitemp_DS2490
Ainsi, titi il peut aussi faire:
$ digitemp_DS2490 -q -t 0 -o 2 Found DS2490 device #1 at 003/007 0 29.12
Etch
Mes tests préliminaires ont été fait sous Lenny (la version Testing de Debian) !
Ca ne fonctionne pas sous Etch !
Même aprés avoir essayé de compiler la dernière version, j'ai la même erreur dans les logs.
Compiler
# aptitude install libusb-dev
$ wget http://www.digitemp.com/software/linux/digitemp-3.5.0.tar.gz $ tar xvzf digitemp-3.5.0.tar.gz $ make ds2490
Fin.
OWFS
Finalement, pour Etch, j'ai installé “OWFS” qui est trés bien !
Passage sous Squeeze, il faut recompiler OWFS !!!
Allons-y.
Installation
Recupérer les sources par là: http://sourceforge.net/projects/owfs/
$ mv owfs-2.8p6.tar.gz /usr/local/src $ cd /usr/local/src $ tar xvzf owfs-2.8p6.tar.gz $ cd owfs-2.8p6
Pré-requis:
# aptitude install make gcc
# aptitude install libfuse-dev libusb-dev
# aptitude install ed
$ ./configure --enable-debian --prefix=/usr/local
C'est bon ?
Current configuration: Deployment location: /usr/local Compile-time options: Caching is enabled USB is enabled I2C is enabled HA7Net is enabled W1 is enabled Multithreading is enabled Parallel port DS1410E is enabled TAI8570 barometer is enabled Thermocouple is enabled Zeroconf/Bonjour is enabled Debug-output is enabled Profiling is DISABLED Tracing memory allocation is DISABLED 1wire bus traffic reports is DISABLED Module configuration: owlib is enabled owshell is enabled owfs is enabled owhttpd is enabled owftpd is enabled owserver is enabled ownet is enabled ownetlib is enabled owtap is enabled owmon is enabled owcapi is enabled swig is DISABLED owperl is DISABLED owphp is DISABLED owpython is DISABLED owtcl is DISABLED
$ make $ make check $ su # make install
Pour que ça trouve les nouvelles lib:
# ldconfig
Cablage maison
Pour mémoire, voila mon plan de cablage… pour ajouter d'autres capteurs plus tard.
Précisions:
- j'ai branché l'alimentation +5V (VDD)
- N'ayant pas de RJ12, j'ai utilisé un connecteur RJ45 en rabotant les bords: (au ras des pins 1 et 8)
(3 pins) (8 pins) (6 pins) 3+- (VDD) <--> +- 2 (VDD) <--> +- 1 <--> (VDD) DS1820 2+- (DQ/OW)<--> RJ45+- 4 (DQ/OW)<--> RJ12+- 3 <--> (DQ/OW) DS9490 1+- (GND) <--> +- 5 (GND) <--> +- 4 <--> (GND)
rrd
Pour mémoire, j'ai créé les bases RRD comme ça:
$ rrdtool create <NOM_DU_SENSOR>.rrd DS:temp:GAUGE:300:-80:+80 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:744 RRA:AVERAGE:0.5:72:732 RRA:AVERAGE:0.5:288:730
En gros:
- 1 temperature toutes les 5 minutes (300 secondes)
- limite entre -80 et +80 (quand le DS1820 redemarre (reset), il peut retourner +85°C !)
- 1er base: 600 valeurs toutes les 1*300 secondes (5 minutes) ⇒ 2 jours et quelques minutes…
- 2ieme base: 700 valeurs toutes les 6*300 secondes (30 minutes) ⇒ 14 jours et quelques heures…
- 3ieme base: 744 valeurs toutes les 24*300 secondes (2 heures) ⇒ 62 jours pile (2 mois environ)
- 4ieme base: 732 valeurs toutes les 72*300 secondes (6 heures) ⇒ 183 jours pile (6 mois environ)
- 5ieme base: 730 valeurs toutes les 288*300 secondes (24 heures) ⇒ 730 jours pile ! (2 ans environ)
Dans les cas extremes, les courbes seront des moyennes sur 6 heures ou 24 heures !
La précision sera médiocre dans ces cas là, mais on devrait pouvoir distinguer l'été de l'hiver.
Solar
Voila que j'ai recu le produit suivant:
HTS3-R1-A
de chez www.hobby-boards.com
Pour la temperature et l'humidité, ca va.
Pour le “solar”, j'ai cru comprendre qu'il faut lire la valeur dans “vis”.
$ owread /26.516A81000000/vis 0
J'ai eu, le temps d'un bref instant de lumière (?), la valeur:
0.00002441
Et si je croise cette info avec ce qu'il est dit là , alors je dois être sur la bonne voie…
En gros, c'est le composant “DS2438” qui est interfacé avec le capteur “CLD240”…
Quelques discutions dans un forum d'initiés ! http://www.cocoontech.com/index.php?showtopic=4072&st=0