Pages: [1]   Go Down
Author Topic: Heart Rate Logger  (Read 1546 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi

I have interfaced my Arduino board to one of those wireless watch/heart rate monitors and am trying to produce a data logger that will log heart rate over something like a 12 hour period and be able to upload the data to a PC for analysis. I want to know what happens to my heart rate as I sleep  smiley

Has anyone any experience or info they can point me at that will help me create some code that will both allow me to average the pulse by pulse heart rate readings I am receiving and store them away for later retrieval please? Maybe I can log average heart rate readings every 30 seconds so will end up with 1440 readings in a 12 hour period. Some sort of time stamp would be useful too so I can when the heart rate changes occur.

I have mega168 Arduinos.

Mark
Logged

Wuppertal/Germany
Offline Offline
God Member
*****
Karma: 1
Posts: 895
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
since youre heartrate is not likely to go beyond 255 while you're sleeping, a single reading fits into a byte. You should be able to store all the readings on the arduino itself, since this would a little bit more than 1 kb.  
Code:
//here we store the data
byte heartBeats[1440];

for(int i=0;i< 1440;i++) {
  //Receive the heartbeats for the last 30 seconds from the monitor
  beats=WhatverFunctionIsCalledForTheMonitorReading();
  heartBeats[i]=beats;
  delay(30000);  //Wait 30 seconds
}

When you wake up you connect the arduino to your computer and send the data one by one with Serial.Write()
This way you don't have to sleep beside your notebook- (or worse your desktop-) fan.

When you save your data every 30 seconds, you can simply write down the time when you went to bed, otherwise you have to add a real time clock chip to your arduino. (Code for this is somewhere in the playground-section)

Eberhard
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks Eberhard

I guess if I need some sort of more perminent storage I will need to add some EEPROM and maybe an external clock. I have a feeling that I saw a chip that has both at some point in the past. How does the Arduino use the AVRs EEPROM? I could maybe use the 512 bytes and sample less frequently. Or maybe I could use the self programmable FLASH? I'm not sure how though.

Thinking about it, doesn't the Arduino code use SRAM for variable storage as well as other house keeping variables? In which case the 1K in the mega168 won't be enough for the heartbeats() variable will it? SDRAM is also used for the stack too I think.

Anyway I'll make a start with just the AVR processor and work on some start/stop, data transfer and averaging code.

Mark
Logged

london
Offline Offline
Full Member
***
Karma: 0
Posts: 148
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

you could use this http://apple.clickandbuild.com/cnb/shop/ftdichip?op=catalogue-products-null&prodCategoryID=53&title=VDIP1 to write to a usb memory stick.

I have code that works with arduino and the dallas rtc to give time info - I am finishing it and tidying it, but will post to the playground with it soon.

Cheers

Nick
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That looks very interesting, thanks. I'll look out for your code.

Mark
Logged

Daniel
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

hi

do you have the hardware yet for reading the heart rate? It can be very difficult to do. the only reliable way I have seen is with a Polar brand wireless monitor that was hacked to get the heart rate pulse. The other methods, ECG type and Pulse oximitry ( shining alight through a finger and reading the light that emergesz on the other side of the finger) don't work very well for pateints that move around. Pulse oximetry looks simple but in reality when you move your arm, there is a rush of blood that screws up the reading. I built a project like this once and after a few months of working on it concluded that yes, there is a reason that a medical grade heart-rate monitor costs thousands of dollars! smiley

D  
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes I have hacked a chest band wireless wrist watch heart rate monitor. I get a good reliable rate and as I am only really interested to see if the rate changes, it will do the job well.

Mark
Logged

Daniel
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

ah you are smarter than I am then... you jumped right to the only reliable method smiley
Logged

london
Offline Offline
Full Member
***
Karma: 0
Posts: 148
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok I finally got round to putting up my bit of test code for the usb memory stick

http://www.arduino.cc/playground/Main/UsbMemory
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks Nick. That looks great.
Logged

london
Offline Offline
Full Member
***
Karma: 0
Posts: 148
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hope its of use to people.

Should get the time of day stuff sorted for next week too.
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 572
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ok I finally got round to putting up my bit of test code for the usb memory stick

http://www.arduino.cc/playground/Main/UsbMemory

Dude, that is seriously awesome. I would buy the module, but shipping to australia is a killer! Will have to look around for other suppliers.

Thanks for the link and the code.
Logged

london
Offline Offline
Full Member
***
Karma: 0
Posts: 148
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

try here

http://www.ftdichip.com/SalesNetwork/AsiaPacific.htm#Australia-New%20Zealand
Logged

london
Offline Offline
Full Member
***
Karma: 0
Posts: 148
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok this evening I finally got the date stamp to work - so the log file tonight has a modification date of 16th Oct 2007 22.37.

Will put up the code tomorrow once I have tidied it up.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 1
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
can you share how you hacked the wireless HRM?  I need to do something similar and don't know how yet to approach it.
Will it kill my HRM?

Thanks!
Logged

Pages: [1]   Go Up
Jump to: