Un dashboard interactivo y completo para monitoreo de CubeSat con visualización 3D del vuelo y análisis de datos en tiempo real.
- 📊 Gráficos: Visualización de temperatura, aceleración, presión, voltaje y giroscopio
- 📈 Gráfico Multi-datos: Vista consolidada de todas las variables en un solo gráfico
- 📋 Estadísticas: Cálculo automático de min, max, promedio y desviación estándar
- 💾 Exportación CSV: Descarga de archivos CSV pre-generados por sensor o los generados por el archivo generate_csv para las pruebas de funcionamiento
- 🎮 Visualización 3D: Simulación del vuelo del CubeSat con orientación en tiempo real
- 📱 Interfaz Responsive: Navegación por pestañas entre Datos y vista 3D
- 🔄 Funcionamiento Offline: No requiere conexión a internet una vez configurado
# Ejecutar script de configuración
./setup-offline.sh
# Generar archivos CSV
python3 generate_csv.py
# Iniciar servidor
./start-server.sh# Crear directorios
mkdir -p libs/chart libs/three
# Descargar Chart.js
curl -o libs/chart/chart.umd.js "https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.min.js"
# Descargar Three.js
curl -o libs/three/three.min.js "https://unpkg.com/three@0.158.0/build/three.min.js"
# Generar archivos CSV
python3 generate_csv.py
# Iniciar servidor local
python3 -m http.server 8080cubesat/
├── index.html # Página principal con navegación por pestañas
├── generate_csv.py # Script Python para generar archivos CSV
├── CSV_README.md # Documentación del sistema de CSV
├── csv_data/ # Directorio de archivos CSV generados
│ ├── temperatura_muestra1.csv
│ ├── temperatura_muestra2.csv
│ ├── temperatura_muestra3.csv
│ ├── temperatura_cubesat.csv
│ ├── aceleracion.csv
│ ├── presion.csv
│ └── giroscopio_xyz.csv
├── css/
│ └── styles.css # Estilos del dashboard y vista 3D
├── js/
│ ├── app.js # Inicializador principal
│ ├── data-generator.js # Generador de datos simulados
│ ├── chart-module.js # Gráficos individuales y multi-datos
│ ├── stats-module.js # Cálculo de estadísticas
│ ├── csv-module.js # Módulo de descarga de archivos CSV
│ └── orientation3d-module.js # Visualización 3D del vuelo
├── libs/
│ ├── chart/
│ │ └── chart.min.js # Chart.js local
│ └── three/
│ ├── three.min.js # Three.js local
│ └── OrbitControls.js # Controles de cámara 3D
├── setup-offline.sh # Script de configuración automática
└── start-server.sh # Script para iniciar servidor
- Gráfico Principal: Vista consolidada de todas las variables.
- Estadísticas: Análisis estadístico en tiempo real de cada sensor
- Gráficos Individuales: Vista detallada por sensor:
- Temperatura cubesat
- Aceleración (G)
- Presión (kPa)
- Voltaje (V)
- Giroscopio X, Y, Z (°/s)
- Temperaturas de muestras 1, 2, 3 (°C)
- Exportación CSV: Botones para descargar datos de cada sensor
- Visualización 3D: Representación del CubeSat con orientación basada en giroscopio
- Controles de Cámara: Orbitar, zoom y paneo con mouse/touch
- Línea de Tiempo: Controles de reproducción con slider de tiempo
- Panel de Datos: Datos en tiempo real:
- Orientación (cuaterniones, ángulos Euler, velocidad angular)
- Temperaturas (cubesat y muestras)
- Sensores físicos (aceleración, presión)
- Estado de la misión
- Clic izquierdo + arrastrar: Orbitar alrededor del CubeSat
- Rueda del mouse: Zoom in/out
- Clic derecho + arrastrar: Paneo de la cámara
- Botones de control: Reproducir, pausar, reiniciar simulación
- Slider de velocidad: Ajustar velocidad de reproducción (1x-10x)
- Frontend: HTML5, CSS3, JavaScript (ES6)
- Gráficos: Chart.js v4.4.0
- 3D: Three.js v0.158.0 con OrbitControls
- Generación de datos: Python 3 (script independiente)
- Servidor: Python HTTP Server (integrado)
- Arquitectura: Modular con separación de responsabilidades
Una vez configurado con ./setup-offline.sh, el dashboard funciona completamente sin conexión a internet:
- ✅ Todas las librerías están descargadas localmente
- ✅ No hay dependencias de CDN externos
- ✅ Funciona en cualquier red local o sin internet
- ✅ Ideal para demostraciones o entornos aislados
El proyecto utiliza un script Python (generate_csv.py) para generar archivos CSV con datos:
- Periodo: 4 horas
- Frecuencia: 5 lecturas por segundo (72,000 puntos totales)
- Archivos generados:
temperatura_muestra1.csv- Temperatura de muestra 1temperatura_muestra2.csv- Temperatura de muestra 2temperatura_muestra3.csv- Temperatura de muestra 3temperatura_cubesat.csv- Temperatura del cubesataceleracion.csv- Aceleración en ejes X, Y, Zpresion.csv- Datos de presióngiroscopio_xyz.csv- Datos de giroscopio (Roll, Pitch, Yaw)
- Temperatura cubesat: Variación realista con ciclos térmicos
- Aceleración: Entorno de microgravedad con eventos ocasionales
- Presión: Estable con deriva gradual
- Giroscopio: Rotación tipo tumbling durante la caída
- Temperaturas de muestras: Variaciones independientes por muestra
# Generar nuevos archivos CSV
python3 generate_csv.py- Python 3: Para el servidor HTTP local
- Navegador Moderno: Chrome, Firefox, Safari, Edge (últimas versiones)
- Resolución: 1024x768 o superior recomendada
- El dashboard debe ejecutarse desde un servidor HTTP (no abrir directamente el HTML)
- Los archivos CSV se generan con el script Python y se sirven desde el backend
- Los datos del frontend se generan dinámicamente para los gráficos
- La visualización 3D se optimiza automáticamente según el rendimiento del dispositivo
- Compatible con dispositivos táctiles para la navegación 3D
- Los archivos CSV y librerías están excluidos del control de versiones (ver
.gitignore)
- Configuración inicial: Ejecutar
./setup-offline.sh - Generar datos: Ejecutar
python3 generate_csv.py - Iniciar servidor: Ejecutar
./start-server.sh - Regenerar datos: Volver a ejecutar
generate_csv.pycuando sea necesario
Desarrollado para simulación y análisis de de CubeSat 🛰️
