Skip to content

YanCotta/FarmTech_System

Repository files navigation

FarmTech Solutions

🎥 Vídeo Demonstrativo

Plataforma completa de agricultura de precisão integrando análise de dados, IoT, machine learning, visão computacional e computação em nuvem.

Python Streamlit License

FIAP - Faculdade de Informática e Administração Paulista

FIAP - Faculdade de Informática e Administração Paulista

👨‍🎓 Integrantes:

👩‍🏫 Professores:

Tutor(a)

Coordenador(a)

Sobre o Projeto

Sistema desenvolvido como projeto final do primeiro ano do programa de Engenharia de IA da FIAP, combinando seis módulos principais para otimização de produção agrícola através de dados e inteligência artificial.

Objetivos

  • Otimizar consumo de água com irrigação preditiva
  • Reduzir perdas de culturas com detecção precoce de pragas
  • Maximizar ROI através de algoritmo genético de alocação
  • Gerar insights acionáveis a partir de múltiplas fontes de dados

Arquitetura

┌──────────────────────────────────────────────────────────────┐
│              Dashboard Unificado (Streamlit)                  │
│         Interface de Análise e Controle em Tempo Real         │
├──────────────────────────────────────────────────────────────┤
│ Análise R │  Database  │   IoT     │    ML     │  Cloud      │
│           │  Layer     │  ESP32    │  Pipeline │  AWS        │
├──────────────────────────────────────────────────────────────┤
│     Visão Computacional     │   Motor de Otimização          │
│      (YOLOv5 + LLM)        │   (Algoritmo Genético)         │
└──────────────────────────────────────────────────────────────┘

Funcionalidades

1. Análise de Dados Agrícolas

Análise estatística de dados de produção agrícola brasileira com visualizações interativas em Plotly.

2. Banco de Dados Corporativo

  • SQLAlchemy 2.0 ORM com migrações Alembic
  • Arquitetura agnóstica (SQLite/PostgreSQL/MySQL)
  • Três tabelas normalizadas: irrigação, sensores, detecção de pragas

3. Rede de Sensores IoT

  • Arquitetura distribuída baseada em ESP32
  • Monitoramento: umidade do solo, pH, níveis NPK
  • Controle automatizado de irrigação via relé
  • 20 sensores simulados na região de Ribeirão Preto

4. Pipeline de Machine Learning

  • Classificador Random Forest (98,5% de acurácia)
  • 4 features: umidade, pH, fósforo, potássio
  • Persistência via joblib
  • Interface de predição em tempo real

5. Infraestrutura em Nuvem

  • Arquitetura AWS com análise de custos
  • Sistema de alertas via SNS com failover automático
  • Modo simulação para ambientes de desenvolvimento
  • Severidades: INFO, WARNING, CRITICAL, EMERGENCY

6. Sistema de Visão Computacional

Arquitetura dupla:

  • Modelo FarmTech: YOLOv5 customizado (mAP@0.5: 51,3%)
  • YOLOv5s Geral: Pré-treinado em COCO (80 classes)
  • IA Híbrida: Detecção edge (YOLO) + Análise cloud (GPT-4o Vision)

7. Interface em Linguagem Natural

  • Chatbot OpenAI para consultas ao banco de dados
  • Respostas contextuais com dados recentes de sensores
  • Análise estatística em linguagem natural

8. Otimizador com Algoritmo Genético

  • Resolução do problema da mochila binária para seleção de culturas
  • População, gerações e taxas de crossover/mutação configuráveis
  • Visualização interativa da evolução do fitness

Stack Tecnológica

Backend & Data Science

  • Python 3.12.3
  • Pandas 2.2.3
  • NumPy 2.1.3
  • Scikit-learn 1.5.2
  • PyTorch 2.5.1
  • SQLAlchemy 2.0.23
  • Alembic 1.13.1

Visão Computacional

  • Ultralytics 8.3.29
  • OpenCV
  • Pillow 10.4.0
  • OpenAI Vision API

Visualização & UI

  • Streamlit 1.39.0
  • Plotly 5.24.1
  • Matplotlib 3.9.2

Cloud & Infraestrutura

  • AWS Boto3 1.35.67
  • Requests 2.32.3
  • Python-dotenv 1.0.1

Instalação

Pré-requisitos

  • Python 3.12 ou superior
  • pip
  • Git
  • 8GB RAM mínimo
  • 2GB espaço em disco

Passos

  1. Clone o repositório
git clone https://github.com/seu-org/FarmTech_System.git
cd FarmTech_System
  1. Crie um ambiente virtual
python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux/macOS
source .venv/bin/activate
  1. Instale as dependências
pip install -r requirements.txt
  1. Inicialize o banco de dados
cd fase_2_database_design
python database_manager.py
  1. Configure variáveis de ambiente (opcional)
# Para integração AWS
export AWS_ACCESS_KEY_ID=<sua_chave>
export AWS_SECRET_ACCESS_KEY=<sua_secret>
export AWS_DEFAULT_REGION=us-east-1

# Para recursos de LLM
export OPENAI_API_KEY=<sua_chave_openai>

Como Usar

Executar o Dashboard

streamlit run app_integrated.py

Acesse em http://localhost:8501

Navegação no Dashboard

  • Visão Geral: Arquitetura do sistema e métricas
  • Fase 1: Análise de dados agrícolas
  • Fase 2: Visualização do esquema do banco de dados
  • Fase 3: Mapa da rede de sensores IoT
  • Fase 4: Interface de predição ML
  • Fase 5: Análise de custos AWS e alertas
  • Fase 6: Detecção de visão computacional
  • Otimizador Genético: Alocação de recursos
  • Assistente IA: Consultas em linguagem natural

Executar Módulos Standalone

# Treinar modelo ML
cd fase_4_dashboard_ml/scripts
python train_model.py

# Testar otimizador genético
cd ir_alem_2_genetic_algorithm
python genetic_optimizer.py

# Executar migrações de banco
cd fase_2_database_design
alembic upgrade head

Estrutura do Projeto

FarmTech_System/
├── app_integrated.py              # Dashboard principal
├── requirements.txt               # Dependências Python
├── README.md                      # Este arquivo
├── LICENSE                        # Licença MIT
│
├── fase_1_R_analysis/            # Análise de dados
│   ├── data/agro_data.csv
│   └── src/analise_agro.R
│
├── fase_2_database_design/       # Camada de banco de dados
│   ├── database_manager.py
│   ├── alembic.ini
│   └── migrations/
│
├── fase_3_iot_esp32/             # Firmware IoT
│   ├── prog1.ino
│   └── diagram.json
│
├── fase_4_dashboard_ml/          # Pipeline ML
│   ├── irrigation_model.joblib
│   └── scripts/
│
├── fase_5_aws_docs/              # Documentação cloud
│   └── docs/
│
├── fase_6_vision_yolo/           # Visão computacional
│   ├── best.pt
│   └── report.md
│
└── ir_alem_2_genetic_algorithm/  # Motor de otimização
    ├── genetic_optimizer.py
    └── README_GENETIC_OPTIMIZER.md

Módulos

Fase 1: Análise de Dados Agrícolas

Análise estatística da produção agrícola brasileira com visualizações Plotly interativas.

Fase 2: Design de Banco de Dados

Arquitetura de banco de dados corporativa com SQLAlchemy ORM e migrações Alembic.

Fase 3: Rede de Sensores IoT

Sistema de monitoramento distribuído baseado em ESP32 com aquisição de dados em tempo real.

Fase 4: Pipeline de Machine Learning

Classificador Random Forest para predição de irrigação com recursos de IA explicável.

Fase 5: Infraestrutura em Nuvem

Design de arquitetura AWS com sistema de alertas SNS e análise de otimização de custos.

Fase 6: Visão Computacional

Sistema de visão IA híbrida combinando detecção edge e inteligência cloud.

Recursos Avançados

Otimização com Algoritmo Genético

Resolve o problema da mochila binária para seleção ótima de culturas dentro das restrições de orçamento.

Configuração:

optimizer = FarmGeneticOptimizer(
    items_df=crops_dataframe,
    budget=150_000,
    population_size=32,
    num_generations=1000,
    crossover_rate=0.8,
    mutation_rate=0.15
)

Interface em Linguagem Natural

Chatbot OpenAI com análise de dados agrícolas contextual.

Exemplos de Consultas:

  • "Qual é a umidade média do solo?"
  • "Quantos sensores indicam necessidade crítica de irrigação?"
  • "Identifique áreas com pH fora da faixa ideal (6.0-7.5)"

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para detalhes.

Autores

Yan Pimentel Cotta - RM562836
Programa de Engenharia de IA FIAP


FarmTech Solutions | Plataforma de Agricultura de Precisão
© 2025 FarmTech Solutions. Todos os direitos reservados.

About

Unified system for a smart/technological/automated farm in large scale

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages