Beispiel #1
0
    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