Utiliser un DS18B20 (capteur de température)
Le DS18B20 est un capteur de température numérique (Il envoie une série de 0 et de 1).
Les pattes
Ce capteur a 3 pattes:
- Le Vdd
- Le GND
- La donnée
ATTENTION
Vous pouvez apercevoir sur limage ci-dessus qu'il est indiqué un "+", il s’agit de la référence du capteur et non de l'indication de la patte. SI LE BRANCHENT EST INVERSE, LA SONDE DEVIENT BRÛLANTE JUSQU’À SA DESTRUCTION!Voici la signification de chaque pattes:
Branchement
Le point fort est la possibilité de brancher plusieurs capteurs (de type différant aussi) sur le même port du Raspberry. Nous avons donc un réseau de capteur:
ATTENTION
Le port du Raspberry est spécifique à cette utilisation.
Dans ce tuto nous allons brancher un seul capteur:
En photo :
Raspberry
Préparation
Dans un 1er temps, il faut activer un module "wire" au boot du raspberry. Éditer le fichier /boot/config.txt et ajouter:
[...]
dtoverlay=w1-gpio
Puis redémarrer le Raspberry.
Lire les données
Activer les modules suivant (A refaire a chaque démarrage) :
$ sudo modprobe w1-gpio $ sudo modprobe w1-therm
Aller sur l'arborescence suivante :
$ cd /sys/bus/w1/devices/ $ ls
Ici, vous allez voir un dossier qui commence par 28 suivie par une séries de numéro, cet chiffre correspond a un identifiant unique implanté dans chaque capteur. Cela explique la possibilité de connecter plusieurs sondes sur le même port GPIO du Raspberry. Entrée dans ce dossier :
$ cd 28-000005e2fdc3
Puis vous pouvez aller lire la valeur de votre sonde dans le fichier "w1_slave". La capture de la température est réaliser lors de l'ouverture du fichier, pour actualiser la valeur il suffit de reouvrir le fichier.
72 01 4b 46 7f ff 0e 10 57 : crc=57 YES
72 01 4b 46 7f ff 0e 10 57 t=23125
La valeur qui nous intéresse ce situe après le "t=", ici 23125. Il suffit de diviser la valeur par 1000 pour avoir le résultat en degrés Celsius, soit 23,125°C dans mon cas.
Liens
https://www.modmypi.com/blog/ds18b20-one-wire-digital-temperature-sensor-and-the-raspberry-pi