Aller à : navigation, rechercher

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).
Ds18b20.png

Les pattes

Ce capteur a 3 pattes:

  • Le Vdd
  • Le GND
  • La donnée

ATTENTION

Vous pouvez apercevoir sur l'image 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:
Ds18b20-pinout.jpg

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.

Connect-multiple-ds18b2-i2c-sensors-raspberry-pi.jpg

Dans ce tuto nous allons brancher un seul capteur:
Raspberry-pi-ds18b20-connections.jpg
En photo :
PhotoBranchementRPi.jpg

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