Outils pour utilisateurs

Outils du site


Panneau latéral

Navigation

Plan auto

raspberry_pi:ds18b20_temperature_numerique

Ceci est une ancienne révision du document !


Pour mesurer la température, il est possible d’utiliser divers capteurs, tels que le TMP36, le DHT11/DH22, ou encore le DS18B20. C’est à cette dernière sonde que nous nous intéresserons aujourd’hui. Il s’agit d’une sonde numérique (pas besoin de convertisseur analogique-numérique tel que le MCP3008) qui est assez précise (±0.5°C sur la plage -10°C – 85°C), raisonnablement facile à utiliser, et consommant peu. Par rapport à une sonde analogique, c’est un peu plus complexe, puisqu’il faut utiliser le protocole dallas 1-wire, mais nous verrons qu’il y a déjà les outils nécessaires pour exploiter tout cela.

DS18B20 Raspberry pi : le câblage

Si nous regardons la sonde de près, elle est en forme de demi cylindre, avec un côté plat, portant des inscriptions, comme on peut le voir sur la photo suivante :  Brochage du DS18B20 Lorsque nous regardons le côté plat, les pattes étant vers le bas, on à de gauche à droite les trois pattes de la sonde. La première pour la masse (GND), la seconde pour le signal (connecté au GPIO4) et la dernière est l'alimentation, VCC (ici 3.3V).

On va donc logiquement connecter la broche GND à la masse du Raspberry Pi, la broche VCC au +3.3V, et la broche signal au GPIO4. Mais il faudra également connecter la broche signal à VCC, via une résistance de 4.7KOhms (c'est ce qui s'appelle un input pull-up). Vous pouvez suivre le schéma suivant :  câblage du DS18B20

Et c'est tout :)

Configuration du système

Avant de pouvoir utiliser notre sonde, il faut configurer le système. Nous verrons donc les quelques commandes nécessaires pour cela.

Étape 1 : modifier /boot/config.txt

Pour cela, vous pouvez taper la commande suivante :

sudo nano /boot/config.txt

Il faudra alors ajouter le texte suivant à la fin du fichier :

dtoverlay=w1-gpio

Sauvegardez avec CTRL+W, puis quittez avec CTRL+X. Vous pouvez alors redémarrer le système :

sudo reboot

Étape 2: charger les modules w1-gpio et w1-therm

Pour charger les modules noyau nécessaire à l'exploitation du capteur, on exécutera les commandes suivantes :

 sudo modprobe w1-gpio sudo modprobe w1-therm 

Cela nous permettra de charger les modules jusqu'au prochain redémarrage du système. Du coup, il faudra refaire cette manipulation à chaque démarrage.

Si l'on souhaite au contraire faire en sorte que les modules en question soient automatiquement chargés, une autre solution est de modifier le fichier /etc/modules :

sudo nano /etc/modules

On ajoute alors en fin de fichier les deux lignes suivantes :

w1-gpio
w1-therm

Ainsi, à chaque démarrage du système, ces deux modules seront automatiquement chargés.

Étape 3 : lire les données de la sonde

On pourra alors vérifier le fonctionnement de la sonde en faisant ceci :

cd /sys/bus/w1/devices
ls

Si la sonde est reconnue, on verra apparaitre une liste contenant au moins un élément qui correspond à la sonde (quelque chose comme 28-xxxx). On pourra alors faire ceci pour lire les données du capteur :

cd 28-xxxx
cat w1_slave

Cela affichera alors les données du capteur, comme on peut le voir ici :  Shell affichant les données du capteur

raspberry_pi/ds18b20_temperature_numerique.1475765760.txt.gz · Dernière modification: 06/10/2016 16:56 par sky99