Introduction: SUMO : Smart Pulse Monitor ( a Low Cost Smart ECG )

Picture of SUMO : Smart Pulse Monitor ( a Low Cost Smart ECG )

Hello Everyone,

I'm Geeve George a 15 year old Maker/Electronics Hobbyist.I love Computer Vision , Android Development and Algorithm Design.I am currently in 11th Grade Computer Science Student at Little Rock Indian School. :) Find more about me at : www.geevegeorge.co.vu.


What is Electrocardiography ?

Electrocardiography (ECG in British English and EKG in American English) is the process of recording the electrical activity of the heart over a period of time using electrodes placed on a patient's body. These electrodes detect the tiny electrical changes on the skin that arise from the heart muscle depolarizing during each heartbeat.


What is Photoplethysmogram ?

A photoplethysmogram (PPG) is an optically obtained plethysmogram, a volumetric measurement of an organ. A PPG is often obtained by using a pulse oximeter which illuminates the skin and measures changes in light absorption.[1] A conventional pulse oximeter monitors the perfusion of blood to the dermis and subcutaneous tissue of the skin.


What is SUMO ?


Introduction :

As all of you know 2015 is known as the International Year Of Lightso my Physics teacher asked all the students to work on a project related to light.

I was fascinated with light since a very young age , and observing the ways light behave through lenses and learn about these changes made me even more interested in light.

Coming back to my project , two months ago I was sitting on my Table and preparing for my Mid-Term exams , suddenly there was a power-cut and due to this I turned on my emergency lamp.The first thing I did was place my hand on my emergency lamp and I observed that :

  • When blood flows through my finger the intensity of light passing through and entering my eye decreases so my finger looks dark under the bright lamp.
  • When the blood goes back from my finger the intensity of light passing through and entering my eye increases so my finger looks bright red under the bright lamp.

This made me curious and this is how I started building SUMO.


About the Device :

SUMO is made up of the Intel Edison Board at Heart.It is connected to a 16*2 Grove RGB LCD Display , the main components are a LDR ( Light Dependent Resistor ) and a White LED.The detailed setup will be under the Hardware Setup Step.

What makes SUMO "SMART" ?

SUMO uses an algorithm which converts raw analog sensor data into BPM ( Beat's Per Minute ) so that a user can get a standard measurement of his pulse rate.

SUMO has a simple design making it wearable , low cost and easy to use.

SUMO can be hooked up to a Bluetooth shield ( 1Sheeld ) and using the DataLogger shield you can log the heart rate 24x7 thus making it your personal health monitoring device.


Have fun building SUMO!

Step 1: Hardware Setup!

Picture of Hardware Setup!


Materials Required :


  1. Intel Edison Board [ Buy Here ]
  2. Grove RGB LCD Backlight [ Buy Here ]
  3. Grove 4 Pin AWG Wires [ Buy Here ]
  4. Breadboard [ Buy Here ]
  5. LDR ( Photoresistor ) [ Buy Here ]
  6. White LED [ Buy Here ]
  7. Single/Jumper Wires [ Buy Here ]
  8. Plastic/PVC Tube
  9. 10k and 220 Ohm resistors [ Buy Here ]
  10. Grove Base Shield [ Buy Here ]
  11. Micro USB Cables ( 2X ) [ Buy Here ]


Setting Up Hardware Parts :


  • Firstly you need to fix the Grove Base Shield on the Edison Board.
  • Then , connect the 16*2 LCD module to the 12C pin in the Grove Shield.
  • Next , You need to take the LDR , and solder two wires to the two leads of the LDR.
  • Then , you need to take out a White LED , and then solder a 220 ohm resistor to the +ve lead of the LED.
  • Next , you have to solder a wire to the open lead of the resistor that is soldered to the +ve lead of the LED.
  • Then , You have to solder another wire to the -ve lead of the LED.
  • Now , take the Hollow Cylindrical tube and drill two holes parallel to each other or 3D print a tube by looking at the 3D Design below
  • On one of the drilled holes fix the LED such that the Bulb is inside the tube , and then on the other hole fix an LDR such that the hand can be placed in between the LDR and the LED.
  • Now , connect the Wires of attached to the LDR as shown in the Circuit Image above.
  • Next , connect the +ve lead of the LED to 5V and -ve lead of the LED to ground as shown in the Circuit Image above.
  • You can see the 3D Design below , make sure that you edit the model so that it fits the Dimension of your Finger!
  • Yay! You are done with the hardware setup , A detailed and fun setup can be seen in the next section! :)

Handy Note :

  • When I was testing SUMO , I inserted my INDEX FINGER inside the Tube. I suggest that you use the Index finger.
  • When designing the Tube make sure that you have enough place for your finger to fit inside , the average width of the Index finger is : 4cm


SUMO Finger Holder 3D Design :



Step 2: Three Step Hardware Setup!

Picture of Three Step Hardware Setup!

Step 3: Software Setup!

Picture of Software Setup!

Firstly , You need to setup all the software necessary to work with the Intel Edison.


Two things to get you kickstarted :


  1. Intel Edison Getting Started – A Step-By-Step Tutorial (windows) :

2. Intel Edison Getting Started Official Developer Guide [ Read Here ]


Github Repository : [SUMO_ppg]


Edison Code :


/*
* Smart Pulse Monitor * Author : Geeve George * Instructables : https://www.instructables.com/member/Geeve+George/ */ #include

const int analogInPin = A0;

int sensorValue = 0;

int count=0; unsigned long time1=0; unsigned long time2;

#include "rgb_lcd.h"

rgb_lcd lcd;

const int colorR = 255; const int colorG = 0; const int colorB = 0;

void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); }

void loop() {

if(count==0) {time1=millis(); } time2=millis(); sensorValue = analogRead(analogInPin); if(time2>=time1+10000) { counter(); }

if(sensorValue <500){ lcd.clear(); Serial.println("Insert finger"); lcd.setCursor(0,0); lcd.print("Insert Finger"); return; }

if(sensorValue >500){ lcd.clear(); digitalWrite(Led, HIGH); increment();

Serial.println(sensorValue); Serial.println(count); Serial.println(time2); lcd.setCursor(0,0); lcd.print("Counting"); } delay(200); }

void increment() { count++;

}

void counter() { lcd.clear(); count=count*6; Serial.print("Heart beat: "); Serial.print(count); lcd.setCursor(0,0); lcd.print("Heart beat:"); lcd.setCursor(0,1); lcd.print(count); lcd.print(" BPM"); time1=0; time2=0; count=0; delay(5000);

}


Processing Code :



/*
* Smart Pulse Monitor * Author : Geeve George * Instrubtables : https://www.instructables.com/member/Geeve+George/ */

import processing.serial.*; Serial myPort; int xPos = 1; float oldHeartrateHeight = 0;

void setup () { // set the window size: size(1000, 200); frameRate(30);

// List available serial ports. println(Serial.list());

// Setup which serial port to use. // This line might change for different computers. myPort = new Serial(this, "COM16", 115200);

// set inital background: background(0); }

void draw () { }

void serialEvent (Serial myPort) { // read the string from the serial port. String inString = myPort.readStringUntil('\n');

if (inString != null) { // trim off any whitespace: inString = trim(inString); // convert to an int println(inString); int currentHeartrate = int(inString);

// draw the Heartrate BPM Graph. float heartrateHeight = map(currentHeartrate, 0, 1023, 0, height); stroke(0,255,0); line(xPos - 1, height - oldHeartrateHeight, xPos, height - heartrateHeight); oldHeartrateHeight = heartrateHeight; // at the edge of the screen, go back to the beginning: if (xPos >= width) { xPos = 0; background(0); } else { // increment the horizontal position: xPos++; } } }

Step 4: Results & the Team!

Picture of Results & the Team!

Since we started building this Project Couple of Months ago deep down inside our heart we wanted to Open Source this Project , now we are happy to share this project with the World.


Further Implications :

You can use the 1Sheeld DataLogger Shield to log Pulse Data using which you can monitor your health status 24*7.

SUMO : A Smart Pulse Monitor :



Processing Real Time Graph :






Now it's your turn to HACK SUMO and make it better! #KeepMaking!


Find More about me at : www.geevegeorge.co.vu

Comments

JustaGuyInLuv (author)2017-03-30

i'm not able to understand how the code reads input for 10 sec and more specifically use of these lines of code:

if(count==0)

{time1=millis();

}

time2=millis();

sensorValue = analogRead(analogInPin);

if(time2>=time1+10000)

{ counter();

}

ohoilett (author)2015-11-25

Cool stuff dude.

Geeve George (author)ohoilett2015-12-11

Thank you!! :)

set2Xplode (author)2015-11-07

still cool though (;

Geeve George (author)set2Xplode2015-11-09

Thank you :) The idea of the project is to make a low cost wearable pulse monitor to be used by humans and pets. As it acts like a 24*7 health monitoring device for your pet :)

set2Xplode (author)Geeve George2015-11-09

wow! I'll give it a go next time I go to my uncles house - he's a engineer (:

set2Xplode (author)2015-11-07

what does this hav to do w pets ??

About This Instructable

3,189views

81favorites

License:

Bio: Maker. Moonshot thinker. Researcher. Programmer. Quizzer. Teenager!
More by Geeve George:LeapTek : Leap Motion Interface with MediaTek LinkIt ONE Board!SCOUT : Smart People Counter! ( A low cost counter for Crowd Density Mapping at Large Gatherings and Shopping Malls )WEAR : A Women Safety Wearable Device
Add instructable to: