SkillAgentSearch skills...

BLEHEALTH

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

Install / Use

/learn @drrobotk/BLEHEALTH
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated9mo ago
Forks2

Languages

Python

Security Score

62/100

Audited on Jun 23, 2025

No findings