clue_display[0].text = " Temp:{:.1f}C".format(temperature) clue_display[2].text = " Humi:{:.1f}%".format(humidity) #clue_display[3].text = " Pres:{:.1f}kPa".format(pressure/10) clue_display[4].text = " Bar:{:.1f}kPa".format(slp / 10) if temperature < min_temperature: clue_display[0].color = clue.BLUE alarm = True elif temperature > max_temperature: clue_display[0].color = clue.RED alarm = True else: clue_display[0].color = clue.WHITE if humidity < min_humidity: clue_display[2].color = clue.BLUE alarm = True elif humidity > max_humidity: clue_display[2].color = clue.RED alarm = True else: clue_display[2].color = clue.WHITE clue_display.show() if alarm and alarm_enable: clue.start_tone(2000) else: clue.stop_tone()
if neopixel_values is not None: start = neopixel_values.start if start > NEOPIXEL_BUF_LENGTH: continue data = neopixel_values.data data_len = min(len(data), NEOPIXEL_BUF_LENGTH - start) neopixel_buf[start : start + data_len] = data[:data_len] if neopixel_values.write_now: neopixel_write.neopixel_write(neopixel_out, neopixel_buf) if now_msecs - temp_last_update >= temp_svc.measurement_period: temp_svc.temperature = clue.temperature temp_last_update = now_msecs tone = tone_svc.tone if tone is not None: freq, duration_msecs = tone if freq != 0: if duration_msecs != 0: # Note that this blocks. Alternatively we could # use now_msecs to time a tone in a non-blocking # way, but then the other updates might make the # tone interval less consistent. clue.play_tone(freq, duration_msecs / 1000) else: clue.stop_tone() clue.start_tone(freq) else: clue.stop_tone() last_tone = tone