Este repositorio contiene el código desarrollado para la prueba MDS-UPDRS nivel 3, específicamente la prueba de taconeo y zapateo, utilizando una ESP32 y un sensor MPU 6050. Los datos capturados durante la prueba se envían a un servidor mediante HTTP, y la activación de las pruebas se realiza a través de un broker MQTT en HiveMQ.
- Dylan Bermúdez
- Santiago Escobar
- Kevin Nieto
- Ricardo Urbina
Proyecto Integrador I - Ingeniería Telemática
Domiciano Rincón
La prueba MDS-UPDRS (Movement Disorder Society - Unified Parkinson's Disease Rating Scale) nivel 3 evalúa los síntomas motores de pacientes con enfermedad de Parkinson. Este proyecto se enfoca en las pruebas de taconeo y zapateo, donde se utilizan dispositivos de hardware para registrar el movimiento y evaluar la capacidad del paciente.
-
ESP32: Microcontrolador principal encargado de gestionar la conexión a internet (WiFi), la suscripción al tópico MQTT, la recolección de datos del sensor MPU 6050 y el envío de los datos mediante HTTP.
-
MPU 6050: Sensor inercial que mide la aceleración y la velocidad angular en los tres ejes (X, Y, Z), usado para registrar los movimientos del pie durante las pruebas de taconeo y zapateo.
-
Broker MQTT (HiveMQ): Sistema de mensajería utilizado para activar el inicio de la prueba desde un dispositivo externo. Se utiliza un cluster gratuito de HiveMQ Cloud.
-
Servidor HTTP: Los datos recolectados por el sensor MPU 6050 se envían a un servidor para su almacenamiento y posterior análisis.
-
Conexión a WiFi: La ESP32 se conecta a una red WiFi para enviar datos al servidor y suscribirse al broker MQTT.
-
Suscripción a MQTT: La ESP32 se suscribe a un tópico en el broker HiveMQ. Cuando recibe el mensaje de inicio (por ejemplo,
"start"
), comienza la recolección de datos. -
Recolección de Datos del MPU 6050: El sensor MPU 6050 mide la aceleración y la velocidad angular en los tres ejes y convierte los datos en formato JSON.
-
Envío de Datos por HTTP: Una vez que finaliza la prueba, los datos se envían a un servidor HTTP en formato JSON para ser procesados o almacenados.
-
Hardware:
- ESP32
- Sensor MPU 6050
- Botones y buzzer para la interfaz física de la prueba
- Conexión WiFi
-
Software:
- Arduino IDE o PlatformIO para la programación de la ESP32
- Broker MQTT (Cluster gratuito de HiveMQ)
- Servidor HTTP para recibir los datos (opcionalmente un servidor local o en la nube)
El proyecto requiere las siguientes bibliotecas instaladas en el entorno de desarrollo de Arduino:
PubSubClient.h
WiFi.h
HTTPClient.h
Wire.h
I2Cdev.h
MPU6050.h
El proyecto está configurado para utilizar un broker MQTT gratuito de HiveMQ Cloud. Para suscribirse a un tópico:
- Dirígete a HiveMQ Cloud.
- Inicia sesión y crea un cluster gratuito.
- Utiliza las credenciales y el URL proporcionado por HiveMQ para configurar el broker en el código del ESP32.
const char* broker = "url_broker";
const int port = 8883;
const char* topic = "nombre/prueba";
Antes de compilar y subir el código a la ESP32, configura tu red WiFi:
const char* ssid = "TuSSID"; // Cambia esto por el nombre de tu red WiFi
const char* password = "TuPassword"; // Cambia esto por la contraseña de tu WiFi
- Conexión WiFi: La ESP32 se conectará automáticamente a la red configurada.
- Suscripción MQTT: La ESP32 se suscribe al tópico definido. Cuando recibe un mensaje (por ejemplo,
"start"
), comenzará la captura de datos. - Recolección de Datos: El sensor MPU 6050 capturará los datos de movimiento (aceleración y giroscopio).
- Envío de Datos: Al finalizar la prueba, los datos se enviarán automáticamente a un servidor mediante una petición HTTP en formato JSON.
{
"ax": -324,
"ay": 110,
"az": 1024,
"gx": 512,
"gy": -256,
"gz": 0
}
Para contribuir a este proyecto, por favor abre un issue o envía un pull request. Toda ayuda es bienvenida.