Menu
Baixar currículo
Todos os projetos

TCCMonitor de saúde de plantas com TinyML

FloraSense

Nós ESP32 enviam dados de clima e solo via MQTT, um modelo TensorFlow Lite Micro avalia a saúde da planta no próprio dispositivo e a API Gemini identifica doenças em fotos das folhas, tudo em um dashboard web em tempo real.

Papel
TCC · ponta a ponta
Ano
2026
Tecnologias
  • C++
  • Python
  • TensorFlow
  • TFLite Micro
  • Gemini API
  • MQTT
  • React
  • TypeScript
  • Node.js
  • MongoDB
  • Docker
Links
Ver código no GitHub(abre em nova aba)
  • 2 KB

    de tensor arena no ESP32

  • 4

    canais de sensores por nó

  • Tempo real

    pipeline MQTT → WebSocket

O problema

Plantas adoecem em silêncio. Quando as folhas amarelam, a causa (falta de água, excesso de calor, um fungo) geralmente já está agindo há dias. Monitores comerciais apenas registram números brutos ou mandam tudo para a nuvem, o que é caro e lento em conexões instáveis.

O FloraSense parte de uma pergunta simples: quanta inteligência cabe em um microcontrolador de 5 dólares ao lado da planta?

Arquitetura

O sistema é dividido em três camadas, cada uma com uma única responsabilidade:

  • Borda (ESP32 + C++). Cada nó lê um DHT22 (temperatura e umidade), um sensor de luminosidade BH1750 e um sensor de umidade do solo. As leituras são padronizadas com as mesmas estatísticas do treino e uma pequena rede neural rodando em TensorFlow Lite for Microcontrollers, dentro de uma tensor arena de 2 KB, as transforma em uma nota de saúde no próprio dispositivo, então o nó continua útil mesmo sem rede.
  • Transporte (MQTT). Os nós publicam leituras e notas compactas em um broker MQTT. Um serviço Node.js assina os tópicos, persiste a série temporal no MongoDB e envia atualizações ao vivo para o navegador via WebSockets.
  • Análise (React + Gemini). O dashboard em TypeScript mostra gráficos ao vivo e históricos de cada planta. É possível enviar uma foto da folha para a API Gemini, que identifica doenças e sugere cuidados.

O que eu construí

  • O firmware do ESP32: leitura dos sensores, conectividade Wi-Fi/MQTT e inferência com TFLite Micro.
  • O pipeline de ML em Jupyter (pandas, scikit-learn, TensorFlow/Keras): exploração, pré-processamento, treino e exportação para um modelo .tflite embutido no firmware como array C.
  • O back-end em Express + Socket.IO com autenticação JWT, e o dashboard em React.
  • Um Docker Compose que sobe toda a pilha com um único comando.

O que aprendi

Fazer um modelo caber em algumas centenas de kilobytes obriga a pensar como engenheiro de embarcados e cientista de dados ao mesmo tempo: cada feature, camada e byte precisa se justificar. Esse equilíbrio entre acurácia, memória e latência é exatamente o trabalho que quero continuar fazendo.

Próximo projetoIoTTendancePresença em tempo real com RFID
  • Início
  • Experiência#experience
  • Projetos#projects
  • Competências#skills
  • Formação#education
  • Contato#contact
  • FloraSenseMonitor de saúde de plantas com TinyML
  • IoTTendancePresença em tempo real com RFID
  • Snake AIAgente com Deep Q-Network
  • Compilador LPDCompilador e máquina virtual, do zero em C
  • Alternar tema de cores
  • View in EnglishEN
  • Copiar e-mailpedrodc51203@gmail.com
  • Baixar currículoPDF
  • GitHubgithub.com/pedrodcarvalho
  • LinkedInlinkedin.com/in/pedro-domitti-de-carvalho
  • Emailpedrodc51203@gmail.com