Sistema científico de monitoramento fluvial inteligente usando ESP32-CAM para detecção automática de mudanças visuais em rios
- Sobre o Projeto
- Funcionalidades
- Estrutura do Projeto
- Tecnologias Utilizadas
- Início Rápido
- Instalação
- Uso
- Arquitetura
- Documentação
- Como Contribuir
- Roadmap
- Licença
- Contato
- Agradecimentos
O ESP32-CAM Flood Monitor é um sistema de monitoramento científico desenvolvido para detectar mudanças visuais em ambientes fluviais usando análise inteligente de imagens. O projeto implementa duas versões para comparação científica:
- Análise local avançada com algoritmo RGB565 otimizado
- 4 tipos de referência: diurna, noturna, tempo claro e tempo ruim
- Detecção inteligente com blocos 32x32 pixels
- Transmissão seletiva baseada em mudanças significativas
- Captura contínua a cada 15 segundos
- Transmissão total de todas as imagens
- Dados básicos de monitoramento
- Monitoramento de enchentes em tempo real
- Análise de mudanças ambientais em rios
- Pesquisa científica em hidrologia
- Sistemas de alerta para comunidades ribeirinhas
- Algoritmo RGB565 otimizado para análise em tempo real
- Sistema de referências múltiplas (dia/noite/clima)
- Detecção de mudanças por blocos 32x32 pixels
- Filtros anti-ruído e correção automática
- WiFi com reconexão automática
- MQTT 5.0 para transmissão de dados
- Protocolo otimizado para baixo consumo
- Buffer circular para dados históricos
- Suporte completo para 8MB PSRAM
- Resolução HVGA (480x320) otimizada
- Sistema anti-esverdeado inteligente
- Monitoramento de recursos (CPU, memória, temperatura)
- Dashboard web em tempo real
- Banco de dados SQLite para armazenamento
- Logs detalhados de eventos
- Métricas de desempenho científico
Esta estrutura segue as melhores práticas para repositórios GitHub:
esp32-cam-flood-monitor/
├── src/ # Código fonte principal
│ ├── firmware/ # Firmware ESP32-CAM (C/ESP-IDF)
│ │ ├── main/ # Código principal
│ │ ├── components/ # Componentes customizados
│ │ └── sdkconfig # Configurações ESP-IDF
│ └── server/ # Servidor Python
│ ├── mqtt_data_collector.py # Coletor principal MQTT
│ ├── database/ # Módulos de banco de dados
│ ├── web/ # Interface web
│ └── analysis/ # Análise de dados
├── tests/ # Testes automatizados
│ ├── firmware/ # Testes do firmware
│ ├── server/ # Testes do servidor
│ └── integration/ # Testes de integração
├── examples/ # Exemplos de uso
│ ├── basic_setup/ # Setup básico para iniciantes
│ ├── advanced_config/ # Configuração avançada
│ └── scientific_analysis/ # Análise científica
├── tools/ # Ferramentas de desenvolvimento
│ ├── build/ # Scripts de build
│ ├── development/ # Ferramentas de dev
│ ├── deployment/ # Scripts de deploy
│ └── analysis/ # Análise científica
├── config/ # Arquivos de configuração
│ ├── mqtt/ # Configurações MQTT
│ ├── wifi/ # Configurações WiFi
│ └── templates/ # Templates de config
├── assets/ # Recursos estáticos
│ ├── images/ # Imagens da documentação
│ ├── diagrams/ # Diagramas de arquitetura
│ └── videos/ # Vídeos demonstrativos
├── build/ # Scripts de build/CI
│ ├── firmware/ # Build do firmware
│ └── docker/ # Containers Docker
├── docs/ # Documentação completa
│ ├── installation.md # Guia de instalação
│ ├── configuration.md # Configuração avançada
│ ├── api.md # Referência da API
│ └── faq.md # Perguntas frequentes
├── .github/ # GitHub específico
│ ├── workflows/ # GitHub Actions
│ ├── ISSUE_TEMPLATE/ # Templates de issues
│ └── pull_request_template.md # Template de PR
├── data/ # Dados científicos
├── logs/ # Logs do sistema
├── README.md # Este arquivo
├── LICENSE # Licença MIT
├── CONTRIBUTING.md # Guia de contribuição
├── CODE_OF_CONDUCT.md # Código de conduta
├── CHANGELOG.md # Histórico de mudanças
├── SECURITY.md # Políticas de segurança
└── SUPPORT.md # Guia de suporte
- ESP-IDF v5.0+ - Framework oficial Espressif
- FreeRTOS - Sistema operacional em tempo real
- MQTT - Protocolo de comunicação IoT
- JPEG - Compressão de imagens otimizada
- Python 3.9+ - Linguagem principal do servidor
- MQTT Client - Cliente MQTT para recepção de dados
- SQLite - Banco de dados local
- Matplotlib/Pandas - Análise e visualização
- PlatformIO / ESP-IDF - Desenvolvimento do firmware
- Git - Controle de versão
- GitHub Actions - CI/CD automático
# Hardware necessário
- ESP32-CAM (recomendado: AI-Thinker)
- Cartão MicroSD (opcional)
- Fonte de alimentação 5V/3A
- Cabo FTDI para programação
# Software necessário
- ESP-IDF v5.0+ ou PlatformIO
- Python 3.9+
- Git# 1. Clone o repositório
git clone https://github.com/GPassos01/espCam_imageAnalysis.git
cd esp32-cam-flood-monitor
# 2. Configure o ESP-IDF
. $IDF_PATH/export.sh
# 3. Configure o projeto
cd src/firmware
cp config/templates/config.example.h main/config.h
# Edite config.h com suas configurações WiFi/MQTT
# 4. Compile e faça upload
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor
# 5. Configure o servidor (terminal separado)
cd ../server
pip install -r requirements.txt
python mqtt_data_collector.py- Firmware ESP32-CAM: Ambas as versões (INTELLIGENT/SIMPLE) funcionando
- Servidor Python: Monitor científico coletando dados via MQTT
- Análise de Imagens: Algoritmo RGB565 detectando mudanças corretamente
- Transmissão MQTT: Comunicação estável entre ESP32-CAM e servidor
- Banco de Dados: SQLite armazenando imagens e estatísticas
- Estrutura de Projeto: Reestruturação profissional concluída
ATENÇÃO: As ferramentas de desenvolvimento e scripts automatizados ainda não foram completamente testados após a reestruturação do projeto.
- Tools de Build:
tools/build/- Scripts de compilação automatizada - Tools de Development:
tools/development/- Ferramentas de desenvolvimento - Tools de Deployment:
tools/deployment/- Scripts de deploy - Tools de Analysis:
tools/analysis/- Análise científica automatizada
Para uso básico (recomendado):
# 1. Firmware: Compilação manual via ESP-IDF
cd src/firmware
idf.py build flash monitor
# 2. Servidor: Execução manual
cd src/server
source venv/bin/activate
python3 mqtt_data_collector.pyPara testar diferentes versões:
# Testar versão SIMPLE (baseline)
python3 mqtt_data_collector.py --force-version simple
# Testar versão INTELLIGENT (economia de dados)
python3 mqtt_data_collector.py --force-version intelligent- Guia de Instalação - Instalação detalhada passo a passo
- Configuração - Configuração avançada do sistema
- API Reference - Referência completa da API
- Análise de Imagens - Detalhes do algoritmo de análise
- Troubleshooting - Solução de problemas comuns
- Protocolo MQTT - Especificação do protocolo
- Hardware Setup - Configuração de hardware
- Performance Tuning - Otimização de performance
┌─────────────────┐ MQTT ┌──────────────────┐ SQLite ┌─────────────────┐
│ ESP32-CAM │ ──────────► │ MQTT Broker │ ───────────► │ Data Storage │
│ │ │ (Mosquitto) │ │ (SQLite DB) │
│ • Captura │ └──────────────────┘ └─────────────────┘
│ • Análise │ │ │
│ • Transmissão │ ▼ ▼
└─────────────────┘ ┌──────────────────┐ ┌─────────────────┐
│ Data Collector │ │ Web Dashboard │
│ (Python) │ │ (Flask/HTML) │
└──────────────────┘ └─────────────────┘
Adoramos contribuições! Por favor, leia nosso Guia de Contribuição para detalhes sobre nosso código de conduta e o processo para enviar pull requests.
Use os templates de issue para reportar bugs ou solicitar funcionalidades.
- Faça fork do projeto
- Crie sua feature branch (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
- Análise ML/IA - Implementação de modelos de machine learning
- Multi-sensor - Suporte para sensores adicionais (temperatura, umidade)
- Cloud Integration - Integração com AWS IoT/Google Cloud
- Mobile App - Aplicativo móvel para monitoramento
- Dashboard Web - Interface web responsiva
- Alertas configuráveis - Sistema de notificações personalizáveis
- API REST - API completa para integração externa
- Backup automático - Sistema de backup de dados
Veja a lista completa de issues para propostas de funcionalidades e bugs conhecidos.
Distribuído sob a Licença MIT. Veja LICENSE para mais informações.
Gabriel Passos - gabriel.passos@unesp.br
Link do Projeto: https://github.com/GPassos01/espCam_imageAnalysis
- ESP-IDF - Framework oficial Espressif
- MQTT.org - Protocolo de comunicação IoT
- Choose an Open Source License - Guia de licenças
- Img Shields - Badges para README
- Best-README-Template - Template base