Skip to content

andrea-enginner/sbesc25

Repository files navigation

SBESC 2025 - Sistema de Monitoramento Agrícola

Versão Parcial - Dashboard para visualização de dados de solo em tempo real desenvolvido com Next.js, TypeScript e Firebase Realtime Database.

🌱 Sobre o Projeto

Esta é a versão de visualização do sistema que monitora parâmetros fundamentais do solo para agricultura de precisão:

Parâmetros do Solo:

  • pH - Acidez/alcalinidade do solo
  • Condutividade Elétrica - Salinidade e nutrientes
  • Temperatura do Solo - Condições para crescimento
  • Umidade do Solo - Irrigação otimizada
  • NPK - Nitrogênio, Fósforo e Potássio

🚀 Tecnologias Utilizadas

  • Next.js 14 - Framework React com App Router
  • TypeScript - Tipagem estática para dados precisos
  • Tailwind CSS - Interface responsiva e moderna
  • Firebase Realtime Database - Banco de dados em tempo real utilizado pelo backend da aplicação
  • Lucide React - Ícones intuitivos para cada parâmetro

📋 Pré-requisitos

  • Node.js 18+ instalado
  • Projeto Firebase criado com Realtime Database habilitado

🛠️ Configuração

1. Instalação das dependências

npm install

2. Configuração do Firebase

  1. Crie um projeto no Firebase Console
  2. Habilite o Realtime Database no seu projeto
  3. Obtenha as credenciais seguindo o guia em docs/COMO_CONFIGURAR_FIREBASE.md

Em seguida, crie um arquivo .env.local na raiz do projeto com suas credenciais:

FIREBASE_DATABASE_URL=https://seu-projeto-default-rtdb.firebaseio.com
FIREBASE_SERVICE_ACCOUNT='{"type":"service_account","project_id":"...",...}'

📖 Para instruções detalhadas, consulte: docs/COMO_CONFIGURAR_FIREBASE.md

🔧 Funcionalidades (Versão Parcial)

  • 📊 Dashboard de Visualização - Exibe dados consolidados do solo
  • 🔄 Atualização Automática - Busca dados a cada 30 segundos do banco
  • 📱 Interface Responsiva - Funciona perfeitamente em mobile e desktop
  • 📈 Histórico de Medições - Visualização dos últimos registros de cada dispositivo
  • 🏷️ Identificação de Dispositivos - Mostra qual dispositivo (DF) enviou cada dado
  • ⏱️ Timestamps - Exibe data/hora exata de cada medição
  • 📋 Estados Vazios - Interface amigável quando não há dados disponíveis

🔗 Integração com Dispositivos IoT

Estrutura de dados esperada:

Collection parametro_solo no Firebase:

{
  "ph": 6.8,
  "timestamp": 1704067200000
}
  • O campo ph é obrigatório e deve ser numérico.
  • O backend gera automaticamente o id (chave do Firebase) e o timestamp da leitura.

Exemplo de requisição

curl -X POST http://localhost:3000/api/parametro-solo \
  -H "Content-Type: application/json" \
  -d '{"ph": 6.8}'

📝 Próximos passos

  1. Configure seu dispositivo IoT para enviar dados para a rota /api/parametro-solo
  2. Teste a integração usando os exemplos em examples/data-sample.json
  3. Monitore os dados em tempo real através do dashboard
  4. Configure alertas baseados nos parâmetros críticos
  5. Deploy para produção quando necessário

🔐 Segurança

Arquivos que NÃO devem ir para o GitHub:

  • .env.local - Contém suas credenciais do Firebase
  • firebase-service-account.json - Arquivo de credenciais (se usar a opção de arquivo)
  • node_modules/ - Dependências (são reinstaladas automaticamente)
  • .next/ - Build files gerados automaticamente

O que está protegido:

  • Credenciais do Firebase estão no .gitignore
  • env.example mostra a estrutura sem dados reais
  • NUNCA faça commit das credenciais do Firebase no Git!

🤝 Contribuição

Sinta-se à vontade para contribuir com melhorias e novas funcionalidades!

Releases

Packages

Contributors

Languages