基于物联网的患者远程监测系统测量生命体征
扫描二维码
随时随地手机看文章
当我们谈论人体的主要生命体征时,我们需要了解四个主要参数,它们是体温,心率,呼吸频率,血压,由于COVID,氧饱和度已成为我们需要了解的主要参数。在本教程中,我们将制作一个简单的Arduino Nano 33基于物联网的设备,具有多个传感器。该装置可以测量人体的一些重要参数。该设备就像你在icu中看到的DIY多参数监视器,简单得多,由廉价的传感器制成,不适合实际医疗用途。我们将为此目的使用新的Arduino Nano 33 IOT,我们将尝试使这个设备尽可能简单。
在我们之前的文章中,我们还构建了一个基于物联网的树莓派心跳监测系统,如果你感兴趣,你也可以看看。在本文中,我们将构建一个完整的基于物联网的健康监测系统,可以测量和监测人体的所有重要参数。那么,我们开始吧。
我们的远程病人监测系统所需的组件
该项目所需的组件非常简单,可以在当地的爱好商店找到。要使用物联网构建此特定的健康监控系统,您将需要以下组件。
•Arduino Nano 33 IOT
•MLX90614(数字非接触式红外测温仪)
•AD8232(心率监测器)
•MAX30100脉搏血氧仪和心率传感器
•音频(可选)
•Perfboard
•跳线。
Arduino Nano 33 IoT
Arduino Nano 33 IoT是一款相对较新的Arduino板,我们会稍微介绍一下。它是对原始Arduino Nano的直接升级,目前可以在Arduino Store上获得。它比原始的Arduino Nano便宜,但Nano的克隆价格要便宜得多。那么,当你可以买到上一代的克隆板时,你应该买这款新板吗?这些升级值得吗?
老实说,这取决于你的要求。如果你想在一个紧凑的外形中使用Wi-Fi和BT传感器作为原型,建议你这样做。从这个角度来看,单独购买所有物品并连接它们可能会比Nano 33物联网花费更多的时间和金钱。
那么,新主板有哪些升级呢?很多!最初的Nano没有传感器,没有连接,什么都没有。相比之下,升级后的Nano 33 IoT在相同的外形下包含了许多功能和功能。
•主板的主处理器是低功耗Arm Cortex-M0 32位SAMD21。
•Wi-Fi 2.4G和蓝牙连接由U-Blox NINA-W102低功耗芯片组提供。
•Wi-Fi / BT模块天线采用金属配件的形式,通过一滴热敏胶防止振动。
•微芯片ATECC608A加密芯片,保证通信安全,6轴IMU LSM6DS3
MAX30100 -脉搏血氧仪和心率传感器
MAX30100也是一个基于Microchip的传感器模块。它使用一种叫做PhotoPlethysmography的概念来测量生命数据,作为输出,它给出了一个PPG图。它的工作原理如下图所示。
正如你所看到的,红外/红/绿LED在被摄者的手指上发光。根据心跳、血液中的氧气扩散和其他一些参数,入射波的吸收值或速率会发生变化。通过识别这些变化,我们可以确定氧气水平。
然后由接收器测量传输的波,接收器根据接收到的光量给出电压信号。当光穿过生物组织时,它会被骨骼、皮肤色素以及静脉血和动脉血吸收。由于血液对光的吸收比周围组织更强,因此PPG传感器可以将血流的变化检测为光强度的变化。
PPG的电压信号与流经血管的血流量成正比。使用这种方法,即使血容量的微小变化也可以被检测到,尽管它不能用于量化血的量。PPG信号有几个组成部分,包括与心脏活动相关的动脉血容量变化,调节PPG信号的静脉血容量变化,显示组织光学特性的直流成分,以及体内细微的能量变化。
MAX30100传感器具有红外和红色LED。通常,测量心率和SPO2参数,我们将尝试测量一个额外的参数- HRV或心率变异性。
MLX90614 -体温传感器
MLX90614体温传感器来自Melexis,它使用红外技术来测量人的体温。通常被称为热像仪,这种传感器类似于单像素热像仪,但具有小于3厘米的非常小的范围。此外,与其他红外设备一样,传感器读取误差随着受试者与传感器之间的距离而增加。传感器的图像如下所示。
AD8232心电图传感器
AD8232是一种简单的心率传感器,可以作为心电图绘制图表。ECG是心电图的缩写。该传感器将其信号输出为模拟信号。3.5mm插孔用于生物医学垫连接。
模拟MIC模块
这是一个简单的传感器,记录音频幅度和输出他们作为模拟变化。这在测量呼吸信号时很有用,但它需要大量的信号处理和滤波。因此,它将在单独的博客中进行介绍。注意,有很多模块不具有模拟输出(通常称为拍传感器)。它们可以识别特定振幅以上的声音,但超过这个振幅就没有用了。
128X64 OLED显示屏
我们将在这个项目中使用1.3英寸的OLED I2C显示器。市场上有很多通用的OLED,所以你的OLED可能和我的有点不同。我们将使用的Uglib2库几乎支持您遇到的所有显示器,因此将任何OLED显示器与此库进行接口非常简单。
远程病人监护系统电路图
构建远程健康监测系统的完整示意图如下所示。
上面的原理图显示了与Arduino Nano 33 IoT的所有必要连接。使用的两种类型的传感器是模拟(麦克风,OLED显示器和AD8232)和I2C (mlx90614和MAX3010X)。使用的Arduino Nano 33物联网引脚如下:
A0 - ECG模块AD8232的模拟输出
A1 -麦克风模块的模拟输出
A4 - sda
A5 - SCL
在使用传感器和这个板时,您需要记住一些事情。上述原理图中的工作电压为3V3,因为ECG模块工作在3V3,我们不希望进行不必要的电压转换。上述原理图中使用的电阻器为4.7k。它们应该足以满足3V3的工作电压。我们不会使用额外的引脚LO+, LO- or来减少不必要的复杂性,因为这个项目已经有许多传感器一起工作。您可以参考SparkFun ECG博客了解其使用方法。MLX90614可作为传感器或传感器模块使用。如果您使用裸传感器,您将不得不拉起SCL和SDA线,如原理图所示。此外,请检查您正在购买的MLX90614传感器系列,因为根据功率输入,类型等,有许多变体可供选择,如下所示。
根据原理图组装板后,板看起来像下图。为了方便,我为这个项目开发了一个简单的GP板,因为接口有太多的模块,使用一个面包板处理多个项目是很困难的。为您经常使用的微控制器提供GP板也很有用,以节省时间和不必要的返工,在使用您之前已经与之接口的传感器的项目中。
我建议您放置MLX90614和MAX3010X传感器,使它们重合,并且您可以同时用一根手指将它们覆盖在一起。至于编码部分,我会尽量简洁的解释。
测量和监测生命体征的Arduino代码
构建人体视觉信号检测器的完整代码如下所示,但在继续编写代码之前,我们需要安装所需的库,您可以在Arduino板管理器中找到几乎所有必要的库,我们将从那里安装库,我们需要安装以下库。
Arduino SAMD板
Arduino_LSM6DS3或Sparkfun LSM6DS3 Breakout(供高级使用)
Arduino WifiNINA
Arduino祝福
现在让我们安装库。
除此之外,我们还使用了OLED模块。所以,我们还需要安装OLED库。脉搏血氧计传感器计算SPO2,心率和HRV使用的概念称为PPG或PhotoPlethysmoGraphy,如前所述。MAX3010X库可以使用回调函数识别反射率的脉冲或变化。该函数是一个中断,每次检测到心跳时都会调用该中断。存储连续两次心跳之间的时间间隔来计算HRV参数。每个REPORTING_PERIOD_MS间隔都会计算心率。由于手指用于测量体温,我们对MLX90614传感器测量的值进行了补偿。
设置功能:
循环功能:
循环函数连续获取信号变量(IR, RED, ECG, mic值),并定期计算参数变量(HR, SPO2, HRV,环境温度,对象温度)(存储为REPORTING_PERIOD_MS)。一旦计算出所有变量和信号值,就会显示在OLED上。因为变量HR和HRV对时间非常敏感,并且依赖于在实际心跳之后调用心跳中断函数的速度,所以我们不能连续更新显示。因此,我们在定期间隔(= DISPLAY_INTERVAL* REPORTING_PERIOD_MS)之后更新它。所有变量和信号值也以CSV格式串行推送,用于数据采集、绘图和存储。示例输出如下所示。遥测格式:hr, spo2, hrv, object_temp, ambient_temp, ir_signal/100, red_signal/100。
串行绘图仪的输出如下所示。颜色键显示在右上角,并按遥测(hr, spo2, hrv, object_temp, ambient_temp, ir_signal/100, red_signal/100)从左到右的顺序显示。绘制完成后,串行绘图仪窗口中的数据如下图所示。
这就是我们基于物联网的患者监测系统的工作原理。
本文编译自iotdesignpro