Mini-Projecto · Sistema de monitorização e controlo com microcontrolador
Contexto
A "AgroTech Vale", uma pequena empresa de equipamentos agrícolas, quer um protótipo de sistema de monitorização e controlo ambiental para uma pequena estufa: ler temperatura e humidade, acionar automaticamente uma ventoinha e uma rega, e permitir que o responsável veja o estado e ajuste parâmetros. Foste contratado/a, num departamento de assistência técnica, para desenvolver o sistema completo, do circuito ao código, com base num microcontrolador.
Trabalhas individualmente ou a pares, e entregas o sistema físico a funcionar mais um dossiê técnico (esquema, código comentado, registos de teste e decisões tomadas).
Requisitos
Funcionais
- Leitura de pelo menos um sensor analógico (temperatura ou humidade) e um sensor digital (ex.: fim de curso, botão de emergência).
- Controlo automático de pelo menos um atuador por PWM (ventoinha ou motor) e um atuador por relé (ex.: bomba de rega ou resistência de aquecimento).
- Lógica de controlo com histerese, evitando oscilações do atuador junto do valor limiar.
- Comunicação série (UART) para diagnóstico, com mensagens de estado enviadas para o monitor série.
- Interface de utilizador local: pelo menos 1 botão e 1 display (LED, 7 segmentos, LCD ou OLED) mostrando o estado do sistema.
- Uso de pelo menos uma interrupção (externa ou de timer) para um evento crítico (ex.: botão de emergência).
- Tratamento de debouncing em qualquer botão físico usado.
Não-funcionais
- Circuito com proteção adequada (resistências limitadoras, díodo de roda livre no relé, condensadores de desacoplamento).
- Código organizado em funções, comentado, com tipos de dados escolhidos de forma consciente.
- Esquema do circuito desenhado e simulado em software antes da montagem física.
- Registo de testes por bloco (alimentação, sensores, atuadores, comunicação) antes do teste do sistema completo.
Fases
Fase 1 · Requisitos e esboço de solução (2h) Levantar os requisitos concretos do sistema (que sensores, que atuadores, que interface). Esboçar 2 alternativas de arquitetura e escolher uma, com base nos critérios de seleção do microcontrolador.
Fase 2 · Seleção de hardware (2h) Escolher o microcontrolador, sensores, atuadores e componentes de interface, consultando datasheets. Justificar as escolhas por escrito.
Fase 3 · Esquema e simulação (3h) Desenhar o esquema do circuito completo (alimentação, sensores, atuadores com interface de potência, display, botões) em software de desenho e simulação. Validar a lógica antes de montar.
Fase 4 · Programação base (4h) Implementar em C/C++: leitura de entradas (digital com debounce, analógica), controlo de saídas (PWM, relé), estrutura setup()/loop(), comunicação série de diagnóstico.
Fase 5 · Controlo, interrupções e interface (4h) Implementar a lógica de controlo com histerese, pelo menos uma interrupção, e a interface de utilizador local (botão + display).
Fase 6 · Montagem, testes e medições (3h) Montar o circuito físico. Testar cada bloco isoladamente (alimentação com multímetro, sinais dinâmicos com osciloscópio), depois o sistema completo. Registar os resultados.
Fase 7 · Apresentação (2h) Demonstrar o sistema a funcionar à turma, explicando as decisões de hardware, o código e os testes realizados.
Critérios de avaliação
| Critério | Peso |
|---|---|
| Requisitos, esboço e seleção de hardware justificada | 10% |
| Esquema e simulação do circuito | 15% |
| Código: leitura de entradas e controlo de saídas | 20% |
| Lógica de controlo, interrupções e interface de utilizador | 20% |
| Montagem, testes por bloco e medições (multímetro/osciloscópio) | 20% |
| Dossiê técnico e apresentação | 15% |
Erros comuns
- Saltar a simulação e ir direto à montagem física, perdendo tempo a corrigir erros evitáveis.
- Ligar um sensor ou atuador diretamente a um pino sem circuito de interface, arriscando danificar o microcontrolador.
- Esquecer o debouncing e obter contagens ou ações duplicadas nos botões.
- Um único limiar sem histerese, fazendo o atuador oscilar rapidamente.
- ISR longa, com
delay()ou lógica pesada, bloqueando o sistema. - Testar só o sistema completo no fim, sem validar cada bloco isoladamente primeiro.
- Esquecer o díodo de roda livre no circuito do relé.
Bónus (opcional)
- Adicionar comunicação Bluetooth ou Wi-Fi, com uma app simples ou página web a mostrar o estado do sistema remotamente.
- Guardar em EEPROM os limiares configurados pelo utilizador, para sobreviverem a um corte de energia.
- Desenhar o layout de PCB do circuito, além do esquema.
- Adicionar um segundo sensor e combinar as leituras numa decisão de controlo mais elaborada (ex.: média móvel).
Reflexão
No dossiê final, responde: porque é que a fase de simulação, antes da montagem física, poupa tempo e material? E descreve, com um exemplo concreto do teu projeto, uma situação em que a interrupção usada foi claramente melhor do que polling, justificando com o comportamento observado no sistema.