本项目采用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,位图名称,宽度,高度,颜色);正如在代码中看到的那样,当检测到手指时调用一个,而如果检测到心跳则调用另一个。
到此就完成了项目主要内容了,索要代码、原理图等资料,请后台联系芯板坊客服。