Skip to content

Reading heart rate (bpm), blood pressure (mmHg) and blood oxygen (%) from BLE smart watches using python. Live plot of real-time HR readings.

Notifications You must be signed in to change notification settings

drrobotk/BLEHEALTH

Repository files navigation

BLEHEALTH

Reading Heart Rate (bpm), Systolic/Diastolic Blood Pressure (mmHg) and SpO2 Blood Oxygen (%) from BLE smart watches in Python.

Live plot of real-time HR readings using gnuplot.

Tested on a laptop running Ubuntu 18.04.2 LTS and a Rapberry Pi 3 B+ running Raspbian.

Requirements

I personally used the following two watches as a starting point, but the code can be adapted to most BLE devices with the same features after you identify the handles in which to enable notifications and activate the particular sensor.

Watch 1 (£9.99): https://www.ebay.co.uk/itm/Bluetooth-Smart-Fit-bit-watch-Heart-Rate-Blood-Pressure-Monitor-Fitness-Tracker/392261520327?ssPageName=STRK%3AMEBIDX%3AIT&var=661217069201&_trksid=p2060353.m2749.l2649

w1

Watch 2 (£23.57): https://www.ebay.co.uk/itm/M19-Plus-Sport-Waterproof-Smart-Bluetooth-Bracelet-Calorie-Step-Counter-AC1768/163542991010?epid=21029075228&hash=item2613ec00a2:g:PowAAOSwR2ZcZULc

w2

Install

sudo apt-get -y install bluez gnuplot
sudo pip install pexpect
git clone https://github.com/drrobotk/BLEHEALTH
cd BLEHEALTH
sudo chmod +x liveplot.sh
sudo chmod +x health.sh

Usage

Display health stats:

./health.sh w

Display HR live plot:

./liveplot.sh w

where w (=1,2) is the watch number.

Examples

You will need 2 bluetooth dongles to run the code with two BLE watches concurrently.

Showing health stats (watch 1 & 2):

code1

Showing a live HR plot (watch 2) and health stats (watch 1):

code2

About

Reading heart rate (bpm), blood pressure (mmHg) and blood oxygen (%) from BLE smart watches using python. Live plot of real-time HR readings.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published