Ceci est une ancienne révision du document !
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 !
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.