Skip to content

Latest commit

 

History

History
55 lines (40 loc) · 2.08 KB

README.md

File metadata and controls

55 lines (40 loc) · 2.08 KB

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