cf http://fr.wikipedia.org/wiki/1-Wire
Dans cet article nous allons utiliser le connecteur USB vers 1-wire : DS9490R
Tout d'abord, pour autoriser le module usb, il faut installer les librairies de fuse :
# apt-get install libfuse-dev libusb-dev
Télécharger l'archive sur cette page : http://sourceforge.net/projects/owfs/files/owfs/. Dans mon cas la 2.7p26.
Décompressez l'archive :
$ tar xvzf owfs-2.7p26.tar.gz
On lance le .configure :
$ cd ./owfs-2.7p26/ $ ./configure --enable-debian --prefix=/usr/local
La fin de la phase de configuration nous montre les modules qui seront activés :
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
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
owside is enabled
owmon is enabled
owcapi is enabled
swig is DISABLED
owperl is DISABLED
owphp is DISABLED
owpython is DISABLED
owtcl is DISABLED
Comme vous pouvez le voir il existe de nombreuses manières de communiquer avec owfs.
Puis la compilation :
$ make
Et en tant que root l'installation :
# make install
On en profite pour créer un dossier dans /mnt :
# mkdir /mnt/owfs
On créé le fichier /etc/init.d/owfs :
#! /bin/sh
# script de démarage de owfs
set -e
# on récupère le point de montage de OWFS
source /etc/default/owfs
# binaire OWFS
OWFS="/usr/local/bin/owfs"
# module à charger pour owfs
OWFSMODULES="fuse"
case "$1" in
start)
# on vérifie que le point de montage existe
if [ -d $OWFSMNT ]
then
# on charge les modules
modprobe $OWFSMODULES
# On monte le owfs en donnant l'accès à tout le monde
# TODO A CHANGER POUR LES DROITS
$OWFS -u $OWFSMNT --allow_other
fi
;;
stop)
# On démonte OWFS
umount $OWFSMNT
;;
*)
echo "Usage: $N {start|stop}" >&2
exit 1
;;
esac
exit 0
On met les droits dessus :
chmod a+x /etc/init.d/owfs
Et le fichier de configuration /etc/default/owfs :
# Point de montage de owfs OWFSMNT="/mnt/owfs"
Et on l'ajoute dans les procédures de démarrage :
# update-rc.d owfs defaults
Au branchement du module usb, des modules qui vont poser souci vont de charger automatiquement. Nous allons les bloquer en créant le fichier /etc/modprobe.d/ds2490 :
Maintenant vous pouvez brancher le module.
Pour finir, la prise en compte :
# /etc/init.d/owfs start
Voyons ce qui est présent dans notre dossier /mnt/owfs :
$ ls -l /mnt/owfs/ total 0 drwxrwxrwx 1 root root 8 oct 4 16:45 28.C57B2E020000 drwxrwxrwx 1 root root 8 oct 4 16:45 81.93702C000000 drwxr-xr-x 1 root root 8 oct 4 16:42 alarm drwxr-xr-x 1 root root 8 oct 4 16:42 bus.0 drwxr-xr-x 1 root root 8 oct 4 16:42 settings drwxrwxrwx 1 root root 8 oct 4 16:45 simultaneous drwxr-xr-x 1 root root 8 oct 4 16:42 statistics drwxr-xr-x 1 root root 30 oct 4 16:42 structure drwxr-xr-x 1 root root 8 oct 4 16:42 system drwxr-xr-x 1 root root 8 oct 4 16:42 uncached
Les 2 premiers items sont les périphériques 1-wire. En fait je n'en ai qu'un : un capteur de température DS18B20. Pourquoi en a-ton deux d'affichés ?
Voyons le type des 2 :
$ cat 81.93702C000000/type DS1420 $ cat 28.C57B2E020000/type DS18B20
Consultons maintenant la température relevée par le capteur :
$ cat /mnt/owfs/28.C57B2E020000/temperature
18.25
Et voilà, notre début de réseau 1-wire fonctionne