Python - Bucle hasta que sensor dht22 de temperatura

   
Vista:

Bucle hasta que sensor dht22 de temperatura

Publicado por Rubén (2 intervenciones) el 19/08/2016 18:04:56
Hola!

Estoy haciendo una gráfica con matplotlib para registrar la temperatura que me da el sensor dht22 a lo largo del día, cada hora, pero el sensor a veces da un fallo conocido y no da la lectura por lo que la gráfica se va al traste...

Entonces necesito que este código que es el que lee la temperatura del sensor:

1
2
3
4
5
6
temperature = Adafruit_DHT.read_retry(22, 4)
 
if temperature is not None:
    temp = '{0:0.1f}'.format(temperature)
else:
    print('ha fallado la lectura de temperatura')


Se repita hasta que de la temperatura correctamente y no salte al else, puede estar todo un dia sin dar el error y luego de buenas a primeras darlo unas cuantas veces seguidas, y como digo es un error conocido del sensor.

He probado con while, con elif pero no se si lo estoy haciendo de forma correcta, o hay una mejor forma.

Muchas gracias y saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Bucle hasta que sensor dht22 de temperatura

Publicado por Rubén (2 intervenciones) el 22/08/2016 17:01:13
Bueno, al final lo solucione así:

1
2
3
4
5
6
7
8
9
10
11
12
13
####----------------   Funcion de lectura de temperatura en bucle   ------------------###
def lectura():
    global temperature
    global temp
 
    humidity, temperature = Adafruit_DHT.read_retry(22, 4) #
    if temperature is not None:                             #
        temp = '{0:0.1f}'.format(temperature)                # Obtener temperatura.
    else:                                                   #
        lectura()  #  Si falla la primera lectura vuelve a ejecutar la funcion hasta que sea correcta.
lectura()
 
####--------------------------------   fin de la funcion   --------------------------##
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar