Installer deux sondes de température DS18B20 sur un RaspberryPI

Installer des sondes de température étanches DS18B20 sur un Raspberrypi

1 Activer Onewire (1-wire)

Sur le RPI dans un terminal :

sudo raspi-config

Ensuite allez dans "5 interfacing options"
Puis "P7 1-Wire" pour activer 1-Wire.
Il propose de rebooter (sinon faite-le quand même).
Tester :
sudo lsmod | grep w1
si vous avez des résultats c'est bon.

2 Faire le montage

Il s'agit de mettre une résistance 4,7kohm entre le GPIO d'Alimentation et celui du signal. En ce qui me concerne je veux une sonde intérieur et extérieur d'où le fait qu'il y a deux sondes. Le 1-wire a cela d'intéressant qu'il permet de brancher plusieurs modules en parallèles. Sonde température étanche DS18B20

3 Branchement

Pour l'alimentation, le signal et la masse j'utilise respectivement le header pin : 17 (3,3V),18 (GPIO 24),20 (Masse).

4 Configuration

Pour moi je mets le signal sur le BCM 24 (18) car le GPIO 4 est déjà utilisé, voici la ligne à executer pour surcharger le GPIO utilisé pour le 1wire.

sudo dtoverlay w1-gpio gpiopin=24 pullup=0

Vous devriez pouvoir lire les données dans les fichiers ici :
ls /sys/bus/w1/devices/
Chez moi il y a plusieurs résultats (en l'occurence 2 puisque j'ai mis deux sondes).
ls /sys/bus/w1/devices/
Ce qui donne :
00-2cd200000000  28-3c01d0758fae  w1_bus_master1
00-acd200000000  28-3c01d075c1ab  w1_bus_master2
Donc pour lire ce fichier voici un script en ruby :
1
2
3
4
5
6
7
8
9
# Sonde 1
data = File.read("/sys/bus/w1/devices/28-3c01d0758fae/w1_slave")
temperature_celsius = data.split("\n").last[/t=\d*/].split('=').last.to_i / 1000.0
puts "Temperature celsius : #{temperature_celsius}°C"

# Sonde 2
data = File.read("/sys/bus/w1/devices/28-3c01d075c1ab/w1_slave")
temperature_celsius = data.split("\n").last[/t=\d*/].split('=').last.to_i / 1000.0
puts "Temperature celsius : #{temperature_celsius}°C"

L'avantage d'avoir deux sondes pour les tests c'est que si elles affichent des valeurs radicalement différentes vous savez que vous avez un souci ;)
Inspiré de : framboiseaupotager