Tabla de contenido:
- Paso 1: el circuito
- Paso 2: el código de procesamiento de señales y las comunicaciones del servidor
- Paso 3: el servidor y las comunicaciones de datos
- Paso 4: la aplicación de Android
- Paso 5: Conclusión
Video: Monitor de frecuencia cardíaca IOT (ESP8266 y aplicación de Android): 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Como parte de mi proyecto de último año, quería diseñar un dispositivo que monitoreara su frecuencia cardíaca, almacenara sus datos en un servidor y le notificara por medio de una notificación cuando su frecuencia cardíaca fuera anormal. La idea detrás de este proyecto surgió cuando traté de crear una aplicación de ajuste de bits que notifica a un usuario cuando tiene un problema cardíaco, pero no pude encontrar una forma de usar información en tiempo real. El proyecto tiene cuatro partes principales incluido el circuito físico para medir el latido del corazón, un módulo Wi-Fi ESP8266 con código de procesamiento de señal, el servidor para almacenar el código y una aplicación de Android para mostrar el ritmo cardíaco.
Un video que detalla el circuito físico se puede ver arriba. Todo el código del proyecto se puede encontrar en mi Github.
Paso 1: el circuito
Hay dos métodos principales para medir los latidos del corazón, pero para este proyecto decidí utilizar la fotopletismografía (PPG), que utiliza una fuente de luz infrarroja o roja que se refracta a través de las primeras capas de la piel. Se usa un fotosensor para medir el cambio en la intensidad de la luz (cuando la sangre fluye a través de un vaso). Las señales PPG son increíblemente ruidosas, así que utilicé un filtro de paso de banda para filtrar las frecuencias específicas requeridas. Un corazón humano late entre 1 y 1,6 Hz de frecuencia. El amplificador operacional que utilicé fue el lm324 que tenía la mejor compensación de voltaje de todos los amplificadores operacionales que estaban disponibles para mí. Si está recreando este proyecto, un amplificador operacional de precisión sería una opción mucho mejor.
Se usó una ganancia de solo dos porque la tolerancia máxima de voltaje en el ESP8266 es 3.3v y no quería dañar mi placa.
Siga el circuito anterior e intente que funcione en una placa de pruebas. Si no tiene un osciloscopio en casa, puede conectar la salida a un Arduino y trazarlo, pero asegúrese de que el voltaje no sea superior a la tolerancia del arduino o del microcontrolador.
El circuito se probó en una placa de prueba y se observó un cambio en la salida cuando se colocó un dedo sobre el LED y el fototransistor. Luego decidí soldar la placa, lo que no se mostró en el video.
Paso 2: el código de procesamiento de señales y las comunicaciones del servidor
Decidí usar el IDE de Arduino en el ESP8266 porque es muy fácil de usar. Cuando se trazó la señal, todavía era muy ruidosa, así que decidí limpiarla con un filtro de promedio móvil FIR con un número de muestra de diez. Modifiqué un programa Arduino de ejemplo llamado "suavizado" para hacer esto. Experimenté un poco para encontrar una manera de medir la frecuencia de la señal. Los pulsos eran de diferente longitud y amplitud debido a que el corazón tenía cuatro tipos diferentes de pulsos y las características de las señales PPG. Elegí un valor medio conocido que la señal siempre cruzaba como punto de referencia para cada pulso. Usé un búfer de anillo para determinar cuándo la pendiente de la señal era positiva o negativa. La combinación de estos dos me permitió calcular el período entre los pulsos cuando la señal era positiva y era igual a un valor específico.
El software produjo un BPM bastante inexacto que en realidad no se pudo utilizar. Con iteraciones adicionales, se podría diseñar un programa mejor, pero debido a limitaciones de tiempo, esta no era una opción. El código se puede encontrar en el enlace siguiente.
Software ESP8266
Paso 3: el servidor y las comunicaciones de datos
Decidí usar Firebase para almacenar los datos, ya que es un servicio gratuito y es muy fácil de usar con aplicaciones móviles. No hay una API oficial para Firebase con el ESP8266, pero encontré que la biblioteca Arduino funcionaba muy bien.
Hay un programa de ejemplo que se puede encontrar en la biblioteca ESP8266WiFi.h que le permite conectarse a un enrutador con el SSID y la contraseña. Esto se usó para conectar la placa a Internet para que se pudieran enviar datos.
Aunque el almacenamiento de datos se hizo fácilmente, todavía hay una serie de problemas con el envío de notificaciones push a través de una solicitud HTTP POST. Encontré un comentario en Github que usaba un método heredado para hacer esto a través de la mensajería en la nube de Google y la biblioteca HTTP para ESP8266. Este método se puede ver en el código de mi Github.
En Firebase, creé un proyecto y usé la API y las claves de registro en el software. La mensajería en la nube de Firebase se utilizó con la aplicación para enviar notificaciones automáticas al usuario. Cuando se probaron las comunicaciones, los datos se pudieron ver en la base de datos mientras se ejecutaba el ESP8266.
Paso 4: la aplicación de Android
Se diseñó una aplicación de Android muy básica con dos actividades. La primera actividad registró al usuario o lo registró con la API de Firebase. Investigué la hoja de datos y encontré varios tutoriales sobre cómo usar Firebase con una aplicación móvil. La actividad principal que mostraba al usuario de datos del usuario un oyente de eventos en tiempo real para que no hubiera un retraso notable en los cambios en el BPM del usuario. Las notificaciones push se realizaron utilizando la mensajería en la nube de Firebase que se mencionó anteriormente. Hay mucha información útil en la hoja de datos de Firebase sobre cómo implementar esto y la aplicación se puede probar enviando notificaciones desde el panel en el sitio web de Firebase.
Todo el código para las actividades y los métodos para la mensajería en la nube se puede encontrar en mi Repositorio de Github.
Paso 5: Conclusión
Hubo algunos problemas importantes al medir el BPM del usuario. Los valores variaban mucho y no se podían utilizar para determinar la salud de un usuario. Esto se redujo al código de procesamiento de señales que se implementó en el ESP8266. Después de una investigación adicional, descubrí que un corazón tiene cuatro pulsos diferentes con un período variable, por lo que no era de extrañar que el software fuera inexacto. Una forma de combatir esto sería tomar un promedio de los cuatro pulsos en una matriz y calcular el período del corazón sobre esos cuatro pulsos.
El resto del sistema era funcional, pero este es un dispositivo muy experimental que quería construir para ver si el objeto era posible. El código heredado que se usó para enviar notificaciones push pronto será inutilizable, por lo que si está leyendo esto a fines de 2018 o más tarde, se necesitará un método diferente. Sin embargo, este problema solo ocurre con el ESP, por lo que si quisiera implementarlo en un Arduino con capacidad WiFi, no sería un problema.
Si tiene alguna pregunta o problema, no dude en enviarme un mensaje en Instructables.
Recomendado:
Sensor de latido con Arduino (monitor de frecuencia cardíaca): 3 pasos
Sensor de latido con Arduino (monitor de frecuencia cardíaca): el sensor de latido es un dispositivo electrónico que se utiliza para medir la frecuencia cardíaca, es decir, la velocidad de los latidos del corazón. Monitorear la temperatura corporal, la frecuencia cardíaca y la presión arterial son las cosas básicas que hacemos para mantenernos saludables. La frecuencia cardíaca puede ser mon
Monitor de frecuencia cardíaca de bricolaje (registrador): 4 pasos
Monitor de frecuencia cardíaca de bricolaje (registrador): en este proyecto le mostraré cómo un reloj inteligente comercial mide y monitorea su frecuencia cardíaca y luego le mostraré cómo crear un circuito de bricolaje que básicamente puede hacer lo mismo con la adición de que también puede almacenar los datos de frecuencia cardíaca
Dispositivo Breathe Light Anxiety con monitor de frecuencia cardíaca: 18 pasos (con imágenes)
Dispositivo Breathe Light Anxiety con monitor de frecuencia cardíaca: con el mundo cada vez más ocupado, todos se encuentran en un entorno cada vez más estresante. Los estudiantes universitarios corren un riesgo aún mayor de estrés y ansiedad. Los exámenes son períodos de mucho estrés para los estudiantes y los relojes inteligentes con ejercicios de respiración
Medir su frecuencia cardíaca está en la punta de su dedo: Enfoque de fotopletismografía para determinar la frecuencia cardíaca: 7 pasos
Medir su frecuencia cardíaca está en la punta de su dedo: Enfoque de fotopletismografía para determinar la frecuencia cardíaca: Un fotopletismógrafo (PPG) es una técnica óptica simple y de bajo costo que se usa a menudo para detectar cambios en el volumen de sangre en un lecho de tejido microvascular. Se utiliza principalmente de forma no invasiva para realizar mediciones en la superficie de la piel, normalmente
Monitor de frecuencia cardíaca Arduino: 5 pasos
Monitor de frecuencia cardíaca Arduino: Hola a todos, he construido este monitor de frecuencia cardíaca controlado por Arduino portátil