06-11-2016, 12:25:07
Bonjour,
Sur mon raspberry, sont branchées 3 sondes de température DS18B20 en 1Wire.
Voici un bout de code python qui récupère la valeur de la température sur les 3 sondes. Il fonctionne mais le répertoire "/sys/bus/w1/devices/28-800000038a0d/w1_slave" dont le nom est l’identifiant de la sonde se transforme en "28-380000000000" et on ne peut plus rien lire puisque ça ne correspond plus à rien.(même chose pour les deux autres répertoire relatif au deux autres sondes)
Si je reboote le RPi, ça fonctionne pendant quelques lectures et le changement de nom intervient intempestivement.
Le 1Wire mesure un bonne vingtaine de mètre : Faut-il revoir la valeur de la résistance (4,7k) ?
J'ai lu sur un forum que "ça arrive...." sans explication.....
Si quelqu'un à des info, je suis preneur !!!!!
Merci
Sur mon raspberry, sont branchées 3 sondes de température DS18B20 en 1Wire.
Voici un bout de code python qui récupère la valeur de la température sur les 3 sondes. Il fonctionne mais le répertoire "/sys/bus/w1/devices/28-800000038a0d/w1_slave" dont le nom est l’identifiant de la sonde se transforme en "28-380000000000" et on ne peut plus rien lire puisque ça ne correspond plus à rien.(même chose pour les deux autres répertoire relatif au deux autres sondes)
Si je reboote le RPi, ça fonctionne pendant quelques lectures et le changement de nom intervient intempestivement.
Le 1Wire mesure un bonne vingtaine de mètre : Faut-il revoir la valeur de la résistance (4,7k) ?
J'ai lu sur un forum que "ça arrive...." sans explication.....
Si quelqu'un à des info, je suis preneur !!!!!
Merci
Code :
[== C++ ==]
def lireFichierTemperature(Fichier): # lecture
f = open(Fichier, 'r')
lignes = f.readlines()
f.close()
return lignes
def LireTemperature(Capteur): # extraction de la temperature
lignes = lireFichierTemperature(Capteur)
while lignes[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lignes = lireFichierTemperature(Capteur)
equals_pos = lignes[1].find('t=')
if equals_pos != -1:
temp_string = lignes[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
lcd.set_cursor(0,3)
lcd.message("In")
temp = str(LireTemperature("/sys/bus/w1/devices/28-0415915c80ff/w1_slave"))
lcd.message(temp[0:-2])
lcd.set_cursor(7,3)
temp = str(LireTemperature("/sys/bus/w1/devices/28-800000038a0d/w1_slave"))
lcd.message("Ex")
lcd.message(temp[0:-2])
lcd.set_cursor(14,3)
temp = str(LireTemperature("/sys/bus/w1/devices/28-0415916583ff/w1_slave"))
lcd.message("Pi")
lcd.message(temp[0:-2])