转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇

一、前言

这几年智能穿戴设备大火,尤其是手环类,从Apple Watch到荣耀手环,再到不知名的某些品牌,智能穿戴设备是铺天盖地的来了。
而其中心率监测基本上是所有穿戴设备的“标配”,为啥会如此重视心率监测?心率监测到底有必要吗?

1.持续的心率监测有助于诊断疾病

人每一次脉搏的搏动,都代表一次有效的心脏跳动,每分钟心脏跳动的次数就是心率。心率是最直接反映我们心脏健康的标志。心脏

是血液泵出的动力,也是各器官系统以及整个身体正常运行的保证。

2.心率是最好的运动“导师”

如果是经常做运动的朋友应该都知道,平时运动时可以根据心率数据更好地控制运动强度,因为心率和吸氧量及最大摄氧量呈线性关

系,而且最大心率百分比也和最大摄氧量的百分比呈线性关系,所以在跑步过程中,使用心率控制运动强度是最简单易行的方法。

二、心率监测的方法

1、PPG光电容积法

由于人体的皮肤、骨骼、肌肉、脂肪等对于光的反射是固定值,而毛细血管和动脉、静脉由于随着脉搏容积不停变大变小,所以对光

的反射值是波动值,而这个波动值正好与心率一致,所以光电容积法正是通过这个波动的频率来确定使用者的心率数据。

目前市面上绝大多数的智能手环/手表都采用这种方式监测心率,而且这种方式的技术方案已经比较成熟,所以价格也相对较低。

2、心电信号测量法

还有一种就是心电信号测量法,它通过智能穿戴设备上搭载的传感器捕捉人每次心跳时微小的电极变化,再经过算法还原出心率跳动

的频率,原理和心电图类似原理。目前已经很少有智能穿戴设备采用这种方式了。

三、TPYBoard心率监测器的制作过程

上面叨叨了这么多,接下来就进入正题。开始心率监测器的制作。首先先来介绍,里面最重要的器件-MAX30102心率模块。
MAX30102心率模块介绍

MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了一个红光 LEO 和一个红外光 LEO 、光电检测器、光器

件,以及带环境光抑制的低噪声电子电路。MAX30102采用一个 1.8V电源和一个独立的 5.0V 用于内部 LEO 的电源,应用于可穿戴设

备进行心率和血氧采集检测,佩戴于手指、耳垂和手腕等处。标准的I2C兼容的通信接口可以将采集到的数值传输给Arduino、STM32

等单片机进行心率和血氧计算。此外,该芯片还可通过软件关断模块,待机电流接近为零,实现电源始终维持供电状态。

参考了各种资料,用micropython写了个MAX30102模块的驱动,这里不就不贴源码,给个地址(文章末)大家自己去下载学习,里面也

有各种手册、STM32单片机以及Arduino实现的源码。

现在可以监测心率数据,但是还需要一个显示屏来进行显示,这里我选择用OLED显示屏。先参照下面信息,把硬件连接起来。

TPYBoard v102 MAX30102模块
3V3 VIN
Y10 SDA
Y9 SCL
GND GND
Y12 INT

接好线了之后,把MAX30102模块的相关驱动文件拷贝到TPYBFLASH磁盘中,然后编写main.py。保存完毕,使用PuTTY软件启动运行程序,确认程序无错误。

四、演示效果

1. 程序运行后,显示屏会显示一个心形的图案,同时MAX30102模块上的红色LED灯会亮起;

2. 将手指放置模块红色LED处,按下板载的USR按键启动测量,显示屏会提示测量中;

3. 确保手指接触良好的情况下,大约等待40秒左右,显示屏会显示测量出的心率值,此时就可以把手拿开了。

五、总结

使用MAX30102测量的心率值与荣耀手环4测量的心率值接近(大概有2-3值的差别)。程序中也有对血氧饱和度的测试,大家可以从程

序中提取出来显示在显示屏上。但是需要注意的是,因为是基于查找表来确定血氧含量,所以每个血氧传感器都需要和专业仪器进行

标定才准确。此外,RED LED的波长尤其容易受到环境温度影响,所以程序上要考虑到温度对血氧精确度的影响,这也是MAX30102本

身带有温度传感器功能的主要原因。所以程序中的血氧饱和度是仅供参考,并不准准确。

GitHub源码下载地址:https://github.com/TPYBoard/TPYBoard-v102

MAX30102参考资料:http://old.tpyboard.com/downloads/docs/MAX30102参考资料.rar

基于MicroPython:TPYBoard心率监测器的更多相关文章

  1. 基于RestOn智能睡眠监测器的睡眠监测系统

    一.项目地址为: https://github.com/linqian123... 二.项目功能概述: 该项目实现的是一个基于RestOn智能睡眠监测器的睡眠监测系统.RestOn智能睡眠检测器通过W ...

  2. MicroPython TPYBoard v702实现HTTP应用功能

    [Micropython]TPYBoard v702 HTTP应用功能 转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:Micro ...

  3. MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...

  4. Micropython TPYBoard v102 温湿度短信通知器(基于SIM900A模块)

    前言 前段时间看了追龙2,感受就是如果你是冲着追龙1来看追龙2的话,劝你还是不要看了,因为追龙2跟追龙1压根没什么联系,给我的感觉就像是看拆弹专家似的,估计追龙2这个名字就是随便蹭蹭追龙1的热度来的. ...

  5. [Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵

    一.什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机, ...

  6. [MicroPython]TPYBoard智能小车“飞奔的TPYBoard装甲一号”

    智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车能够实时显示时间.速度.里程,具有自动寻迹.寻光.避障 ...

  7. [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台

    一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...

  8. 如何在MicroPython TPYBoard 添加自定义类库

    开始之前,首先要感谢一下TPYBoard技术交流群(157816561)-云之初晓网友的分享.   今天简单分享下如何将自己编写的一些Python脚本的类库添加到固件中,在使用时只需import调用, ...

  9. [Micropython]TPYBoard v10x MFRC522智能门禁系统

    MF RC522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.也就是射频卡. 经常忘带钥匙,最尴尬的上周竟然去开4楼的门,(家住五楼,无电梯),开了好一会没打开,事后对4楼 ...

随机推荐

  1. oracle学习笔记(十九) 子程序——存储过程

    子程序--存储过程 我们可以使用子程序来封装一下我们需要的操作,子程序又有存储过程,函数和触发器. 这里先学习存储过程~ 语法 create [or replace] procedure $proce ...

  2. Python分页爬取数据的分析

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 向右奔跑 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  3. 如何搭建属于自己的Web服务器

    如今随着计算机和互联网技术的发展,上网现在已经不再是什么难事,打开浏览器,我们可以访问各种论坛站点,比如CSDN.博客园等,各种视频网站,例如爱奇艺,B站等.在网上我们可以写文章,看视频,购物,打游戏 ...

  4. Java日期时间API系列2-----Jdk7及以前的日期时间类在mysql数据库中的应用

    1.java中与数据库相关的时间类 java提供与mysql方便交互的三种数据类型: java.sql.Date java.sql.Time java.sql.Timestamp 它们都是继承java ...

  5. Junit单元测试数据生成工具类

    在Junit单元测试中,经常需要对一些领域模型的属性赋值,以便传递给业务类测试,常见的场景如下: com.enation.javashop.Goods goods = new com.enation. ...

  6. Linux命令大全|linux常用命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  7. 使用Urllib下载图片

    urllib下载图片 urllib3下载图片 Urllib下载图片 from urllib import request import re import os # 妹子图首页 下载首页的几张 url ...

  8. requests---发送post请求完成登录

    前段时间写过一个通过cookies完成登录,今天我们写一篇通过post发送请求完成登录豆瓣网 模拟登录 1.首先找到豆瓣网的登录接口 打开豆瓣网站的登录接口,请求错误的账号密码,通过F12或者抓包工具 ...

  9. spark streaming checkpointing windows

    spark streaming的相关概念: spark的核心是创建一个RDD对象,然后对RDD对象进行计算操作等 streaming可以理解为是 一个连续不断的数据流 ,然后将每个固定时间段里的数据构 ...

  10. 无序数组中用 快速排序的分治思想 寻找第k大元素

    #include <stdio.h> int *ga; int galen; void print_a(){ ; i < galen; i++){ printf("%d & ...