# NEST Firmware - Arduino Version (Prototipo Wearable)
Este repositorio contiene el firmware para el proyecto **NEST (Non-intrusive dEviceS for Telemedicine)**, desarrollado para un **prototipo wearable** en la plataforma **Arduino**. El firmware controla el monitoreo de **frecuencia cardíaca (BPM)** y **saturación de oxígeno (SpO2)** mediante el sensor **MAX30102** y el microcontrolador **nRF52840** con **Bluetooth Low Energy (BLE)** integrado. También incluye una interfaz táctil para interactuar con las funcionalidades del dispositivo, como la confirmación...
Este repositorio contiene el firmware para el proyecto **NEST (Non-intrusive dEviceS for Telemedicine)**, desarrollado para un **prototipo wearable** en la plataforma **Arduino**. El firmware controla el monitoreo de **frecuencia cardíaca (BPM)** mediante el sensor **MAX30102** y el microcontrolador **nRF52840** con **Bluetooth Low Energy (BLE)** integrado. También incluye una interfaz táctil para interactuar con las funcionalidades del dispositivo, como la confirmación de rescates, monitoreo, y envío de datos a través de BLE.
## Estructura del Repositorio
-**/bootloader**: Archivos del bootloader para el nRF52840, que se deben cargar manualmente.
-**/firmware**: Código fuente del firmware desarrollado en Arduino.
-**/libraries**: Bibliotecas necesarias como **Ucglib.h**, **algorithm_by_RF.h**, y **max30102.h** para controlar la pantalla TFT y el sensor de frecuencia cardíaca.
## Descripción del Firmware
Este firmware está diseñado para un wearable médico que permite el monitoreo de signos vitales y la interacción con el usuario a través de una pantalla táctil. Las principales funcionalidades del firmware incluyen:
Este firmware está diseñado para un wearable médico que permite el monitoreo de frecuencia cardíaca y la interacción con el usuario a través de una pantalla táctil. Las principales funcionalidades del firmware incluyen:
1.**Monitoreo de BPM y SpO2**: Utiliza el sensor **MAX30102** para medir la frecuencia cardíaca (BPM) y la saturación de oxígeno (SpO2). Los datos se procesan y se muestran en la pantalla TFT.
1.**Monitoreo de BPM**: Utiliza el sensor **MAX30102** para medir la frecuencia cardíaca (BPM). Los datos se procesan y se muestran en la pantalla TFT.
2.**Pantalla TFT y Control Táctil**: La interfaz de usuario incluye un menú principal con opciones para monitorear los signos vitales, interactuar con un diario de dolor, y confirmar el envío de datos de rescate. Todo esto se controla mediante una pantalla TFT manejada con la biblioteca **Ucglib.h** y un sistema táctil basado en la biblioteca **TouchScreen.h**.
3.**Conectividad Bluetooth**: Implementa BLE usando **Bluefruit.h** para enviar notificaciones y datos de monitoreo a dispositivos conectados. Incluye características BLE personalizadas para enviar alertas.
4.**Iluminación de Pantalla Controlada**: El pin de iluminación de la pantalla está controlado con PWM, lo que permite ajustar el brillo de la pantalla en función del estado del dispositivo.
...
...
@@ -25,7 +30,7 @@ Este firmware está diseñado para un wearable médico que permite el monitoreo
El proyecto incluye las siguientes bibliotecas personalizadas que se encuentran en el directorio `/libraries`:
-**Ucglib.h**: Utilizada para controlar la pantalla TFT e implementar las interfaces gráficas.
-**algorithm_by_RF.h**: Procesa los datos del sensor **MAX30102** para calcular la frecuencia cardíaca y la saturación de oxígeno.
-**algorithm_by_RF.h**: Procesa los datos del sensor **MAX30102** para calcular la frecuencia cardíaca.
-**max30102.h**: Controla las operaciones del sensor **MAX30102** para la lectura de datos biométricos.
Otras bibliotecas necesarias, como **Adafruit_TinyUSB.h**, **TouchScreen.h**, **Bluefruit.h** y **SPI.h**, se pueden instalar directamente desde el gestor de bibliotecas del **Arduino IDE**.
...
...
@@ -74,3 +79,4 @@ Una vez que el bootloader esté grabado, realiza las siguientes configuraciones
3. En **Herramientas > Programador**, selecciona **J-Link for Bluefruit nRF52**.
4. Luego, selecciona **Herramientas > Grabar Bootloader** para finalizar el proceso de configuración.