diff --git a/content/images/therm_raspi.jpg b/content/images/therm_raspi.jpg new file mode 100644 index 0000000..bd054e2 Binary files /dev/null and b/content/images/therm_raspi.jpg differ diff --git a/content/images/therm_raspi_bread.jpg b/content/images/therm_raspi_bread.jpg new file mode 100644 index 0000000..dfc0eac Binary files /dev/null and b/content/images/therm_raspi_bread.jpg differ diff --git a/content/images/therm_raspi_bread_small.jpg b/content/images/therm_raspi_bread_small.jpg new file mode 100644 index 0000000..b2f891e Binary files /dev/null and b/content/images/therm_raspi_bread_small.jpg differ diff --git a/content/images/therm_raspi_small.jpg b/content/images/therm_raspi_small.jpg new file mode 100644 index 0000000..ffbbab5 Binary files /dev/null and b/content/images/therm_raspi_small.jpg differ diff --git a/content/raspi_therm.mdown b/content/raspi_therm.mdown new file mode 100644 index 0000000..aadb7b0 --- /dev/null +++ b/content/raspi_therm.mdown @@ -0,0 +1,78 @@ +Title: Capteur de température sur raspi +Author: kleph +Email: kleph@kleph.info +Category: Blog +Date: 2015/05/18 +Tags: Linux, Arm, Embedded +Lang: fr + +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 [franboise314][1], avec un ajout de configuration pour le noyau 3.18+ et très bientôt comment faire un plugin collectd pour remonter ces informations sur le réseau. + +# Matériel +- une sonde DS18B20 +- une nappe IDE (40 fils) pour se brancher sur le port GPIO de la raspi +- une [raspberry pi][4] + +## Images +Le montage est très bien décrit sur le site de [framboise314][1], je ne le décrirais donc pas à nouveau. +J'ai choisi la version "standard" à 3 fils. + +Voici une image de la raspi : [![raspi](images/therm_raspi_small.jpg)][5] +et une de la breadboard : [![breadboard](images/therm_raspi_bread_small.jpg)][6] + + +# Logiciel + +## Ajout de l'overlay (3.18+) +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é. +Voici un exemple d'une sortie en erreur : +``` +cat : /sys/bus/w1/devices/28-001451521dff +00 00 00 00 00 00 00 00 00 : crc=00 NO +00 00 00 00 00 00 00 00 00 t=0 +``` + +On retrouve alors dans les logs un message : +``` +w1_slave_driver 28-001451521dff: Read failed CRC check +``` + +J'utilisais alors une nappe IDE de longueur classique, environ 60 cm, cela semble être trop. + +En utilisant une nappe plus courte (5cm, je ne sais plus du tout dans quelle machine j'ai récupéré ça), j'ai obtenu une sortie correcte : +``` +78 01 55 00 7f ff 0c 10 57 : crc=57 YES +78 01 55 00 7f ff 0c 10 57 t=23500 +``` + +La deuxième ligne donne la température en millième de °C. + + +# Plugin collectd +TODO + +[1]: http://www.framboise314.fr/mesure-de-temperature-1-wire-ds18b20-avec-le-raspberry-pi/ +[2]: ../Home%20router%20with%20sama5d35.html#chargeur-damorcage +[3]: http://www.devicetree.org/Main_Page +[4]: https://www.raspberrypi.org/ +[5]: images/therm_raspi.jpg +[6]: images/therm_raspi_bread.jpg