Installer des sondes de température étanches DS18B20 sur un Raspberrypi
1 Activer Onewire (1-wire)
Sur le RPI dans un terminal :
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 :
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.
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.
Vous devriez pouvoir lire les données dans les fichiers ici :
Chez moi il y a plusieurs résultats (en l'occurence 2 puisque j'ai mis deux sondes).
Ce qui donne :
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