Académique Documents
Professionnel Documents
Culture Documents
Sensor Medidor
de Ritmo Cardaco
PARALELO: 2
INTEGRANTES:
Introduccin .................................................................................................................................. 2
Objetivos ......................................................................................................................................... 2
Simulacin...................................................................................................................................... 5
Implementacin ........................................................................................................................... 7
Cambios realizados...................................................................................................................14
Conclusiones ...............................................................................................................................19
Recomendaciones .....................................................................................................................19
Bibliografa ..................................................................................................................................19
Anexos ...........................................................................................................................................20
1
Introduccin
Objetivos
Usar cdigo protocolo http para comunicarse con el servidor y html para
la presentacin de la pgina web.
2
Breve descripcin terica
3
Led Rojo: acta como fuente emisora de luz, la cual brilla a travs de
los tejidos y la variacin en el volumen de la sangre altera la cantidad
de luz que incide en el detector.
Fotoreceptor: el LDR capta el cambio en la fluctuacin de la sangre,
para luego procesar esta seal.
Amplificador: utiliza un OPAMP LM358 dual para proporcionar dos
etapas de paso de banda sintonizados ampliamente idnticos con
ganancias de 100.
4
Simulacin
5
Pruebas con Arduino
Se muestra en el Monitor Serial los primeros resultados despus de procesar los
datos analgicos luego obtenemos la frecuencia del pulso cardaco.
Una vez que logramos conectarnos con nuestro servidor, se puede apreciar como los
resultados en una pgina web sencilla.
6
Finalmente se muestra la pgina con una apariencia ms amigable para la monitorizacin
de la frecuencia cardaca del paciente.
Implementacin
Sensor de ritmo cardaco: para construir el circuito usamos un LED rojo y un LDR,
ste ltimo censar cada cambio del flujo sanguneo, luego la seal pasa por dos
amplificadores para lo cual usamos el integrado LM358 que servir como filtro pasa
banda y a su vez amplificar la seal. El potencimetro permite que la ganancia
global para se ajuste para evitar el recorte en las seales grandes. Los dos
condensadores de 2,2 uF deben ser capaces de soportar cierta polarizacin inversa
por lo que deben ser no polarizado o tantalio. En la Figura 1 se muestra que la parte
de del sensor est situada en la parte de abajo del circuito y a su vez se coloca fomix
negro para evitar que haya mucha entrada de luz y nuestro sensor captar la seal
del pulso con menos prdidas.
Figura 1.
7
Microcontrolador: para procesar la informacin, se convierta en un web server y
dichos datos sean transmitidos al internet y poder visualizarlo desde cualquier parte
dentro de una misma red LAN, hacemos uso del Ethernet Shield.
El cdigo que se us para la configuracin del proyecto se detalla a continuacin:
//webserver
#include <SPI.h>
#include <Ethernet.h>
const int sensorPin= A1;
int period=1000;
int change =0.0;
double intvalue=0.0;
double oldvalue=0.0;
static double oldchange=0;
int zumbador = 8;
int freq = 440;
int duration = 2000;
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 102);
8
void setup() {
// Open serial communications and wait for port to open:
Serial3.begin(9600);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
9
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after
completion of the response
client.println("Refresh: 1"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head><title>PROYECTO ESPOL.</title>");
client.println("<body bgcolor=\"black\" text=\"white\"><h1
style=\"color:#99ff33;\" style=\"font-size:800%;\"><U><CENTER>MEDIDOR DE
PULSO CARDIACO</CENTER></U></h1>");
// output the value of each analog input pin
static double oldchange=0;
intvalue=analogRead(sensorPin);
double value=(0.75*oldvalue)+((1-0.75)*intvalue);
value=value+10;
change=(value-oldvalue);
delay(period);
if(value<50){
client.println("<h2 style=\"color:RED;\"style=\"font-size:360%;\">PULSO
MUY BAJO - BRADICARDIA:\n\n\n\n");
client.println("<h3 style=\"font-size:1000%;\"> <CENTER>");
client.println(String(value));
tone(zumbador,freq,duration);
client.println("<img border=\"0\" height=\"190\" width=\"255\"
src=\"http://www.gifmania.com/Gif-Animados-Objetos/Imagenes-
10
Ciencia/Medicina/Urgencias/Alerta-De-Emergencia-90821.gif\"
/><RIGHT></RIGHT> ");
client.println("</h2></h3></CENTER>");
delay(1);
client.println("</html>");
break;
}
else if(value>90){
client.println("<h2 style=\"color:RED;\"style=\"font-size:360%;\">PULSO
MUY ALTO - TAQUICARDIA:\n\n\n\n");
client.println("<h3 style=\"font-size:1000%;\"> <CENTER>");
client.println(String(value));
tone(zumbador,freq,duration);
client.println("<img border=\"0\" height=\"190\" width=\"255\"
src=\"http://www.gifmania.com/Gif-Animados-Objetos/Imagenes-
Ciencia/Medicina/Urgencias/Alerta-De-Emergencia-90821.gif\"
/><RIGHT></RIGHT> ");
client.println("</h2></h3></CENTER>");
delay(1);
client.println("</html>");
break;
}
else{
client.println("<h2 style=\"font-size:160%;\">Su pulso es de:\n\n\n\n");
client.println("<h3 style=\"font-size:1000%;\"><CENTER>");
client.println(String(value));
client.println("<img border=\"0\" height=\"190\" width=\"255\"
src=\"http://www.gifsanimados.co/gifs-
animados/Corazones/images/Corazones%20%28247%29.gif\"
/><RIGHT></RIGHT> ");
client.println("</h2></h3></CENTER>");
delay(1);
11
client.println("</html>");
break;
}
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
Ethernet.maintain();
}
}
12
Resultados reales y anlisis de los resultados
Debido a que en este proyecto se requiere ver la informacin procesada del circuito
y emitir algn tipo de alarma con niveles muy bajos o altos de ritmo cardaco, se cre
una pgina web sencilla debido a que dentro del Arduino no podemos usar algn
tipo de lenguaje de programacin para servidores, lo cual nos limita que el diseo
de nuestra pgina sea totalmente dinmica, sin embargo los datos se observan sin
ningn problema actualizndose cada segundo.
13
Lista de precios
Futuros trabajos
Como aplicacin para uso exclusivo de los Doctores de un hospital se podra crear
cuentas donde ingresen usuario y contrasea para inicio de sesin del sistema, que
despus le permita ver el listado de sus pacientes y monitorear el pulso cardaco de
los mismos.
Cambios realizados
14
AT+RST Resetea el mdulo wifi.
AT+CWLAP Escanea y enlista las redes que se encuentran disponible dentro del
alcance el mdulo.
El cdigo realizado con estos comandos para el proyecto se detalla, en las siguientes
lneas.
void setup()
{ Serial3.begin(9600);
Serial.begin(9600);
delay (1000);
int index = 0;
15
if ( s.startsWith("OK"))
break;
if ( s.startsWith("ready"))
break;
// if (millis()-T >10000) break;
}
Serial.println("....................");
}
}
void loop()
{ while (Serial3.available() >0 )
{ char c = Serial3.read();
if (c == 71)
{ Serial.println("Enviada Web Request");
webserver();
delay(500);
}
}
}
16
http("<meta http-equiv=\"refresh\" content=\"1\"></head>");
http("<body bgcolor=\"black\" text=\"white\"><h1 style=\"color:#99ff33;\"
style=\"font-size:800%;\"><U><CENTER>MEDIDOR DE PULSO
CARDIACO</CENTER></U></h1>");
if(value>50&& value<90){
http("<h2 style=\"font-size:160%;\">Su pulso es de:\n\n\n\n");
http("<h3 style=\"font-size:1000%;\"><CENTER>");
http(String(value));
http("<img border=\"0\" height=\"190\" width=\"255\"
src=\"http://www.gifsanimados.co/gifs-
animados/Corazones/images/Corazones%20%28247%29.gif\"
/><RIGHT></RIGHT> ");
http("</h2></h3></CENTER>");
delay(1);
Serial3.println("AT+CIPCLOSE=0");
}
else{
http("<h2 style=\"color:RED;\"style=\"font-size:360%;\">PULSO MUY
BAJO:\n\n\n\n");
http("<h3 style=\"font-size:1000%;\"> <CENTER>");
http(String(value));
http("<img border=\"0\" height=\"190\" width=\"255\"
src=\"http://www.gifmania.com/Gif-Animados-Objetos/Imagenes-
Ciencia/Medicina/Urgencias/Alerta-De-Emergencia-90821.gif\"
/><RIGHT></RIGHT> ");
http("</h2></h3></CENTER>");
delay(1);
Serial3.println("AT+CIPCLOSE=0");
}
}
String GetLineWIFI()
{ String S = "" ;
int ji=1;
if (ji=1)
{ char c = Serial3.read(); ;
while ( c != '\n' ) //Hasta que el caracter sea intro
17
{ S=S+c;
delay(25) ;
c = Serial3.read();
}
return( S ) ;
}
}
18
Conclusiones
Para poder crear una pgina web completamente dinmica, se necesita de
elementos ms potentes como un raspberry pi, se decidi trabajar slo con el
arduino por facilidad de cdigo y a su vez es ms ligero ya que es un medidor de
ritmo cardaco porttil, mientras que el uso del raspberry haca del proyecto
ms robusto.
La frecuencia cardaca normal oscila entre 50 a 100 latidos por minuto, fuera de
estos rangos el paciente puede sufrir de bradicardia (por debajo de los 50 latidos
por minuto) o taquicardia (por encima de 100 latidos por minuto).
Recomendaciones
Buscar varios diagramas de circuitos y probar cul es el ms eficiente.
Tratar de usar mnimo 4 etapas de filtrado para obtener una mejor seal del
ritmo cardaco.
Cubrir por completo la seccin del sensor tratando que ingrese la menor
cantidad de luz posible para obtener la seal correcta.
Bibliografa
https://www.fiec.espol.edu.ec/electronica-
medica/Diseno%20y%20construccion%20de%20un%20contador%20card
iaco,%20basado%20en%20un%20principio%20optico.pdf
https://riunet.upv.es/bitstream/handle/10251/49716/MEMORIAdefinitiv
a_14047195741583523182364041613508.pdf?sequence=3
http://www.urp.edu.pe/pdf/ingenieria/electronica/CIR-
12_Pulso_cardiaco.pdf
http://diymakers.es/crear-servidor-web-con-arduino/
https://www.arduino.cc/en/Tutorial/WebServer
19
Anexos
21
CAPTURAS DE LA PGINA WEB
22