DEV Community

Cover image for Como desenvolvi meu TCC: um vaso inteligente para monitoramento e irrigação automática de plantas
Camila Rody
Camila Rody

Posted on

Como desenvolvi meu TCC: um vaso inteligente para monitoramento e irrigação automática de plantas

Como Desenvolvi Meu TCC de Sistemas de Informação: Um Vaso Inteligente para Monitoramento e Irrigação Automática de Plantas

Durante minha graduação em Sistemas de Informação, tive a oportunidade de desenvolver um projeto que uniu algumas das áreas que mais gosto dentro da tecnologia: desenvolvimento web, arquitetura de software, Internet das Coisas (IoT), automação e experiência do usuário.

O resultado foi o E-CO Vaso Inteligente, uma solução capaz de monitorar a umidade do solo, controlar automaticamente a irrigação de plantas, registrar históricos, capturar imagens e disponibilizar todas essas informações através de uma aplicação web acessível pelo usuário. O projeto foi desenvolvido como Trabalho de Conclusão de Curso e envolveu desde a modelagem dos dados até a construção do hardware.

Neste artigo quero compartilhar não apenas os resultados, mas também o passo a passo utilizado para desenvolver a solução e os principais aprendizados adquiridos durante a construção.

https://docs.google.com/document/d/1lu6QJOUfjkW7H4vYd9bw7RpI84cVGMF6/edit?usp=drive_link&ouid=114766962307329124788&rtpof=true&sd=true


O Problema

Muitas pessoas possuem plantas em casa, mas nem sempre conseguem manter uma rotina adequada de irrigação.

O excesso de água pode ser tão prejudicial quanto a falta dela.

Além disso, viagens, rotina de trabalho e falta de conhecimento sobre cuidados específicos acabam impactando diretamente a saúde das plantas.

A proposta do projeto era criar um sistema capaz de:

  • Monitorar a umidade do solo
  • Automatizar a irrigação
  • Registrar histórico de atividades
  • Permitir controle remoto
  • Capturar imagens da planta
  • Notificar o usuário sobre eventos importantes

Arquitetura Geral da Solução

O sistema foi dividido em quatro grandes camadas:

Hardware

Responsável pela coleta de informações e acionamento dos componentes físicos.

Principais componentes:

  • NodeMCU ESP8266
  • Sensor de umidade
  • Bomba d'água
  • Válvula solenóide
  • Raspberry Pi para captura de imagens
  • Fonte de alimentação

O NodeMCU realiza a leitura constante dos sensores e envia os dados para o backend.


Backend

O backend foi desenvolvido utilizando Laravel.

Sua responsabilidade era:

  • Receber dados dos sensores
  • Processar regras de negócio
  • Armazenar informações
  • Gerenciar irrigação
  • Expor APIs para o frontend

Uma das partes mais interessantes da arquitetura foi a criação de um processo responsável por verificar periodicamente a umidade e tomar decisões automáticas sobre a irrigação das plantas.


Banco de Dados

Foi utilizado MariaDB, embora qualquer banco relacional compatível com SQL pudesse atender aos requisitos do projeto.

A escolha foi motivada pela aderência aos princípios ACID, garantindo consistência dos dados mesmo diante de múltiplas operações simultâneas.

As principais entidades modeladas foram:

  • Usuário
  • Planta
  • Indicadores
  • Logs
  • Imagens
  • Irrigação

Toda a modelagem foi documentada através de UML e diagramas entidade-relacionamento.


Construindo o Frontend

O frontend foi desenvolvido com Vue.js.

A ideia era criar uma aplicação desacoplada do backend para facilitar manutenção e evolução futura.

A stack utilizada foi:

  • Vue.js
  • TailwindCSS
  • Axios
  • Yarn

O Vue foi responsável pela camada reativa da interface.

O TailwindCSS permitiu construir layouts responsivos e manter consistência visual.

Já o Axios foi utilizado para consumir as APIs disponibilizadas pelo backend.


Construindo o Dashboard

O dashboard era o principal ponto de interação do usuário.

Nele eram exibidos:

  • Umidade atual
  • Histórico da planta
  • Gráficos de acompanhamento
  • Controle da bomba d'água
  • Controle da válvula solenóide
  • Configuração de horários de irrigação

Além disso, o sistema também integrava dados climáticos utilizando geolocalização para complementar as informações apresentadas ao usuário.


Funcionalidades Implementadas

Ao longo do desenvolvimento foram implementadas funcionalidades como:

Ativação do vaso

O usuário informava um código de ativação presente no dispositivo físico para associá-lo à aplicação.

Histórico de atividades

Todas as ações realizadas pelo hardware eram registradas.

Exemplos:

  • Leituras de umidade
  • Temperatura
  • Acionamentos da bomba
  • Alterações de configuração

Galeria de imagens

As imagens capturadas pelo Raspberry Pi eram armazenadas e disponibilizadas ao usuário através da aplicação web.

Configuração de irrigação

O usuário podia personalizar horários, quantidade de água e comportamento geral da automação.

Notificações

O sistema monitorava constantemente o nível de água e notificava o usuário quando necessário.


Modelando Antes de Programar

Um dos maiores aprendizados durante o desenvolvimento foi perceber o valor da modelagem.

Antes de escrever boa parte do código, foram construídos:

  • Casos de uso
  • Diagramas de classes
  • Diagramas de estado
  • Modelo entidade-relacionamento

Essa etapa ajudou a reduzir retrabalho e permitiu visualizar melhor as interações entre hardware, backend e frontend.

Hoje, trabalhando profissionalmente com desenvolvimento de software, continuo aplicando muitos desses conceitos aprendidos durante o TCC.


Principais Desafios

Nem tudo funcionou na primeira tentativa.

Um dos desafios mais interessantes ocorreu durante a construção do hardware.

Inicialmente foi utilizada uma abordagem baseada em relés para controlar os componentes eletrônicos, porém limitações relacionadas à alimentação e arquitetura do circuito levaram à busca de alternativas.

Posteriormente foram realizados testes utilizando transistores, o que permitiu um controle mais eficiente dos componentes e trouxe novas possibilidades para o projeto.

Esses experimentos acabaram gerando um aprendizado muito maior sobre eletrônica embarcada do que eu imaginava quando iniciei o trabalho.


O Que Eu Aprendi Com Esse Projeto

Este TCC me ensinou algo que levo até hoje para minha carreira:

Software raramente existe sozinho.

Projetos reais envolvem integração entre múltiplos sistemas, dispositivos, protocolos, bancos de dados, APIs e usuários.

Construir uma solução completa, desde o hardware até a interface final, mudou completamente minha visão sobre arquitetura de software e desenvolvimento de produtos.

Mais do que um projeto acadêmico, esse trabalho foi minha primeira experiência desenvolvendo um ecossistema tecnológico completo.


TCC Completo

Para quem quiser explorar a modelagem, arquitetura, diagramas, fluxos, testes realizados e toda a documentação acadêmica:

https://docs.google.com/document/d/1lu6QJOUfjkW7H4vYd9bw7RpI84cVGMF6/edit?usp=drive_link&ouid=114766962307329124788&rtpof=true&sd=true

Top comments (0)