Sonde DS18B20 LED et python
Modérateur : Francois
Sonde DS18B20 LED et python
Hoyé,
J'ai perdu patience de chercher sur le net alors je compte sur vous pour :
- Je souhaiterais compléter la manip de lire une température, ça j'ai compris.
Par contre maintenant je souhaiterais rajouter un critère comme une plage de donnée par exemple. C'est à dire, vert si la température est supérieure à 20°C et rouge si c'est en dessous, le tout avec des LED évidement.
Si possible en français et avec un schéma
- Autre question, sur le net il y'a plein de façon de faire afficher la T°C en ligne et consultable sur tablette/iphone, etc.
Seulement il date un peu et son plus ou moins facile et exploitable. Lequel est le mieux et à la portée de débutant ?
Merci pour vos contributions.
J'ai perdu patience de chercher sur le net alors je compte sur vous pour :
- Je souhaiterais compléter la manip de lire une température, ça j'ai compris.
Par contre maintenant je souhaiterais rajouter un critère comme une plage de donnée par exemple. C'est à dire, vert si la température est supérieure à 20°C et rouge si c'est en dessous, le tout avec des LED évidement.
Si possible en français et avec un schéma
- Autre question, sur le net il y'a plein de façon de faire afficher la T°C en ligne et consultable sur tablette/iphone, etc.
Seulement il date un peu et son plus ou moins facile et exploitable. Lequel est le mieux et à la portée de débutant ?
Merci pour vos contributions.
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
Re: Sonde DS18B20 LED et python
Bonsoir,
Avec quelques ligne de if, else et GPIO.output, tu devrais pouvoir faire quelques choses rapidement.
Pour lire la sonde en code python :
Avec quelques ligne de if, else et GPIO.output, tu devrais pouvoir faire quelques choses rapidement.
Pour lire la sonde en code python :
Code : Tout sélectionner
system('modprobe w1-gpio')
system('modprobe w1-therm')
base_dir = '/sys/bus/w1/devices/'
sonde = "/sys/bus/w1/devices/w1_bus_master1/n° de la sonde/w1_slave"
Ph.
Re: Sonde DS18B20 LED et python
Oyé,
Merci pour tes infos mais je suis désolé, étant débutant dans python ne ne comprend pas ce que tu me dit.
Merci pour tes infos mais je suis désolé, étant débutant dans python ne ne comprend pas ce que tu me dit.
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
Re: Sonde DS18B20 LED et python
Bonjour,
Pour mettre en service ta sonde, visite : http://www.framboise314.fr/mesure-de-te ... pberry-pi/ ou encore http://www.domolio.fr/monitorer-la-temp ... bien-fait/
Tu as tout à tas de tuto sur le net te permettant de la mettre en oeuvre.
Pour piloter les LED, tu auras besoins de la laibrairie RPi.GPIO à l'adresse : https://pypi.python.org/pypi/RPi.GPIO
Je te conseille de parcourir le site et d'autres, ils te donnerons tout un tas d'informations indispensables pour débuter.
Amuse toi bien,
Pour mettre en service ta sonde, visite : http://www.framboise314.fr/mesure-de-te ... pberry-pi/ ou encore http://www.domolio.fr/monitorer-la-temp ... bien-fait/
Tu as tout à tas de tuto sur le net te permettant de la mettre en oeuvre.
Pour piloter les LED, tu auras besoins de la laibrairie RPi.GPIO à l'adresse : https://pypi.python.org/pypi/RPi.GPIO
Je te conseille de parcourir le site et d'autres, ils te donnerons tout un tas d'informations indispensables pour débuter.
Amuse toi bien,
Ph.
Re: Sonde DS18B20 LED et python
Bonsoir,
Merci pour ces infos. j'arrive à faire fonctionner l'un et l'autre indépendamment.
Par contre maintenant je souhaiterais les faire marcher ensemble avec les critères dont j'ai parlé un peu plus haut.
Un autre lien à me proposer, exemple ou un code en python ?
En te remerciant.
Merci pour ces infos. j'arrive à faire fonctionner l'un et l'autre indépendamment.
Par contre maintenant je souhaiterais les faire marcher ensemble avec les critères dont j'ai parlé un peu plus haut.
Un autre lien à me proposer, exemple ou un code en python ?
En te remerciant.
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Re: Sonde DS18B20 LED et python
Salut,
Pour la gestion de ma chaudière, voici comment je récupère l'info de ma sonde :
Ensuite avec la valeur temp qui est arrondi a 2 chiffres apres la virgules, je peu faire des actions comme :
Si la température est supérieure ou égale à 20°C qui sera ma consigne, j'allume une LED verte, si je suis inférieur a la consigne, j'allume la led Rouge, ensuite en attend 30sec et on recommence.
On considère la led verte cablé sur le GPIO 17 et la rouge sur le GPIO 18 ( BCM )
( Le code n'est pas complet, et il faut évidement changé le numéro de sonde ! )
J'ai rajouter le else: qui n'est pas obligatoire mais qui si jamais pour une raison x ou y la valeur de la sonde n'est pas numérique ( sonde HS par exemple ? ) les 2 LED s'allument.
Pour la gestion de ma chaudière, voici comment je récupère l'info de ma sonde :
Code : Tout sélectionner
def temperature():
global temp
tfile = open("/sys/bus/w1/devices/28-00042c77e5ff/w1_slave")
text = tfile.read()
tfile.close()
temperaturedata = text.split("\n")[1].split(" ")[9]
temperature = float(temperaturedata[2:])
temp = round(temperature / 1000, 2)
Si la température est supérieure ou égale à 20°C qui sera ma consigne, j'allume une LED verte, si je suis inférieur a la consigne, j'allume la led Rouge, ensuite en attend 30sec et on recommence.
On considère la led verte cablé sur le GPIO 17 et la rouge sur le GPIO 18 ( BCM )
( Le code n'est pas complet, et il faut évidement changé le numéro de sonde ! )
Code : Tout sélectionner
tfile = open("/sys/bus/w1/devices/28-00042c77e5ff/w1_slave")
text = tfile.read()
tfile.close()
temperaturedata = text.split("\n")[1].split(" ")[9]
temperature = float(temperaturedata[2:])
temp = round(temperature / 1000, 2)
consigne = 20
LEDVERTE = 17
LEDROUGE =18
while True:
if temp >= consigne:
GPIO.output(LEDVERTE,GPIO.HIGH)
GPIO.output(LEDROUGE,GPIO.LOW)
elif temp < consigne:
GPIO.output(LEDVERTE,GPIO.LOW)
GPIO.output(LEDROUGE,GPIO.HIGH)
else:
GPIO.output(LEDVERTE,GPIO.HIGH)
GPIO.output(LEDROUGE,GPIO.HIGH)
time.sleep(30)
Re: Sonde DS18B20 LED et python
Pétard c'est génial ton truc là avec ta chaudière... Je pensais faire la même chose avec la mienne quant mes connaissances se seraient améliorés. Y'a moyen d'en savoir plus ? C'est la marque Perge.
Je vais regarder tour ça prochainement car je suis en vacance et j'ai pas emené mes Rpi... mais dans l'idée c'est ça... Merci
Je vais regarder tour ça prochainement car je suis en vacance et j'ai pas emené mes Rpi... mais dans l'idée c'est ça... Merci
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
- dbrion0606
- Raspinaute
- Messages : 164
- Enregistré le : ven. 30 janv. 2015 15:51
Re: Sonde DS18B20 LED et python
remplacé par le suivant
Modifié en dernier par dbrion0606 le mer. 4 mars 2015 10:57, modifié 1 fois.
- dbrion0606
- Raspinaute
- Messages : 164
- Enregistré le : ven. 30 janv. 2015 15:51
Re: Sonde DS18B20 LED et python
Excusez moi d'être pédant, mais une erreur serait "mieux" gérée par une exception (un bloc "try" attrape toutes les erreurs, et les redirige vers un traitement spécifique); ceci mènerait au code suivant (testé sur PC; les instructions spécifiques au RPI ont été commentées et remplacées par des print)
Code : Tout sélectionner
consigne = 20
LEDVERTE = 17
LEDROUGE =18
def froid ():
# GPIO.output(LEDVERTE,GPIO.LOW)
# GPIO.output(LEDROUGE,GPIO.HIGH)
print("froid")
def chaud ():
print ("chaud")
# GPIO.output(LEDVERTE,GPIO.HIGH)
# GPIO.output(LEDROUGE,GPIO.LOW)
def panic ():
print ("panic") # les deux leds s'allument si anomalie
# GPIO.output(LEDVERTE,GPIO.HIGH)
# GPIO.output(LEDROUGE,GPIO.HIGH)
#jeu d'essais
temperaturedata="b:21000" # -> chaud
temperaturedata="a:12000"
temperaturedata="t:18000" # froid
temperaturedata="zzzzzz" # valeur aberrante -> panic
try :
temperature=float(temperaturedata[2:])
print (temperature)
temp = round(temperature / 1000, 2)
# while True:
if temp >= consigne:
chaud()
elif temp < consigne:
froid()
else :
panic()
except:
panic()
Re: Sonde DS18B20 LED et python
Bonjour,
J'ai essayé de faire un mix de tout ça mais que néni.
J'ai testé la sonde et les LED indépendamment et tout marche.
Le prog plante vers la fin sur except et si j'isole cette ligne il attend une fin du prog sur la ligne 78 alors qu'il n'y a rien...
Un p'tit coup de pouce STP merci.
J'ai essayé de faire un mix de tout ça mais que néni.
J'ai testé la sonde et les LED indépendamment et tout marche.
Le prog plante vers la fin sur except et si j'isole cette ligne il attend une fin du prog sur la ligne 78 alors qu'il n'y a rien...
Code : Tout sélectionner
import os
import glob
import time
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28-000006a3375b')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 + 32.0
return temp_c, temp_f
while True:
print(read_temp())
time.sleep(1)
def temperature():
global temp
tfile = open("/sys/bus/w1/devices/28-000006a3375b/w1_slave")
text = tfile.read()
tfile.close()
temperaturedata = text.split("\n")[1].split(" ")[9]
temperature = float(temperaturedata[2:])
temp = round(temperature / 1000, 2)
CONSIGNE = 20
LEDVERTE = 18
LEDROUGE = 17
def froid ():
# GPIO.output(LEDVERTE,GPIO.LOW)
# GPIO.output(LEDROUGE,GPIO.HIGH)
print("froid")
def chaud ():
print ("chaud")
# GPIO.output(LEDVERTE,GPIO.HIGH)
# GPIO.output(LEDROUGE,GPIO.LOW)
def panic ():
print ("panic") # les deux leds s'allument si anomalie
# GPIO.output(LEDVERTE,GPIO.HIGH)
# GPIO.output(LEDROUGE,GPIO.HIGH)
# GPIO.output(LEDVERTE,GPIO.HIGH)
# GPIO.output(LEDROUGE,GPIO.HIGH)
#jeu d'essais
temperaturedata="b:21000" # -> chaud
temperaturedata="a:12000"
temperaturedata="t:18000" # froid
temperaturedata="zzzzzz" # valeur aberrante -> panic
try :
temperature=float(temperaturedata[2:])
print (temperature)
temp = round(temperature / 1000, 2)
# while True:
if temp >= consigne:
chaud()
elif temp < consigne:
froid()
else :
panic()
except :
panic()
Raspberry Pi 2 et KODI + HD
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6
Raspberry B et Recalbox
Raspberryi B+ expérience électronique Lego et Python
Raspicam
Freebox V6