Heart Hat

MAX30102 是一款完整的脉搏血氧和心率传感器系统解决方案,专为满足可穿戴设备的严苛需求而设计。

支持以下产品:

HeartHat

MicroPython 应用示例

 1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from hardware import *
 9from hat import HeartHat
10
11
12Heart = None
13SPO2 = None
14label0 = None
15label1 = None
16i2c0 = None
17hat_heart_0 = None
18
19
20def setup():
21    global Heart, SPO2, label0, label1, i2c0, hat_heart_0
22
23    M5.begin()
24    Heart = Widgets.Label("Heart", 1, 2, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
25    SPO2 = Widgets.Label("SPO2", 3, 122, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
26    label0 = Widgets.Label("0", 5, 45, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu40)
27    label1 = Widgets.Label("0", 7, 169, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu40)
28
29    i2c0 = I2C(0, scl=Pin(26), sda=Pin(0), freq=100000)
30    hat_heart_0 = HeartHat(i2c0, 0x57)
31    hat_heart_0.start()
32
33
34def loop():
35    global Heart, SPO2, label0, label1, i2c0, hat_heart_0
36    M5.update()
37    label0.setText(str(hat_heart_0.get_heart_rate()))
38    label1.setText(str(hat_heart_0.get_spo2()))
39
40
41if __name__ == "__main__":
42    try:
43        setup()
44        while True:
45            loop()
46    except (Exception, KeyboardInterrupt) as e:
47        try:
48            from utility import print_error_msg
49
50            print_error_msg(e)
51        except ImportError:
52            print("please update to latest firmware")

UiFlow2 应用示例

example.png

stickc_heart_example.m5f2

class HeartHat

Constructors

class HeartHat(i2c, address)

初始化 HeartHat。

  • i2c:要使用的 I2C 端口。

  • address:HeartHat 的 I2C 地址。

UIFLOW2:

init.png

Methods

HeartHat.stop()

停止 HeartHat。

UIFLOW2:

stop.png

HeartHat.start()

启动 HeartHat。

UIFLOW2:

start.png

HeartHat.deinit()

反初始化 HeartHat。

UIFLOW2:

deinit.png

HeartHat.get_heart_rate()

获取心率。

UIFLOW2:

get_heart_rate.png

HeartHat.get_spo2()

获取 SpO2。

UIFLOW2:

get_spo2.png

HeartHat.get_ir()

获取 IR 值。

UIFLOW2:

get_ir.png

HeartHat.get_red()

获取红色值。

UIFLOW2:

get_red.png

HeartHat.set_mode(mode)

设置 HeartHat 的模式。

参数:

mode (int) – HeartHat 的检测模式。选项:- HeartHat.MODE_HR_ONLY:仅心率 - HeartHat.MODE_SPO2_HR:心率和 SpO2

UIFLOW2:

set_mode.png

HeartHat.set_led_current(led_current)

设置 HeartHat 的 LED 电流。

参数:

led_current (int) – HeartHat 的 LED 电流。选项:- HeartHat.LED_CURRENT_0MA:0 mA - HeartHat.LED_CURRENT_4_4MA:4.4 mA - HeartHat.LED_CURRENT_7_6MA:7.6 mA - HeartHat.LED_CURRENT_11MA:11 mA - HeartHat.LED_CURRENT_14_2MA:14.2 mA - HeartHat.LED_CURRENT_17_4MA:17.4 mA - HeartHat.LED_CURRENT_20_8MA:20.8 mA - HeartHat.LED_CURRENT_24MA:24 mA - HeartHat.LED_CURRENT_27_1MA:27.1 mA - HeartHat.LED_CURRENT_30_6MA:30.6 mA - HeartHat.LED_CURRENT_33_8MA:33.8 mA - HeartHat.LED_CURRENT_37MA:37 mA - HeartHat.LED_CURRENT_40_2MA:40.2 mA - HeartHat.LED_CURRENT_43_6MA:43.6 mA - HeartHat.LED_CURRENT_46_8MA:46.8 mA - HeartHat.LED_CURRENT_50MA:50 mA

UIFLOW2:

set_led_current.png

HeartHat.set_pulse_width(pulse_width)

设置 HeartHat 的脉冲宽度。

参数:

pulse_width (int) – HeartHat 的脉冲宽度。可选项:- HeartHat.PULSE_WIDTH_200US_ADC_13:200us - HeartHat.PULSE_WIDTH_400US_ADC_14:400us - HeartHat.PULSE_WIDTH_800US_ADC_15:800us - HeartHat.PULSE_WIDTH_1600US_ADC_16:1600us

UIFLOW2:

set_pulse_width.png

HeartHat.set_sampling_rate(sampling_rate)

设置 HeartHat 的采样率。

参数:

sampling_rate (int) – HeartHat 的采样率。选项:- HeartHat.SAMPLING_RATE_50HZ:50Hz - HeartHat.SAMPLING_RATE_100HZ:100Hz - HeartHat.SAMPLING_RATE_167HZ:167Hz - HeartHat.SAMPLING_RATE_200HZ:200Hz - HeartHat.SAMPLING_RATE_400HZ:400Hz - HeartHat.SAMPLING_RATE_600HZ:600Hz - HeartHat.SAMPLING_RATE_800HZ:800Hz - HeartHat.SAMPLING_RATE_1000HZ:1000Hz

UIFLOW2:

set_sampling_rate.png

Constants

HeartHat.MODE_HR_ONLY

仅检测心率。

HeartHat.MODE_SPO2_HR

检测心率和血氧饱和度。