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
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.
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.