Things used in this project

Custom parts and enclosures

SUMO Finger Holder

Code

Sumo Arduino SketchArduino
/*
 * Smart Pulse Monitor 
 * Author : Geeve George
 */
 
 
#include <Wire.h>

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 SketchArduino
/*
 * Smart Pulse Monitor 
 * Author : 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++;
    }
    }
    }
AWS Lambda FunctionJavaScript
var https = require('https');

var CONFIG = {
 
  partner_token:          'API_TOKEN',
  token:                  'USER_TOKEN', 
  user_id:    "user_id",
  serial_id:   "serial_id",
 
},
DATA = {};

function logData(event, context) {
  var clickType = event.clickType;
  switch(clickType.toLowerCase()) {
   
    }
    }
    }

  var data = {
    
    user_name:            CONFIG.user_name;
    sl_no:           CONFIG.dl_no;
    ,
    datalog: {},
    order_comment:                  'The data was sucesfully stored'
  };

 
  data = JSON.stringify(data);
  
  var headers = {
    'Content-Type':   'application/json',
    'Content-Length': Buffer.byteLength(data)
  };


  var req = https.request(options, function(res) {
    console.log(res.statusCode);
    if (res.statusCode == 200 || res.statusCode == 201) {
      context.succeed(event);
    } else if (context) {
      context.fail(event);
    }

    res.on('data', function (chunk) {
      console.log("" + chunk);
    });
  });

  req.write(data);
  req.end();
}

exports.handler = logData;

Credits

Tedx zpsttf3on7
Geeve George

I work on arduino, intel edison and android development for making assistive technologies for specially abled people.

Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Similar projects you might like

Magic VR Hat
Advanced
  • 473
  • 5

Wear the hat, get transported to different 360 VR experience.

Identifying Birds Using Machine Learning
Advanced
  • 458
  • 5

Full instructions

We use the Intel Edison to record bird vocalizations and pass them to a predictive model to identify four bird species from the recordings.

Let it Snow - IoT Snow Globe with Virtual Reality Web - V2
Advanced
  • 92
  • 0

Tip the snow globe over to make it snow in VR or press the temperature sensor to raise the temp and experience smog/haze in VR.

Air Quality License Plate Holder
Advanced
  • 1,744
  • 4

Full instructions

Air Quality License Plate Holder uses air quality sensor attaching to the vehicle to monitor the air quality through out the city.

Lake turbidity and environmental monitoring  with BLE
Advanced
  • 422
  • 6

Full instructions

Monitor lake turbidity as well as temperature and humidity with your smartphone via BLE

TCP/IP Multisensor
Advanced
  • 240
  • 1

Work in progress

Arduino based sensor that communicates over TCP/IP. Can be used stand-alone or part of a Raspberry based data logger with a web UI.

TCP/IP Multisensor

Team Kallio Designs

Sign up / LoginProjectsPlatformsTopicsContestsLiveAppsBetaFree StoreBlog