基于MicroPython:TPYBoard心率监测器
转载请注明文章来源,更多教程可自助参考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心率监测器的更多相关文章
- 基于RestOn智能睡眠监测器的睡眠监测系统
一.项目地址为: https://github.com/linqian123... 二.项目功能概述: 该项目实现的是一个基于RestOn智能睡眠监测器的睡眠监测系统.RestOn智能睡眠检测器通过W ...
- MicroPython TPYBoard v702实现HTTP应用功能
[Micropython]TPYBoard v702 HTTP应用功能 转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:Micro ...
- MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...
- Micropython TPYBoard v102 温湿度短信通知器(基于SIM900A模块)
前言 前段时间看了追龙2,感受就是如果你是冲着追龙1来看追龙2的话,劝你还是不要看了,因为追龙2跟追龙1压根没什么联系,给我的感觉就像是看拆弹专家似的,估计追龙2这个名字就是随便蹭蹭追龙1的热度来的. ...
- [Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵
一.什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机, ...
- [MicroPython]TPYBoard智能小车“飞奔的TPYBoard装甲一号”
智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车能够实时显示时间.速度.里程,具有自动寻迹.寻光.避障 ...
- [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台
一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...
- 如何在MicroPython TPYBoard 添加自定义类库
开始之前,首先要感谢一下TPYBoard技术交流群(157816561)-云之初晓网友的分享. 今天简单分享下如何将自己编写的一些Python脚本的类库添加到固件中,在使用时只需import调用, ...
- [Micropython]TPYBoard v10x MFRC522智能门禁系统
MF RC522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.也就是射频卡. 经常忘带钥匙,最尴尬的上周竟然去开4楼的门,(家住五楼,无电梯),开了好一会没打开,事后对4楼 ...
随机推荐
- Redis for OPS 05:哨兵HA Sentinel
写在前面的话 上一节的主从环境能够解决我们保证数据安全性的问题,但是却无法解决我们在主节点挂掉的时候服务继续使用的问题,同时也不能自动切换新的主. 我们运维的目的肯定是希望即使主库挂掉一个,服务依旧能 ...
- SpringBoot开发案例之mail中文附件名字乱码
最近在开发一个邮件发送多附件的微服务,使用的是org.springframework.mail.javamail.JavaMailSender;包下面的JavaMailSender 但是发送出来的附件 ...
- 全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!
面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一下这两者的区别. 我们先来看几个例子: a = "hel ...
- Feign自动装配原理
spring.factories 按照以往的惯例,在研究源码的时候,我们先看一下spring.factories文件下自动装配的类FeignAutoConfiguration,其中比较重要的东西有这么 ...
- Windows下Python 3.6 安装BeautifulSoup库
- - 下载安装 安装方法如下: 到 - PIP安装 如果上一种方法安装不成功,可以用第二种方法,记住,Python3.6下是pip3. 安装方法如下: pip3 install beautifuls ...
- Gradle在Android中的简单使用
Gradle在Android中简单的使用 还望支持个人博客站:http://www.enjoytoday.cn Android Studio 使用gradle进行工程构建,为了更好的了解整个andro ...
- DevOps 工程师成长日记系列五:部署
原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-5-deploy ...
- [Go] 使用go mod安装beego
需要go升级到1.12或以上 mkdir gomodtest cd gomodtest go mod init gomodtest 创建一个server.go package main import ...
- Lnmp架构部署动态网站环境.2019-7-3-1.4
安装wiki开源产品 一.创建数据库 [root@Lnmp bbs]# mysql -uroot -p123456 mysql> create database wiki; #创建wiki数据库 ...
- OpenTelemetry项目中的Observability
最近,在实操zipkin,jaeger,opencensus,opentracing,opentelemetry等. opentelemetry将Observability提到了重要页面, 并进行了讲 ...