Monitor de pulso online usando NodeMCU y Cayenne


El fondo de este proyecto es la  monitorización cardíaca mediante un sensor de pulso del cuerpo humano mostrando en una  pantalla OLED  la forma de onda   y   enviando una alerta al  correo electrónico cuando el pulso del corazón supere la condición normal (en este caso 200).

La esencia de estos detectores  es un sensor integrado de circuito de amplificación óptica y con un circuito de eliminación de ruido de la frecuencia cardíaca  todo ello alimentado  con una tensión de alimentación: 3.3V ~ 5 V

Lo ideal  para medir el pulso  es  poner  el sensor de pulso en el dedo o lóbulo de la oreja, directamente  o bien  mediante algún sistema mecánico que lo deje fijo como por ejemplo   alguno de los sistemas que mostramos a continuación:

 

soportes sensores.PNG

 

Estos sensores cuentan con una salida analógica   que se puede conectar  a una entrada analógica de un  Arduino, para probar la frecuencia cardíaca y de ahi que se pueda usar este sensor con un NodeMcu  junto con un pequeña pantalla OLED  para mostrar la fecuencia cardiaca en tiempo real

 

Los elementoshw y sw  necesarias para hacer este proyecto son las siguientes.

Hardware necesario:

1. NodeMCU ESP-12E

2. Sensor de pulso

3. SSD1306 0,96 pulgadas pantalla OLED

4. Cablezillos  de puente

Software necesario:

1. Arduino IDE

2. Cayenne para iOS/Android/Web Browser

3. Sensor de pulso modificado para ESP

4. biblioteca de Adafruit SSD1306 para Arduino    P

El sensor de pulso

El sensor de pulso cardiaco es esencialmente un fotopletismógrafo, que es un dispositivo médico conocido que se usa para controlar la frecuencia cardíaca de forma no invasiva. Asimismo  los fotopletismógrafos miden los niveles de oxígeno en la sangre (SpO2) pero no siempre lo soportan.

La señal de pulso cardíaco que sale de un fotopletismograma es una fluctuación analógica de voltaje, y tiene una forma de onda predecible, tal como estamos acostumbrados a ver ( la representación de la onda de pulso se denomina fotopletismograma o PPG).

El Sensor de pulso  amplifica la señal bruta del Sensor de pulso anterior y normaliza la onda de pulso alrededor de V / 2 (punto medio en voltaje) respondiendo a los cambios relativos en la intensidad de la luz

Tal y como esta construido ,veremos que  la luz  interna del LED verde del sensor  se refleja de nuevo en el sensor cambiando durante cada impulso, ocurriendo las siguintes casuiticas:.

  • Si la cantidad de luz incidente en el sensor permanece constante, el valor de la señal permanecerá en (o cerca de) 512 (punto medio del rango de ADC).
  •  Más luz y la señal aumentará.
  • Menos luz, todo lo contrario: el valor de la señal analógica dismuniira

El objetivo es encontrar momentos sucesivos de latido instantáneo del corazón y medir el tiempo transcurrido entre ellos, llamado intervalo Inter Beat (IBI)  pues al seguir la forma y el patrón predecibles de la onda PPG, podemos hacer exactamente eso.

Cuando el corazón bombea sangre por el cuerpo, con cada latido hay una onda de pulso (una especie de onda de choque) que viaja a lo largo de todas las arterias hasta las mismas extremidades del tejido capilar donde está conectado el sensor de pulso. La sangre real circula en el cuerpo mucho más lentamente de lo que viaja la onda de pulso.

 

Figura 1

 

Sigamos los eventos a medida que progresan desde el punto ‘T’ en el PPG a continuación. Se produce un aumento rápido en el valor de la señal a medida que la onda de pulso pasa por debajo del sensor, luego la señal vuelve a descender hacia el punto normal. A veces, la muesca dicroica (pico descendente) es más pronunciada que otras, pero, en general, la señal se establece en el ruido de fondo antes de que la siguiente onda de pulso se filtre. 

Como la onda se repite y es predecible, podríamos elegir casi cualquier característica reconocible como punto de referencia, por ejemplo, el pico, y medir la frecuencia cardíaca haciendo cálculos matemáticos sobre el tiempo entre cada pico,pero sin embargo, esto puede dar lugar a lecturas falsas desde la muesca dicroica, si está presente, y puede también ser susceptible a la imprecisión con respecto al ruido de línea base.

Existen otras buenas razones para no basar el algoritmo de detección de latidos en fenómenos de onda arbitrarios. Idealmente, queremos encontrar el momento instantáneo del latido del corazón. Esto es importante para el cálculo preciso de BPM, la variabilidad del ritmo cardíaco ( y mida la frecuencia cardíaca haciendo cálculos en el tiempo entre cada pico.

Sin embargo, esto puede dar lugar a lecturas falsas desde la muesca dicroica, si está presente, y puede también ser susceptible a la imprecisión con respecto al ruido de línea base.

.

 

Algunos investigadores del corazón dicen que es cuando la señal alcanza el 25% de la amplitud, algunos dicen que es el 50% de la amplitud, y algunos dicen que es el momento en que la pendiente es más pronunciada durante el evento ascendente.

 

 

El sensor de pulsos cardíacos  se conecta a la alimentación de +5V  entre el hilo rojo(+5v)   y el naranja (GND)   y del  hilo marrón obtenemos la salida analógica que conectaremos a la primera entrada analogica (A0) de cualquier placa que  soporte entradas analogicas como pueden ser Arduino o Netduino

Si usa un  ESP8266 ( no NodeMCU) no trate de conectarse directa señal de sensor A0. Debe agregar 2.2 KOhm entre señal y A0 y 10KOhm entre A0 a GND.  

arduino.PNG

Para complementar el circuito se conecta un pequeña pantalla OLED  de  2,4cm (128×64)  que ira a los pines digitales  D2 (salida SDA de la pantalla ) y  el pin D1(salida SCL de la pantalla)   ,asi como obviamente la alimentación Vcc( pin 5v) y Gnd

 

 

Software

Se necesita importar biblioteca de paso dos para hacer que funcione este código.

Asimismo debemos abrir ESP_OLED, modificar su contraseña de token, SSID, y el apikey de Cayenne y luego conecte su NodeMCU con el Cable USB al ordenador y suba el código a NodeMCU.

Ahora su OLED debe mostrar algo, esta es la señal si su proyecto trabajado. Y ahora su NodeMCU está conectado al Cayenne, pero pequeño paso otra vez para configurar panel de Cayena que mostrará su BPM y dar un alerta if BPM a alta.

 Configuración de Cayenne

Suponiendo qeu ya tenga  cuenta en Cayenne (es gratuita) ,siga estos pasos

  • Acceda al tablero de Cayena
  • Añadir widget personalizado gráfico de salpicadero de cayena y seleccione Virtual 13 Pin que contienen el valor de BPM de NodeMCU.
  • Agregar desencadenadores y si widget valor por encima del valor que necesites (por ejemplo puese ser 00, pero s160 es suficiente para darnos la alerta) y Cayena enviará alerta al correo electrónico.

Picture of Setting Up Cayenne

 

 

En el siguinte  video podemos ver el funcionamiento del circuito:

 

 

Fuente  aqui
Anuncios