[article] ajout de l'article sur le capteur de température et la raspi
This commit is contained in:
parent
f7d3b86083
commit
03631e8d2d
5 changed files with 78 additions and 0 deletions
BIN
content/images/therm_raspi.jpg
Normal file
BIN
content/images/therm_raspi.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 303 KiB |
BIN
content/images/therm_raspi_bread.jpg
Normal file
BIN
content/images/therm_raspi_bread.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 270 KiB |
BIN
content/images/therm_raspi_bread_small.jpg
Normal file
BIN
content/images/therm_raspi_bread_small.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 KiB |
BIN
content/images/therm_raspi_small.jpg
Normal file
BIN
content/images/therm_raspi_small.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 104 KiB |
78
content/raspi_therm.mdown
Normal file
78
content/raspi_therm.mdown
Normal file
|
@ -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
|
Loading…
Reference in a new issue