资料介绍
描述
在这段隔离期间,我已经建立了一个血氧计,里面已经有零件。毕竟,血氧计只是由两个 LED 和一个光电二极管组成。
我不是医学知识专家,在项目的这个阶段,我不确定这项工作是否具有诊断价值,但这是一个很好的教育项目,可以研究它是如何工作的,并且可能通过一些技巧它可以成为一个自制的医疗工具。
氧饱和度和 COVID-19
在我们生命中这个令人难以置信的时期,我们学到了很多关于病毒、肺、外科口罩、肥皂和洗手的知识。每个人都会阅读有关咳嗽、发烧和呼吸困难等症状的信息。我们还知道,测量呼吸困难的一种方法是读取我们血液中的氧气含量。
可以使用称为血氧计的医疗设备间接读取此测量值。您可能已经看过它,它是一种放置在手指上的非侵入性设备,带有一些脉动灯来完成工作。像这样:
通常,当您没事时,您的氧饱和度 (SpO2) 百分比接近或大于 95%。当饱和度低于 90% 并且您有咳嗽和发烧时,这是一个问题。
如果任何制造商都可以制造一个血氧计,那么发现感染会更容易,并且可以帮助人们在问题确实存在而不是恐慌发作时决定去医院。
一、了解心跳传感器的工作原理
我已经开始使用KY-039心跳传感器开始这个项目,我在我们许多人家里都有的套件传感器中找到了它。正如您在下面的电路中看到的那样,它只是一个点亮光电二极管的红外 LED。还有两个电阻保护LED和读取传感器的小信号。
因此,如果您没有 KY-039 传感器,您可以用很少的组件构建自己的传感器。
手指放在传感器和光电二极管之间,就像这张照片(最初取自此站点并修改):
红外线 LED 发出的光部分被指甲、皮肤和手指的所有其他部位吸收,但它不是恒定的,因为它会随着静脉中血液的变化而变化。当您的心脏跳动时,血液会被推入您的静脉,并且光吸收会发生变化。我们可以测量由到达它的红外光照射的光电二极管产生的电流。
KY-039 传感器有一个S (信号)引脚来读取该变化值。
我们可以通过计算信号的峰值来测量心跳率
从传感器的可变信号中读取值并不容易,因为有很多噪声,信号非常低,我们需要进行一些数学运算以找到要绘制的好值。
我必须感谢Johan Ha 的这篇有用的帖子,它解释了如何计算信号的平均值,还解释了如何消除家用灯产生的噪音(那盏灯是噪音!)。
诀窍是创建一个数组,我们在其中推送一个值并删除一个值,以获取从传感器读取的最后 X 值的平均值。他还描述了一种通过计算 N 个增长值来找到信号上升的方法。我的意思是,当一个值比前一个值大 N 倍时,它是一个峰值。
使用 Arduino 串行绘图工具或其他串行工具分析打印在 COM 端口上的值(例如SerialPlot ),并尝试不同的值,我们可以定义正确的数字 N (rise_threshold
代码中的常数)。如果您定义的数字太大或太小,您可能会错过一些节拍或将重心节拍计为节拍。
一旦您了解了如何微调峰值,只需计算它们,或计算一小部分节拍之间的时间以确定您的BPM
速率(每分钟节拍数)。
构建血氧计(破解 KY-039 传感器)以查找氧饱和度
随着光波长的变化,我们的血液以不同的方式吸收光。红光(~600nm
)更容易被含氧量较多的血液吸收,因此我们可以将红外灯( )与红色灯的测量值进行比较,~950nm
并找出我们血液中氧气的百分比。该值称为(外周毛细血管氧饱和度)。Sp02%
因为我有一个 KY-039 传感器,所以我决定对其进行修改。它只有一个红外 LED,所以我添加了一个RED LED,将IR LED从Vcc断开, 并用一个电阻将两个 LED 连接到 Arduino 的两个不同引脚。330 ohm
(如果你没有 KY-039 传感器可以修改,你可以构建它,它只是几个 LED、一个光电二极管和 3 个电阻,原理图非常简单!)
这是修改后的传感器的示意图:
这样我们就可以打开IR LED并从KY-039 S引脚读取值,然后我们可以关闭IR LED并打开RED LED,并从KY-039 S引脚读取值。
这是我的:
如果您绘制这两个信号,您可以看到 IR 值始终低于 Red 值。
要找到良好的信号,请记住将指尖正确放在光电二极管上,并且 LED 应接触指甲,当您找到一个舒适的位置并在图上读取良好时,请勿更改它。
由于信号低且噪声问题很大,为了获得有用的测量值,我注意到始终需要良好的环境光。所以,测量时不要移动手指,也不要改变光线,传感器上的阴影可能会改变一切。
如何测量饱和 SpO2%
氧饱和度水平 (SpO2) 是氧饱和血红蛋白相对于总血红蛋白的比例,是称为R的参数的函数(我在米兰理工大学的一篇学术论文中找到了此信息),使用最小值计算和两个信号的最大值:
R = ( (REDmax-REDmin) / REDmin ) / ((IRmax-IRmin) / IRmin)
每台仪器都有自己的R ,需要校准才能找到将 R 与 SpO2% 连接起来的曲线(函数)。
我们已经计算了峰值的数量,但现在我们需要找到两条曲线(RED led 和IR led)的最大值和最小值。
为了完成这项工作,我们评估心跳的“周期”(即一个心跳持续多少毫秒)并将其除以采样率以确定有多少样本构成一个周期。在我们的例子中,采样率为 40 毫秒,因为我们读取 IR LED 20 毫秒,然后再读取 20 毫秒的 RED LED。
节拍周期是信号中两条上升曲线之间经过的时间。
所以我可以分析我保存在数组中的最后L个样本(其中 L = period / 40),以找到REDmax 、REDmin 、IRmax和IRmin值。
使用最大值和最小值,我可以计算R 。
R、L 和 period 是每拍计算一次,所以 R 的演算也是对每拍进行的。
从 R 到 SpO2%:如何校准血氧计?
将R与SpO2联系起来的函数可以用一条直线简化:
SpO2 = K * R + M
所以我们需要两个点(SpO2 和 R 的两对值)来确定 K 和 M。找到这两个点的唯一方法是使用另一个血氧计并从其显示屏上读取值。
新的血氧仪将作为参考,我们在测量自制血氧仪的 R 值时读取 SpO2 值。
第一次正常呼吸,然后读取 SpO2 和 R 的值。写下来。
然后尝试保持呼吸,10-20 秒后,您将在新血氧仪中读取 SpO2 下降,您还应该看到血氧仪的 R 参数在增加。在昏厥之前,写下达到的 SpO2 值和您的 R 参数值。
求解二次方程并为您的血氧计找到 K 和 M。
现在可以计算每个测量R的bpm和SpO2值。
我还添加了一个显示来显示所有数字,仅当我发现至少 5 个周期测量值变化不大(±10%
周期长度)时才显示值。通过这种方式,我删除了变化太大的值,这些值取决于不良组件或环境光或手指移动的变化。
c值表示显示的值是用c稳定测量值计算的。
项目改进:去除环境光变化
在玩了几天我的项目后,我找到了改进它的方法。
我注意到,使用这些低成本组件(我们只使用 LED 和光电二极管!)这些措施过多地依赖于环境光,如果我们想在真实环境中正确读取数据,这不是一件好事工作环境。因为我注意到在阳光明媚的日子比在阴天或晚上使用电灯时效果要好,所以我决定添加第三个 LED,它始终亮着,只为手指提供光线.
使用这个 3-led 传感器,还可以在黑布下采取措施,以排除可能随时变化的环境光。
现在,结果更好,不再依赖于环境光。
我还必须重新校准血氧计,正如您在几秒钟后从视频中看到的那样,它正确地找到了bpm和SpO2% :
- 血氧仪方案介绍
- WizFi360 EVB Mini脉搏血氧仪开源
- 用于健身和医疗应用脉搏血氧仪 8次下载
- 基于Seeeduino XIAO的血氧心率计 2次下载
- PCB氧计项目开源
- STM32学习值传感器篇——max30102心率血氧传感器
- 高灵敏度脉搏血氧仪和心率传感器max30102说明书 74次下载
- 一个脉搏血氧计的设计示例资料下载
- 如何使用MSP430单片机实现血氧仪的设计 46次下载
- PulseSensor脉搏血氧传感器的代码和工程文件免费下载 25次下载
- 使用血氧传感器MAX30100和51单片机组成的血氧浓度测量系统原理图 46次下载
- 人脑血氧的数据分析及其临床验证
- 氧传感器的评定技术
- 氧传感器的原理与进展
- 汽车氧传感器的失效及预防
- 基于STM32单片机的血氧心率监测系统设计 522次阅读
- 血氧仪怎么看数据正常值是多少 984次阅读
- 详解氧传感器坏了会怎么样,氧传感器故障表现 517次阅读
- 大众速腾氧传感器的检修步骤 709次阅读
- 血氧饱和度传感器MAX30102模块的原理及参数 4.5w次阅读
- 如何使用MAX30102血氧心律脉搏传感器量测心跳和血氧呢 6604次阅读
- 采用MSP430FG437微控制器实现非侵入式可视脉搏血氧计的设计 3570次阅读
- 溶解氧传感器原理及应用 1.1w次阅读
- 宽带氧传感器的工作原理与检测方法 1.5w次阅读
- 宽频氧传感器工作原理及测试 1.6w次阅读
- 生物医学用物理传感器的分类和用途 6167次阅读
- 血氧探头的工作原理 2.8w次阅读
- 氧传感器坏了会怎么样_氧传感器故障表现_氧传感器作用 9.2w次阅读
- 自制受湿传感器及报警电路图 3171次阅读
- 自制湿度传感器控制电路图 1.2w次阅读
下载排行
本周
- 1Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
- 19.00 MB | 4次下载 | 免费
- 2使用TL431设计电源
- 0.67 MB | 2次下载 | 免费
- 3BT134双向可控硅手册
- 1.74 MB | 2次下载 | 1 积分
- 4一种新型高效率的服务器电源系统
- 0.85 MB | 1次下载 | 1 积分
- 5LabVIEW环形控件
- 0.01 MB | 1次下载 | 1 积分
- 6PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 751单片机核心板原理图
- 0.12 MB | 1次下载 | 5 积分
- 8BP2879DB支持调光调灭的非隔离低 PF LED 驱动器
- 1.44 MB | 1次下载 | 免费
本月
- 1开关电源设计原理手册
- 1.83 MB | 54次下载 | 免费
- 2FS5080E 5V升压充电两串锂电池充电管理IC中文手册
- 8.45 MB | 23次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 12次下载 | 免费
- 5ST7789V2单芯片控制器/驱动器英文手册
- 3.07 MB | 11次下载 | 1 积分
- 6TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 7STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 8基于MSP430FR6043的超声波气体流量计快速入门指南
- 2.26MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多