极客秀
搜索

使用Arduino UNO测量心率和血氧饱和度,精确度杠杠的!

本项目采用Arduino UNO板连接MAX30102模块(脉搏血氧仪和心率监测模块),再加OLED显示屏和蜂鸣器进行BPM测量。
BPM是“每分钟心跳次数”,在正常人休息时约为65-75,体育运动时可能低于此值,SpO2是氧饱和度水平,正常人一般高于95%。

准备的器材:

  • Arduino UNO
  • MAX30102
  • 128×32 OLED显示屏(可选)
  • 蜂鸣器(可选)
    性能测试
    教程中使用的代码比较简单,大都是Sparkfun_MAX3010x库中的示例。其中OLED和Buzzer的代码是“HeartRate”示例的修改版本。

    图示为没有检测到手指状况
    伸出手指,需要保持一会儿不动,直到听到蜂鸣器的“Beeps”与你的心跳同步或OLED动画与它同步,然后就可以读出BPM。注意在代码中,实际显示的是平均BPM,是对4个BPM进行了平均,这样增加了每次测量时间但数据更准确。

    制作OLED的位图
    显示屏看到是心脏(小)位图图片,每当传感器检测到心跳时,会切换到另一个心脏(大)位图图片一段时间,它会给人一种心跳的印象,并伴有蜂鸣器发出的蜂鸣声。
    下面是我们稍后在代码中调用的代码中的两个位图:

    位图文件名分别为logo2_bmp和logo3_bmp
    要制作这些,请在屏幕上查看相应的图片(黑色和白色背景),不要忘记尺寸,教程使用的是128×32像素,图片分别小于(32×32) px)和(24×21
    px)。

    确认小图片具有单色位图格式,下载LCD Assistant并将其打开(按下面步骤):

    打开助手以垂直和水平方式尝试这些操作,直到它正确为止。

    找到位图文件

    请注意图像的宽度和高度,为文件指定名称和路径,然后保存。用记事本或类似的应用程序打开文件。




    下面是位图数值

    下面是在代码中调用它的方式:display.drawBitmap(5,5,logo2_bmp,24,21,WHITE);

display.drawBitmap(起始x pos,起始y
pos,位图名称,宽度,高度,颜色);正如在代码中看到的那样,当检测到手指时调用一个,而如果检测到心跳则调用另一个。
到此就完成了项目主要内容了,索要代码、原理图等资料,请后台联系芯板坊客服。

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容