Sistema integrado para monitoramento de missões de mergulho que combina sensores físicos (Arduino) com gravação multimídia sincronizada. O projeto permite o acompanhamento em tempo real de temperatura e pressão durante mergulhos, além de gravar vídeo e áudio para análise posterior.
Recursos Principais:
- Monitoramento em tempo real de temperatura e pressão
- Gravação automática de vídeo e áudio em segmentos de 5 minutos
- Cadastro e gerenciamento de mergulhadores
- Armazenamento em banco de dados SQLite
- Interface gráfica (Tkinter)
- Reprodução sincronizada de missões gravadas
- Estatísticas de medições (mín/máx/média)
O sistema é dividido em 4 camadas principais:
- Sensores: DS18B20 (temperatura) e sensor analógico de pressão
- Comunicação: Serial USB (9600 baud)
- Formato de dados:
pressao,temperatura\n(CSV via serial) - Código: sensor_e_temperatura/sensor_e_temperatura.ino
- Comunicação Serial: Leitura contínua dos dados do Arduino (sensor_arduino.py)
- Banco de Dados: SQLite para armazenamento persistente (database.py)
- Gerenciamento: Controle de missões, mergulhadores e medições
- Framework: Tkinter
- Funcionalidades:
- Criar e iniciar missões (criar_missao.py)
- Visualizar missões antigas (visualizar_missoes.py)
- Monitoramento ao vivo
- Vídeo: OpenCV - segmentos de 5 min (gravacao_video.py)
- Áudio: PyAudio - segmentos de 5 min (gravacao_audio.py)
- Sincronização: Timestamp comum entre vídeo, áudio e sensores
┌─────────────────────────┐
│ Arduino (Sensores) │
│ - DS18B20 (Temp) │
│ - Sensor de Pressão │
└───────────┬─────────────┘
│ Serial USB (9600 baud)
│ Formato: pressao,temperatura
▼
┌─────────────────────────┐
│ Servidor Python │
│ - sensor_arduino.py │
│ - database.py │
└───────────┬─────────────┘
│
▼
┌─────────────────────────┐
│ Interface Gráfica │
│ - main.py │
│ - criar_missao.py │
│ - visualizar_missoes.py│
└───────────┬─────────────┘
│
▼
┌─────────────────────────┐
│ Captura Multimídia │
│ - gravacao_video.py │
│ - gravacao_audio.py │
└───────────┬─────────────┘
│
▼
┌─────────────────────────┐
│ Armazenamento │
│ - SQLite (mergulho.db) │
│ - Vídeos (*.avi) │
│ - Áudios (*.wav) │
└─────────────────────────┘
projeto-micro-main/
├── main.py # Arquivo principal - inicializa o sistema
├── README.md # Este arquivo
│
├── sensor_e_temperatura/ # Código Arduino
│ └── sensor_e_temperatura.ino # Leitura de sensores (temperatura + pressão)
│
├── servidor/ # Backend
│ ├── database.py # Gerenciamento do banco SQLite
│ ├── sensor_arduino.py # Comunicação serial com Arduino
│ └── mergulho.db # Banco de dados
│
├── interface/ # Interface gráfica (Tkinter)
│ ├── criar_missao.py # Tela de criação de missões
│ └── visualizar_missoes.py # Tela de visualização de missões
│
├── captura/ # Módulos de gravação
│ ├── gravacao_video.py # Captura de vídeo com OpenCV
│ └── gravacao_audio.py # Captura de áudio com PyAudio
│
├── gravacoes/ # Dados gerados pelo sistema
│ ├── audios_missoes/ # Áudios das missões (*.wav)
│ └── videos_missoes/ # Vídeos das missões (*.avi)
- Python 3.8+ - Linguagem principal
- Tkinter - Interface gráfica
- SQLite - Banco de dados
- OpenCV - Captura de vídeo
- PyAudio - Captura de áudio
- PySerial - Comunicação serial
- Arduino - Microcontrolador
- DS18B20 - Sensor de temperatura
- Sensor analógico - Medição de pressão
- OneWire / DallasTemperature - Bibliotecas Arduino
Clique na imagem para assistir ao vídeo no YouTube.
