Arquitectura del Sistema
Arquitectura técnica, topología de red y flujo de datos del sistema GITAF PRO
Visión General de la Arquitectura
El sistema GITAF PRO implementa una arquitectura distribuida de topología estrella híbrida, compuesta por tres nodos inteligentes de audio que operan simultáneamente para cubrir el campo de entrenamiento de fútbol adaptado.
1. Capa de Control (Android App)
La aplicación actúa como el panel de mando y monitor de estado. No procesa audio, solo envía disparadores lógicos y visualiza telemetría.
- Comandos BLE: Envía instrucciones codificadas (
"11","21","31") para activar secuencias. - Recepción de Telemetría: Escucha notificaciones BLE con el estado de batería de los 3 dispositivos (
M:90,S1:85,S2:40). - Gestión de Conexión: Escaneo y vinculación automática con el dispositivo "Gitaf Pro".
2. Nodo Central (Módulo Maestro)
El ESP32 Maestro es el núcleo de la red. A diferencia de un gateway tradicional, este nodo cumple una doble función:
- Emisor de Audio Local: Procesa el comando
"11"para generar sonido en su propia ubicación (ej. posición del entrenador o centro). - Puente de Comunicaciones:
- Traduce comandos Bluetooth (App) a protocolos ESP-NOW (Esclavos).
- Recolecta datos de batería de los esclavos, los agrega a sus propios datos y los envía al móvil.
3. Nodos Periféricos (Módulos Esclavos)
Los Esclavos 1 y 2 son dispositivos satélites totalmente inalámbricos situados en las porterías o postes objetivos.
- Autonomía Lógica: Al recibir la señal de activación, ejecutan localmente un bucle de audio (3 repeticiones cada 3 segundos) y se apagan solos. No requieren conexión constante para mantener el sonido.
- Reporte Activo: Envían proactivamente su nivel de voltaje (leído por INA219) hacia el Maestro cada 2 segundos.
Diagrama de Flujo de Datos
graph TD
User[Usuario / Entrenador] -->|Toque en Pantalla| App[App Android]
subgraph "Comunicación Bluetooth LE"
App -->|Comando '21'| Master[ESP32 Maestro]
Master -.->|Notificación Baterías| App
end
subgraph "Comunicación ESP-NOW (2.4 GHz)"
Master -->|Struct: {'1'}| Slave1[Esclavo 1]
Master -->|Struct: {'1'}| Slave2[Esclavo 2]
Slave1 -.->|Struct: {85%}| Master
Slave2 -.->|Struct: {40%}| Master
end
subgraph "Salida Física"
Master --> AudioM[Audio Local]
Slave1 --> AudioS1[Audio Portería 1]
Slave2 --> AudioS2[Audio Portería 2]
end