Dashboard em tempo real para monitoramento ambiental de temperatura e umidade da cidade do Recife, integrado com a plataforma ThingSpeak.
Este projeto consiste em um dashboard interativo e responsivo que exibe dados de sensores IoT em tempo real através da API ThingSpeak. O projeto é estruturado em 4 componentes principais:
- Gerencia estado global da aplicação
- Integração com API ThingSpeak (canal #3096127)
- Fetch automático de dados a cada 60 segundos
- Processamento e filtragem de dados de temperatura e umidade
- Cálculo de estatísticas (mín, máx, média)
- Análise de tendências (últimos 10 pontos vs 10 anteriores)
- Tratamento de erros e status de conexão
- Exibe valor atual com unidade
- Mostra estatísticas (min, máx, média)
- Indica tendência (subindo, caindo, estável) com ícones
- Animações fluidas com Framer Motion
- Design responsivo com gradientes
- Visualiza histórico de dados em gráficos de área
- Usa biblioteca Recharts para renderização
- Tooltip customizado com formatação de data/hora em português
- Suporta múltiplos tipos de dados (temperatura, umidade)
- Responsive Container para adaptação a qualquer tamanho
- Indica status de conexão (conectado/desconectado)
- Mostra última atualização dos dados
- Exibe número total de leituras
- Animações de pulso para conexão ativa
- Ícones interativos com Lucide React
- React 19.2.0 - Framework UI
- Vite - Build tool e dev server
- Framer Motion - Animações e transições
- Recharts - Gráficos e visualização de dados
- Lucide React - Ícones SVG
- date-fns - Formatação e manipulação de datas
- Tailwind CSS - Estilização (via shadcn/ui)
npm installPara iniciar o servidor de desenvolvimento:
npm run devA aplicação estará disponível em http://localhost:5173
npm run buildPara verificar qualidade de código:
npm run lintO projeto utiliza os seguintes dados do ThingSpeak:
- Channel ID: 3096127
- Field 1: Temperatura (°C)
- Field 2: Umidade (%)
- API Key: Configurada em Dashboard.jsx
- Timezone: America/Sao_Paulo
- Intervalo de atualização: 60 segundos
- Último valor sempre exibido em destaque
- Histórico: últimos 100 registros
✅ Monitoramento em tempo real ✅ Gráficos interativos ✅ Estatísticas automáticas ✅ Análise de tendências ✅ Design responsivo ✅ Animações fluidas ✅ Status de conexão ✅ Formatação de data em português ✅ Tratamento de erros ✅ Interface moderna e intuitiva
O projeto é totalmente responsivo, adaptando-se a:
- 📱 Celulares (mobile first)
- 📱 Tablets
- 💻 Desktops
- 🖥️ Large screens
- Gradientes sofisticados
- Paleta de cores: Azuis e Verdes
- Ícones intuitivos
- Animações suaves
- Cards com sombra e hover effects
- Backdrop blur para elementos modais
src/
├── pages/
│ └── Dashboard.jsx # Componente principal
├── components/
│ └── dashboard/
│ ├── MetricCard.jsx # Cartões de métrica
│ ├── TimeSeriesChart.jsx# Gráficos
│ └── StatusBanner.jsx # Banner de status
├── App.jsx
├── main.jsx
├── index.css
└── App.css
- Usar variáveis de ambiente (.env)
- Implementar backend proxy
- Usar autenticação adequada
Projeto desenvolvido para fins educacionais.