Raspberry Lab

Tutoriel Raspberry Pi
Lire la température à l'aide d'une sonde DS18B20

La sonde de température DS18B20 est la sonde la plus utilisée pour mesurer la température avec un Raspberry Pi. Ce tutoriel montre comment l'utiliser afin de lire une température dans un premier temps, puis de deux par la suite.

Prérequis

Pour mesurer la température à l'aide d'un Raspberry Pi, il faut :

Une fois tous les éléments réunis, on peut passer au branchement.

Branchements de la sonde

On branche ensuite la sonde au Raspberry en suivant le schéma ci-dessous.

Lecture via la commande du Raspberry

Une fois que la sonde est branchée correctement, on peut la lire en utilisant l'invite de commande du Raspberry comme ceci : (en remplaçant les 'x' par le numéro donné par le Raspberry). Le Raspberry Pi peut, dans certains cas, ne pas détecter la sonde, si c'est le cas, lire le cadre Attention ci-dessous.


sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices/
ls
cd 28-xxxxxxxxxx
cat w1_slave


Attention

Sonde non detectée ?

Il peut arriver que le Raspberry ne détecte pas la sonde de température. Pour qu'il la détecte, il faut modifier deux fichiers système :

Ajouter les lignes suivantes au ficher qui se trouve dans /etc/modules :

w1-therm
w1-gpio pullup=1


Ajouter la ligne suivante au fichier qui se trouve dans /boot/config.txt :

dtoverlay=w1-gpio

Redémarrer le Raspberry Pi.


Information

Rappel

Pour modifier un fichier, on tape dans la console :

sudo nano /.../...

Pour modifier le fichier qui se trouve dans /etc/modules, on tape donc :

sudo nano /etc/modules


Afficher la température clairement avec un script Python

Pour afficher la température plus clairement, on peut créer un programme qui affiche la température au millième.

On obtient, en lançant le programme python ceci :

Enregistrer les températures dans un fichier texte

Maintenant que l'on peut lire la température clairement à l'aide du script python, on peut enregistrer la température dans un fichier externe.
On ajoute donc une ligne dans un fichier à chaque prise de température avec la date, suivi de la température.
Pour changer l'intervalle de lecture, modifier le time.sleep() qui est en seconde. Dans l'exemple, on relève la température toutes les minutes.

Afficher la température de plusieurs sondes

Il peut être intéressant de lire la température de plusieurs sondes en simultané. Pour se faire, rien de bien compliqué. Il faut brancher les sondes à la suite comme le montre le schéma suivant.

On relance ensuite la détection des sondes avec les commandes comme quand il n'y en a qu'une mais on devrait voir apparaître quelque chose comme ça :


On applique ensuite le programme Python précédemment créé aux deux sondes. Il permet d'afficher la température correctement et proprement.

On obtient sensiblement la même chose si tout va bien :

Afficher la moyenne de deux sondes de température

Maintenant que l'on sait lire plusieurs sondes de température simultanément, on peut faire une moyenne des deux valeurs obtenues. Il suffit d'ajouter les deux lignes suivantes au programme Python précédemment rédigé.

Voilà, le tutoriel est fini, on sait donc maintenant lire une ou plusieurs sondes de température DS18B20 sur Raspberry Pi.

Afficher les commentaires