基于物联网的树莓派心跳监测系统
扫描二维码
随时随地手机看文章
健康监测一直是物联网(IoT)的一个有前途的应用。通过使用正确的技术,我们不再需要依靠常规的健康检查或当地的医生来评估我们的身体。传感器可以用来测量你身体的所有生命体征,这些信息可以远程实时共享,供世界其他地方的医生诊断你,或者人工智能可以处理所有的数字并诊断你的问题。听起来很有未来感,对吧?但我们正在逐渐向它迈进,我们离远程物联网机械臂为我们做手术不远了。在此过程中,我们将构建树莓派心率监测器来测量远程患者的心率,并将其显示在Processing IDE上。之前我们还使用Arduino和ESP8266构建了一个心率监测器,并将值上传到Thingspeak。
材料要求:
以下是使用Raspberry Pi构建您自己的患者监测系统所需的组件。
•覆盆子π
•脉搏传感器
•ADS1115 ADC模块
•跳线
•电源或移动电源
脉冲速率传感器:
在我们进入实际项目之前,让我们先看看脉冲速率传感器是如何工作的。脉搏/心跳传感器的工作非常简单。传感器有两面,一面是LED和环境光传感器,另一面是一些电路。这个电路负责放大和噪声消除工作。传感器正面的LED被放置在我们人体的静脉上。这可以是你的指尖或耳尖,但它应该直接放在静脉的顶部。
现在LED发出的光会直接落在静脉上。只有当心脏跳动时,静脉里才会有血液流动,所以如果我们监测血液流动,我们就能监测心脏跳动。如果检测到血流,那么环境光传感器就会接收到更多的光,因为它们会被血液反射,随着时间的推移,这种接收光的微小变化就会被分析出来,从而确定我们的心跳。在这个项目中,脉冲传感器作为树莓派的心跳传感器。
有三根电线从传感器出来,分别是信号(S), Vcc (3 - 5 V)和GND。
信号线分别显示为紫色、红色和黑色。在我们的项目中,传感器将由Arduino的3.3V引脚供电,由于树莓派默认不能读取模拟电压,因此信号引脚将通过ADS115 ADC模块连接到树莓派上。
线路图:
完整的树莓派物联网患者监护系统电路图如下图所示。
正如你所看到的,我们已经使用了带有脉冲传感器的ADS115 ADC模块,脉冲传感器通过I2C通信连接到树莓派,这样我们就可以在树莓派上测量心跳。以下是它们之间的联系:
•脉冲传感器的信号引脚- ADC模块的>a0
•脉冲传感器的Vcc引脚-> 3.3V的树莓
•脉冲传感器的GND引脚-> Pi的GND
•RPI的Tx -> RPI的Rx
•ADC的GND -> RPI的GND
•ADC模块的VCC -> +5v的RPI
•ADC模块的SCL和SDA ->的SCL和SDA的RPI
安装与配置
由于ADC模块在I2C通信,我们使用UART进行串行通信,我们必须在shell中使用raspi-config命令启用树莓派的UART和I2C,如下所示。
现在选择Interfacing Options并按enter。
现在选择I2C并按enter
现在选择Yes并按enter
现在通过选择ok按enter键
现在通过选择Serial并按enter键来启用Serial
现在选择no并按enter键禁用串口登录shell。
现在选择Yes并按enter键以启用串行。
现在选择ok并按enter。
现在选择finish并按enter
现在选择Yes并按enter键进行重启。
现在安装i2c包
现在使用给定的命令测试并获得连接设备的I2C地址:
现在使用给定的命令为ADC模块安装ads1115 python库
在树莓派上安装Processing
现在使用给定的命令将Processing安装到现有的安装上:
现在我们可以看到树莓派菜单中的处理图标:
这里我们需要运行pulse_sensor python代码,然后处理本文末尾给出的代码。然后我们将看到如下图所示的结果
一个完整的工作视频也可以在这个页面的底部找到。下面将解释python代码和Processing代码。
树莓派的Python代码测量心跳
在此代码中,我们通过I2C通信连接ADC模块以获得脉冲传感器的模拟输出。从脉冲传感器获得原始模拟输出后,我们找到了上峰值和下峰值。然后找出两个峰值点之间的时间差,然后将其转换为BPM。我们将原始模拟输出和BPM发送到串行端口,串行端口从处理IDE中读取以供进一步处理。完整的心跳传感器树莓派python代码在本页的底部给出。
在首先编写代码时,我们导入了一些模块,这些模块在代码中用于不同的目的
现在我们有一些用于计算和动作的变量。并创建了一个串行对象
现在给定的部分代码用于发送数据到处理
现在给出了读取脉冲传感器和测量BPM的函数。
处理代码显示心跳值图形在树莓派
在处理代码时,我们从树莓的串口获取数据,这是我们上面解释过的python代码发送的环回信号。现在我们找到原始模拟输入和BPM。并根据模拟值绘制图形,显示BPM值。在处理代码时,首先导入了一些必要的库模块
在这之后,我们取了一些变量
然后在设置功能中,我们初始化了串口,配置了串口,初始化了默认图形
现在在serialEvent函数中,我们已经读取并提取了接收到的数据
现在在绘制函数中,我们已经将输入值映射到图形维度,然后绘制图形。
给定的代码行负责在图上显示BPM
这里我们还有另一个功能,用于放大和缩小绘图。通过按-,我们可以缩小,按+,我们可以放大脉冲图。为了控制这个,首先我们必须点击图形上的任何地方,然后需要按-和+。
通过这种方式,您可以使用树莓派测量患者的心跳,并将其显示为屏幕上的图形。如果需要,您还可以将此串行数据发送到ThingSpeak或其他物联网平台,如IFTTT, Artik Cloud, Firebase, Particle Cloud, Amazon AWS,并在全球范围内远程共享数据。
本文编译自iotdesignpro