864-Utilisation du capteur DS18B20
Utilisation du capteur DS18B20 pour la mesure de température
Prérequis:
Avoir un Raspberry Pi avec Raspbian installé.
Un capteur DS18B20 de chez Dallas.
Une résistance de 4,7KΩ.
Raccordement:
Configuration:
Taper les commandes:
sudo nano /boot/config.txt
Et ajouter dans le fichier le texte suivant:
dtoverlay=w1-gpio
Faire un crtl+o et crtl+x.
Puis un reboot.
sudo reboot
Test:
Taper les commandes suivantes:
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
Aller dans le répertoire qui commence par 28-xxxx.
Dans mon cas 28-000006a34cd5.
cd 28-000006a34cd5
cat w1_slave
Programme de lecture:
# Import Libraries
import os
import glob
import time
# Initialize the GPIO Pins
os.system('modprobe w1-gpio') # Turns on the GPIO module
os.system('modprobe w1-therm') # Turns on the Temperature module
# Finds the correct device file that holds the temperature data
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
# A function that reads the sensors data
def read_temp_raw():
f = open(device_file, 'r') # Opens the temperature device file
lines = f.readlines() # Returns the text
f.close()
return lines
# Convert the value of the sensor into a temperature
def read_temp():
lines = read_temp_raw() # Read the temperature 'device file'
# While the first line does not contain 'YES', wait for 0.2s
# and then read the device file again.
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
# Look for the position of the '=' in the second line of the
# device file.
equals_pos = lines[1].find('t=')
# If the '=' is found, convert the rest of the line after the
# '=' into degrees Celsius, then degrees Fahrenheit
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
# Print out the temperature until the program is stopped.
while True:
print ('temp\xe9rature :'),
print (read_temp()),
print ('\xb0C')
time.sleep(1)
Programme complet ici.
Lancement du programme:
sudo python ds18b20.py
Pour arrêter le programme faire un crtl+c.
Mise à jour 26/04/2015
Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit