Simple test
Ensure your device works with this simple test.
examples/ble_heart_rate_simpletest.py
1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
2# SPDX-License-Identifier: MIT
3
4"""
5Read heart rate data from a heart rate peripheral using the standard BLE
6Heart Rate service.
7"""
8
9import time
10
11import adafruit_ble
12from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
13from adafruit_ble.services.standard.device_info import DeviceInfoService
14
15from adafruit_ble_heart_rate import HeartRateService
16
17# PyLint can't find BLERadio for some reason so special case it here.
18ble = adafruit_ble.BLERadio()
19
20hr_connection = None
21
22while True:
23 print("Scanning...")
24 for adv in ble.start_scan(ProvideServicesAdvertisement, timeout=5):
25 if HeartRateService in adv.services:
26 print("found a HeartRateService advertisement")
27 hr_connection = ble.connect(adv)
28 print("Connected")
29 break
30
31 # Stop scanning whether or not we are connected.
32 ble.stop_scan()
33 print("Stopped scan")
34
35 if hr_connection and hr_connection.connected:
36 print("Fetch connection")
37 if DeviceInfoService in hr_connection:
38 dis = hr_connection[DeviceInfoService]
39 try:
40 manufacturer = dis.manufacturer
41 except AttributeError:
42 manufacturer = "(Manufacturer Not specified)"
43 try:
44 model_number = dis.model_number
45 except AttributeError:
46 model_number = "(Model number not specified)"
47 print("Device:", manufacturer, model_number)
48 else:
49 print("No device information")
50 hr_service = hr_connection[HeartRateService]
51 print("Location:", hr_service.location)
52 while hr_connection.connected:
53 print(hr_service.measurement_values)
54 time.sleep(1)