Aller au contenu

Correction exercice 05

from sense_emu import SenseHat
from time import sleep

sense = SenseHat()

modes = ["temperature", "humidity", "pressure"]
mode = 0

temp_max = 105.00
temp_min = -30.00

while True:

    for event in sense.stick.get_events():

        if event.action == "pressed":

            if event.direction == "right":
                mode += 1

            elif event.direction == "left":
                mode -= 1

            mode = mode % len(modes)

    # Affichage
    match modes[mode]:

        case "temperature":

            temperature = sense.get_temperature()

            print(f"Température : {temperature:.2f} °C")

            # Calcul du nombre de LED
            nb_leds = int(max(0, min(8,(temperature - temp_min)/(temp_max - temp_min) * 8)))

            pixels = []

            for y in range(8):
                for x in range(8):

                    if x == 0 and y >= 8 - nb_leds:
                        pixels.append((255, 0, 0))
                    else:
                        pixels.append((0, 0, 0))

            sense.set_pixels(pixels)

        case "humidity":
            humidity = sense.get_humidity()
            print(f"Humidité : {humidity:.2f} %")
            sense.show_letter("H")

        case "pressure":
            pressure = sense.get_pressure()
            print(f"Pression : {pressure:.2f} hPa")
            sense.show_letter("P")

    sleep(0.1)