[ Foro de Python ]

Tiempo

23-May-2020 23:09
Eduardo MR
0 Respuestas

Hola buenas a todos, soy recien iniciado en Python 2.7
estoy usando una raspi y le he conectado un sensor barometrico con temperatura.  Y un lCD i2c el cual actualiza los datos en el bucle.
Ahora he designado una variable que se activa cuando la temperatura supera los 26 grados y envia un email cuando esto ocurre.
Al enviarse el email para no sobre cargar la bandeja de entrada del correo quiero que lo envie cada vez que la variable "var = 1" cada minuto por ejemplo.
El problema es que añadir el time.sleep dentro del loop me pausa el refresco del display.
Hay alguna forma de hacer un loop en paralelo para que cada vez que vea el valor de la variable "var = 1" espere 1min sin modificar el loop de refresco del display?

Aqui va el codigo.

while True:
       mylcd.lcd_display_string('Temp = {0:0.2f} *C    '.format(sensor.read_temperature()) + str(var),1)
       mylcd.lcd_display_string('Pres = {0:0.2f} Pa'.format(sensor.read_pressure()),2)
       mylcd.lcd_display_string('Altitude = {0:0.2f} m'.format(sensor.read_altitude()),3)
#       mylcd.lcd_display_string('Refresco = ' + repr(count), 4)
       count=count+1
       if sensor.read_temperature() >= 26:
               mylcd.lcd_display_string('Atencion Temp (>26) ', 4)
               if var == 0:
                       var = 1
                       server.login(msg['From'], password)
                       server.sendmail(msg['From'], msg['To'], msg.as_string())
                       server.quit()
                       print "successfully sent email to %s:" % (msg['To'])
               else:
                       pass
       else:
               mylcd.lcd_display_string('         OK         ', 4)
               var= 0




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...