Desafio maker 05: Pausar processamento (ESP32)

IoT | Pausar processamento | desafio maker | ordenar um array | caixa dagua | blink sem condicionais

Imagine que devemos pausar processamento; temos 4 tasks, cada uma cumpre uma tarefa a seu tempo:

  • task1 – abrir vazão para entrada de leite por 10 segundos.
  • task2 – abrir vazão para entrada de mistura para bolo por 12 segundos.
  • task3 – bater a mistura por 30 segundos.
  • task4 – abrir vazão de saída da mistura por 30 segundos.
  • Reinicia o processo.

Se usa ESP32 e tasks, essa está fácil, hum? Se ainda não usa tasks, pode começar por esse outro artigo.

O desafio – Pausar processamento

O desafio não é a rotina em si, mas o seguinte: há um botão que, quando pulsado, deve pausar o processo. Não pode fazer polling para saber qual tarefa está em execução; não pode colocar a MCU pra dormir; não pode criar uma condicional para servir de flag dentro das tasks.

Ah! Não pode usar queue, nem mutex, nem semáforos.

Referências

Pausar processamento é uma tarefa simples, mas tem formas “mais” ou “menos” eficientes. Se precisar de referências, leia os primeiros artigos sobre ESP32 aqui no blog, clicando no link a seguir e depois no rodapé, clique na última página. Tudo o que precisa para executar esse desafio está descrito nos artigos iniciais sobre ESP32.

Utilize sua IDE preferida, mas recomendo o VS Code com PlatformIO, que lhe dará mais flexibilidade no desenvolvimento.

Definições

Para que tenhamos um pouco mais de sintonia, recomendo que nomeie as tasks assim:

task1 – para task1

task2 – para a mistura de bolo

task3 – para bater a mistura

task4 – para a saída da massa pronta

Dica

A solução estará na declaração da task. Mais fácil que isso só acender um LED usando programação em blocos, hum?

O botão pode ser monitorado por polling ou interrupção, faça sua escolha.

Se precisar baixar o VS Code, pegue-o no site oficial através de link.

Para instalar o PlatformIO, clique no quadrado fragmentado do menu vertical esquerdo (segundo, de baixo para cima) e busque pela palavra chave. Após instalar, reinicie a IDE e abrir-se-á o home do PlatformIO

Até a resposta do desafio!