Pular para conteúdo

Temas sugeridos

Todos os temas abaixo partem do esqueleto em projetos/ (interface ISensor-like, ControladorX, testes no host) — adapte os nomes e a regra de decisão para o seu domínio.

Estufa automatizada

Sensor de umidade do solo decide quando ligar uma bomba d'água (LED simulando a bomba). Classes sugeridas: ISensorUmidade, ControladorIrrigacao (com histerese, igual ao exemplo do capítulo 15), um HistoricoRegas (vector guardando quando cada rega aconteceu).

Semáforo com sensor de presença

Semáforo (3 LEDs) que muda de tempo de verde conforme um sensor detecta veículos esperando. Boa oportunidade para uma máquina de estados (enum class Fase { Verde, Amarelo, Vermelho }) e um map contando quantas vezes cada fase foi ativada.

Monitor de consumo com histórico em CSV

Sensor de corrente/tensão simulado (potenciômetro) registrando leituras; a cada N leituras, grava um resumo num formato CSV em memória (reaproveitando a lógica de parseia/monta_csv da Lista 07). Container natural: vector<Leitura>.

Alarme multi-sensor com máquina de estados

Vários sensores (presença, temperatura, fumaça simulados por potenciômetros/botões) alimentando uma máquina de estados (Desarmado, Armado, Disparado). Boa oportunidade para vector<std::unique_ptr<ISensor>> — uma coleção polimórfica de verdade.

Datalogger

Simplesmente registra leituras de um ou mais sensores ao longo do tempo, com estatísticas (mínimo, máximo, média — reaproveitando ideias do capítulo 9). Pode evoluir para gravar/ler de arquivo real (Unidade 3) além da versão testável em memória.

Jogo simples em display/LEDs

Menos "sensor decide ação automática", mais interativo: um botão controla algo (por exemplo, um jogo de reação — acender um LED aleatório e medir o tempo até o jogador apertar o botão certo). Boa oportunidade para explorar retorno bool com resultado por referência (jogada válida ou não) e uma classe Placar.


Nenhum tema é obrigatório — use como ponto de partida ou inspiração. O que importa são os requisitos mínimos, não o tema em si.