Un article parlant du branchement d'un capteur de température en 1-wire sur une raspberry. L'exemple est pour l'instant réalisé sur une raspberry 1 modèle B+.
Je me suis beaucoup inspiré du site [framboise314][1], avec un ajout de configuration pour le noyau 3.18+ ainsi qu'un script basique et une configuration pour collectd, pour pouvoir avoir cette information cruciale dans le système de monitoring :-)
Dans le fichier `/boot/config.txt`, il faut ajouter le chargement d'un overlay pour le DTB. J'en parle très succintement [ici][2] avec un lien vers [devicetree.org][3], c'est une description du matériel qui permet au noyau d'activer et de configurer certaines parties de la carte.
Il me semble qu'avant le 3.18 cette description était statique pour la raspi.
```
dtoverlay=w1-gpio
```
Une version `-pullup` est aussi disponible, mais n'est nécessaire que si on branche le capteur en mode parasite (la version 2 fils, en reliant la patte d'alimentation avec la patte data)
Ensuite dans `/etc/modules`, on rajoute le chargement des pilotes 1-wire :
```
w1-gpio
w1-therm
```
Comme pour la DTB, je n'ai pas activé l'option `pullup=1`.
# Lecture de la valeur
Si le dispositif fonctionne bien et que les pilotes sont chargés, un fichier est créé dans le répertoire suivant `/sys/bus/w1/devices`. Ce fichier porte le nom de l'UUID de la sonde, chez moi c'est `28-001451521dff`.
En lisant ce fichier, on obtient sur le CRC de la lecture sur la première ligne qui permet de déterminer si la lecture de la valeur et sa transmission au pilote a fonctionné.
Dans un premier temps, je vais utiliser un script shell et le plugin [Exec][8] de collectd. J'essaierai de faire une meilleure version du plugin, en C je suppose, plus tard.