1
resposta

[RESPOSTA]

import asyncio
import random

async def leitura_sensor(sen, tempo):
    mostrador = ""
    while True:
        await asyncio.sleep(tempo)
        if sen["sensor"] == "Temperatura":
            temperatura = random.randint(sen["valores"][0], sen["valores"][1])
            mostrador = f"[{tempo}s] {sen["sensor"]}: {temperatura}ºC"
        elif sen["sensor"] == "Umidade":
            umidade = random.randint(sen["valores"][0], sen["valores"][1])
            mostrador = f"[{tempo}s] {sen["sensor"]}: {umidade}%"
        else:
            qualidade = random.choice(sen["valores"])
            mostrador = f"[{tempo}s] {sen["sensor"]}: {qualidade}"

        print(mostrador)

async def main():
    sensores = [
        {"sensor": "Temperatura", "valores": [20, 30]},
        {"sensor": "Umidade", "valores": [50, 70]},
        {"sensor": "Qualidade do ar", "valores": ["Ruim", "Regular", "Boa"]}

    ]
    tempo = [2, 3, 5]
    tarefas = [asyncio.create_task(leitura_sensor(sensores[t], tempo[t])) for t in range(3)]
    await asyncio.gather(*tarefas)

asyncio.run(main())
1 resposta

Olá, Maurício! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções assíncronas com asyncio para simular leituras periódicas de sensores, utilizou muito bem o random para gerar dados dinâmicos e ainda compreendeu a importância do controle de fluxo assíncrono para executar múltiplas tarefas simultaneamente de forma eficiente.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!