En el programa «Aprende con la empresa» financiado por los fondos sociales europeos para la Formación Profesional, hemos desarrollado un sensor biométrico que toma las constantes vitales y las envía por WiFi a un servidor en la nube donde se convierten en un gráfico que se puede analizar desde cualquier lugar del mundo con un dispositivo y una conexión a internet.
Para el desarrollo hemos utilizado un microprocesador ESP32 con Bluetooth y WiFi.
El ECG o electrocardiograma es una prueba diagnóstica que evalúa el ritmo cardiaco mediante el registro de la actividad eléctrica del corazón con cada latido.
Con un sensor ECG se obtienen las señales de los latidos. El sensor AD8232 está calibrado para señales ECG eliminando los ruidos de electrodométicos cercanos.
Vamos a recoger los datos de tres formas diferentes: local, bluetooth y WiFi
Desarrollo 1: Arduino uno conectado a sensor ECG.
Colocamos las conexiones según se indica en el esquema de la imagen.

Utilizamos el IDE de Arduino para cargar el código siguiente
void setup() {
// initialize the serial communication:
Serial.begin(9600);
pinMode(10, INPUT); // Setup for leads off detection LO +
pinMode(11, INPUT); // Setup for leads off detection LO -
}
void loop() {
if((digitalRead(10) == 1)||(digitalRead(11) == 1)){
Serial.println('!');
}
else{
// send the value of analog input 0:
Serial.println(analogRead(A0));
}
//Wait for a bit to keep serial data from saturating
delay(1);
}
Si abrimos en monitor serie del IDE de Arduino (Ctrl+Mayús+M) podremos ver la representación en tiempo real.

Debemos conectar los electrocardiogramas como indican las instrucciones del propio dispositivo.

Desarrollo 2: ESP32 conectado a sensor ECG.
La placa ESP32 está provista de WiFi y Bluetooth. Esta placa se puede gestionar desde el propio IDE de Arduino para cargar el código. https://youtu.be/wVRcAMWvWko
Conectamos la placa ESP32 al sensor ECG como se muestra en la imagen.

Antes de cargar el código debemos conseguir el TOKEN de Ubidots, dándonos de alta en Ubidots y accediendo a credenciales API.

Ahora cargamos el código con el IDE de Arduino.
/****************************************
* Librerías
****************************************/
#include <WiFi.h>
#include <PubSubClient.h>
#define WIFISSID "el nombre de tu wifi" // Nombre de la red WiFi
#define PASSWORD "tu clave wifi" // Clave de la red WiFi
#define TOKEN "tu token de Ubidots" // TOKEN de UbiDot
#define MQTT_CLIENT_NAME "1234a5d6798" // Nombre MQTT
/****************************************
* Constantes
****************************************/
#define VARIABLE_LABEL "sensor" // Asignar la etiqueta de variable
#define DEVICE_LABEL "esp32" // Asignar la etiqueta del dispositivo
#define SENSOR A0 // Conetar A0 como SENSOR
char mqttBroker[] = "industrial.api.ubidots.com";
char payload[100];
char topic[150];
// Espacio para almacenar valores para enviar
char str_sensor[10];
/****************************************
* Funciones auxiliares
****************************************/
WiFiClient ubidots;
PubSubClient client(ubidots);
void callback(char* topic, byte* payload, unsigned int length) {
char p[length + 1];
memcpy(p, payload, length);
p[length] = NULL;
Serial.write(payload, length);
Serial.println(topic);
}
void reconnect() {
// Bucle hasta que estemos conectados
while (!client.connected()) {
Serial.println("Attempting MQTT connection...");
// Attemp to connect
if (client.connect(MQTT_CLIENT_NAME, TOKEN, "")) {
Serial.println("Connected");
} else {
Serial.print("Failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 2 seconds");
// Wait 2 seconds before retrying
delay(2000);
}
}
}
/****************************************
* Funciones
****************************************/
void setup() {
Serial.begin(115200);
WiFi.begin(WIFISSID, PASSWORD);
// Assign the pin as INPUT
pinMode(SENSOR, INPUT);
Serial.println();
Serial.print("Esperando WiFi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi Conectado");
Serial.println("Dirección IP: ");
Serial.println(WiFi.localIP());
client.setServer(mqttBroker, 1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) {
reconnect();
}
sprintf(topic, "%s%s", "/v1.6/devices/", DEVICE_LABEL);
sprintf(payload, "%s", ""); // Limpiar
sprintf(payload, "{\"%s\":", VARIABLE_LABEL); // Variable label
float sensor = analogRead(SENSOR);
/* 4 is minimum width, 2 is precision; float value is copied onto str_sensor*/
dtostrf(sensor, 4, 2, str_sensor);
sprintf(payload, "%s {\"value\": %s}}", payload, str_sensor); // Añadir a valor
Serial.println("Publicando datos Ubidots Cloud");
client.publish(topic, payload);
client.loop();
delay(500);
}
Conectamos el dispositivo con Ubidots, aunque se podría usar otros servidores en la nube como AWS o Google Clound. Los pasos a seguir son los siguientes:
1.- Pulsando el signo «+» en el margen superior derecho de la pantalla añadimos un widget.

2.- Elegimos el tipo de gráfico de líneas.

3.- Agregamos el sensor.


4.- Limitamos el eje de la Y.

El resultado que obtendremos es un gráfico de este tipo.

Implementación de ECG en la Empresa
La integración de sistemas de ECG (electrocardiograma) dentro del entorno empresarial abre un abanico de posibilidades para la monitorización de la salud en tiempo real de los trabajadores, especialmente en entornos de alto riesgo o en posiciones que requieren monitoreo constante de las constantes vitales. La empresa que se mantiene a la vanguardia en la adopción de tecnología biométrica no solo se beneficia de un aumento en la seguridad laboral, sino también en optimización del rendimiento y bienestar general del equipo humano.
La aplicación de dispositivos ECG en la empresa facilita la creación de un ambiente de trabajo más seguro y saludable. Mediante el uso de esta tecnología avanzada, es posible detectar de manera temprana cualquier anomalía en el ritmo cardíaco de los empleados, permitiendo una intervención rápida y la prevención de posibles incidentes o emergencias médicas. La movilidad que ofrecen las soluciones basadas en WiFi se alinea perfectamente con la accionabilidad en tiempo real que se espera en el mundo corporativo de hoy.
Además, la adopción de sistemas ECG por parte de la empresa refleja un compromiso firme con la salud y la seguridad en el trabajo, una inversión que puede resultar atractiva para el talento que valora estas cualidades en su entorno laboral. En definitiva, la incorporación de un ECG en la empresa no solo mejora la seguridad, sino que promueve una cultura de atención al bienestar del personal, lo cual es un activo valioso en cualquier organización.
Juande Marín
Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin




