电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>基于Azure云和仪表板的动态心电图监测器

基于Azure云和仪表板的动态心电图监测器

2022-11-02 | zip | 0.92 MB | 次下载 | 免费

资料介绍

描述

健康领域

具有心率分析、基于 Azure 云和仪表板的动态心电图监测器。

永远用技术来改善世界,如果你是黑帽或灰帽黑客,请在这一点上弃权......或者至少留下你的星星让我对 XP 感到不那么内疚。

免责声明:此应用程序仅用于演示和说明目的,并不构成已通过监管审查的产品它不打算用作医疗应用。对于此应用程序输出的准确性没有任何陈述,并且不提供任何保证。

介绍:

我们的心脏每天跳动 115200 次,这是一台在我们一生中不停歇的好机器。然而,没有多少人拥有让这台机器处于良好状态的优势。日常生活中的许多因素都会永久性地影响心脏功能。

诸如以下因素:

  • 久坐不动。
  • 富含盐、饱和脂肪和精制糖的饮食。
  • 酒精摄入。
  • 抽烟
  • 高血压
  • 肥胖
  • 心脏病家族史
  • 既往心脏病发作史
  • 男性45岁以上,女性55岁以上
  • 男性(与心血管疾病有直接关系)
  • 药物滥用
  • 低钾或镁

这给我们带来了我们的痛点:

相当多的人不得不在昂贵的医院里频繁地进行心脏检查,并配备巨大的测量设备。我们正处于一个开放式健康比以往任何时候都更加强大的时代,是时候让患者成为关注点。

心电图市场非常巨大,因为它已成为心脏病患者的标准。

pYYBAGNh6aKAF9N1AABxSCIFnE4660.png
 

我们在这张图中可以看到,大多数心电图仪都是那些大型机器(作为一名生物医学工程师,我可以证明大多数都是相当老的)。除此之外,“动态心电图”类别中的大多数并不是真正的可穿戴设备,而是可以携带的较小的设备,尽管可以在家中使用的可穿戴设备可以提供有关患者心脏的宝贵信息

我们必须首先注意的一件事。第一款可穿戴设备已经面市,效果并不理想。Doctors 提出的主要问题是信息太多,在数据聚合器之前先考虑互联网,如果不能正确解释它就没有价值,这是必须考虑的事情。解决方案应汇总所有数据并为护理人员提供有用的信息。

由于这些原因,通过 AzureSphere 的技术,我们将创建一个实时心率、EKG 监测系统和仪表板部署,从 MCU操作系统,再到云,这将是开箱即用的安全。医疗保健数据是我们最有价值的数据,很明显,这种安全性必须成为每台设备的规范。

连接图:

为了开发这个想法,我们首先需要一个支持 EKG 的芯片(EKG 代表心电图,K 代替 C,因为它起源于荷兰)。

它是一个 3.3V 兼容的扩展板,可以更好地与 3.3V 板配合使用,例如新的 Arduino 板系列,如 MKR 线。由于 Azure sphere 中的大多数 ADC 没有开发库来激活它们,我们将使用 Arduino MRK GSM 1400(可以是 MKR 系列中的任何 Arduino 或任何其他小型 3.3V 兼容微控制器)制作可穿戴动态心电图模块, GSM 是我手头的)并在其上连接一个蓝牙模块(如果你有 Arduino MKR 1010,你可以避免使用 BT 模块!),当然还有心电图板。该模块将通过蓝牙将其信息发送到 Azure Sphere,Azure Sphere 将有一个连接到串行端口的蓝牙模块,然后它将与 Azure 云进行通信

这是系统的连接图。Azure 模块和 Holter 模块。

 
 
 
poYBAGNh6bOAQWLvAAIFOQaaNG8067.png
 
1 / 2Azure Shpere 连接。
 

服务连接图:

pYYBAGNh6bWAaz7pAAG-bSs28-c865.png
 

Azure Sphere 和 Azure 云设置:

Azure Sphere 的初始配置有点长,但我建议您按照微软官方文档进行操作,该文档提供了非常清晰的说明。

您需要保存以下数据以备后用:

pYYBAGNh6bqAN3aNAAB4bZ4GENk133.png
 
  • 设备ID。
poYBAGNh6b6AUuApAAC4y-hYBic832.png
 
  • 标识范围
pYYBAGNh6cCAY8P0AAC3VJWGsII212.png
 
  • 身份验证号(Azure Sphere CLI)
azsphere tenant show-selected
poYBAGNh6cOAJbBHAABs7n-MH70371.png
 

下载名为“Health Sphere”的 Azure Sphere 代码。下载后,使用 VS 打开它并在文件“app_manifiest.json”中(在本文末尾的“代码”部分提供)。然后像这样改变它:

  • 在 "CmdArgs" 中写入ID Scope : [ "xxxxxxxxxxxxx" ]
  • 在“AllowedConnections”中写入Hubname :[“global.azure-devices-provisioning.net”,“xxxxxxxxxxxxxx.azure-devices.net”]
  • 替换“DeviceAuthentication”中的Auth Number :“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
{
    "SchemaVersion": 1,
    "Name": "AvnetStarterKit-Hackster.io-V1.0",
    "ComponentId": "685f13af-25a5-40b2-8dd8-8cbc253ecbd8",
    "EntryPoint": "/bin/app",
    "CmdArgs": [ "xxxxxxxxxxxxx" ],
    "Capabilities": {
      "AllowedConnections": [ "global.azure-devices-provisioning.net", "xxxxxxxx.azure-devices.net" ],
      "AllowedTcpServerPorts": [],
      "AllowedUdpServerPorts": [],
      "Gpio": [ 0, 4, 5, 8, 9, 10, 12, 13, 34 ],
      "Uart": [ "ISU0" ],
      "I2cMaster": [ "ISU2" ],
      "SpiMaster": [],
      "WifiConfig": true,
      "NetworkConfig": false,
      "SystemTime": false,
      "DeviceAuthentication": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
  }

然后编译 i。

更新21/11/2019:该项目已经更新到 Target API Set 的“3+Beta1909”版本。很多项目在 Visual Studio 中无法运行,如果你有一个旧版本的 VS,它可能突然无法在那个版本中编译。如果您有同样的问题,请使用此版本更新您的版本:

https://docs.microsoft.com/en-us/azure-sphere/resources/release-notes-1909

这仅适用于旧安装,如果您有最新安装,请不要打扰最后一个细节。

有用的链接要记住:

Github Azure 示例(这些示例适用于早期版本的 Azure Sphere,但芯片相同,因此大多数示例都适用于此 Azure Sphere 版本):

Azure 设备热图:

Arduino 动态心电图监视器:

在继续之前,让我们解释一下心电图的基础知识。产生它的生理现象以及我们如何阅读它非常有趣,但超出了本文的范围。为此阅读:

EKG 由下图组成,我们称此段为 PT。

poYBAGNh6cWAVtIMAABA8wfAFj4189.png
 

心率是通过取两个图的峰值之间的距离来获得的,这称为 RR 段。

pYYBAGNh6dKATDajAAD8SrYQ9hQ096.png
 

在这种情况下,频率将通过板上实现的算法获得。

  • 首先,我们得到 AD8232 模块工作的范围。
poYBAGNh6daARtt-AABwgdK0q2M533.png
 

我们可以观察到波形在 ADC 读数中大约从 420 变为 680,我们将使用以下假设来检测频率。

  • 由于我们正在寻找的是 R 段的参考,我们可以注意到 650 是 R 段将始终达到的值,因此检测到大于 650 的值将是 R 段。

当然,如果一个人的心脏收缩强度应该更强或更弱,则可以改变这一点,从而提供不同的范围。并提供一个校准范围来分配R波。比在更商业的应用程序中使用。

注意:代码在 Arduino 代码文件夹中(github & down here

这是获得心率的公式。

poYBAGNh6dqAJ0ToAAAKrLdocCs116.png
 

arduino 以毫秒为单位生成计数,因此将修改公式以适用于 Arduino 范围。

pYYBAGNh6dyAECTGAAAK3uHjgeM706.png
 

这是先前算法的示例。如您所见,它可以正确检测频率。右侧可以看到 Arduino 获得的值,左侧是小米手环 3 的测试。

 
 
 
poYBAGNh6d-AM747AAAmo7G5fzU481.png
 
1 / 2Arduino 串行 BPM
 

蓝牙模块配置

HC06:

通过 USB - 串行 TTL 连接您的 BT 模块。(串行配置为 9600 波特率,无行尾)

pYYBAGNh6eSAfjzQAACxesQcFVI64.jpeg
 
Send: AT
Response: OK
Send: AT+NAME
Response: OKsetname
Send: AT+PIN<4 digit code>
Response: OK4 digit code>

波特率(1:1200, 2:2400, 3:4800, 4:9600, 5:19200, 6:38400, 7:57600, 8:115200, 9:230400, A:460800, B:921600, C:1382400 )

Send: AT+BAUD8                  (115200 Baud Rate) 
Response: OK<baud rate>

HC05:

通过 USB - 串行 TTL 连接您的 BT 模块。(串行配置 38400 波特率,NL & CR)

该模块有一个按钮,连接时必须按下才能启用使用AT命令配置它的功能,所以我建议你在它上面放一个夹子,这样更容易。

poYBAGNh6feAVjHWAAPjszQ8tlM77.jpeg
生活黑客!
 

配置 HC 05 时保持 HC06 连接,因为我们需要将两个设备配对

Send: AT
Response: OK
Send: AT+RMAAD
Response: OK
Send: AT+ROLE=1
Response: OK
Send: AT+RESET
Response: OK
Send: AT+CMODE=0
Response: OK
Send: AT+INQM=0,5,9
Response: OK
Send: AT+INIT
Response: OK
Send: AT+INQ
Response: 
+INQ:AA1:BBB:CCC,XXXXX,XXXX
+INQ:AA2:BBB:CCC,XXXXX,XXXX
+INQ:AA3:BBB:CCC,XXXXX,XXXX

Use the following command with all the BT addresses you get until you find HC 06, Example if AA1: BBB: CCC is the correct address.

Send: AT+RNAME?AA1,BBB,CCC
Response: +RNAME:
Send: AT+PAIR=AA1,BBB,CCC,9
Response: OK
Send: AT+BIND=AA1,BBB,CCC
Response: OK
Send: AT+CMODE=1
Response: OK
Send: AT+LINK=AA1,BBB,CCC
Response: OK

现在已经建立了连接,HC-05每次开机都会自动连接到HC-06。

Azure CLI 设置:

要安装 Azure CLI,您需要根据您的操作系统(Windows 10 for me)遵循 microsoft 提供的正确教程

输入以下命令获取 Azure IoT 扩展

az extension add --name azure-cli-iot-ext

之后登录到您的 azure 帐户。

az login

完成后,我们可以检查数据是否正确发送到 Azure IoT Hub。运行以下命令,将HUBNAMEDEVICEID替换为您自己的。

az iot hub monitor-events --hub-name HUBNAME --device-id DEVICEID

正如我们之前在 Arduino 代码中设置的那样,我们在有效载荷中每 10 秒接收一次心率。

pYYBAGNh6fqAFY6bAABHtZMP2TI561.png
 

接收数据并保存。

为了发送数据,我所做的是“手动”保存、处理和发送数据的过程。但是,最后我将展示如何通过 MACRO 实现一切自动化。

  • 第一步是执行以下命令,它将 Azure CLI 接收到的所有信息保存在一个文件中。
az iot hub monitor-events --hub-name HUBNAME --device-id DEVICEID> datain.txt
  • 由于我们每 10 秒接收一次数据,因此我们只需等待 10 秒即可执行命令,然后按 CTRL + C 将其停止。在 datain.txt 文件中,我们可以找到接收到的数据。
pYYBAGNh6f2AJ2H8AACPGAytmbE188.png
 

设置 Python 代码。

对于数据的后续处理,我们必须配置 CloudMQTT 凭据,用于发送从 CLI 接收的数据。

  • 在 Cloud MQTT 中创建一个帐户。

https://www.cloudmqtt.com/

  • 复制“服务器”、“用户”、“密码”和“端口”的凭据。
poYBAGNh6f-AYGP2AABsjOKrumI242.png
 

在 python 代码中,我们将为我们的凭据更改以下参数

client.username_pw_set ("USER", "PASSWORD")
client.connect ("SERVER", PORT)

一旦我们有了数据,我们必须执行“Python Code”文件夹中的 Exe.py 程序,这将处理数据并将其发送到主题为“/Azure”的 CloudMQTT

节点红色设置:

Node Red 是 NodeJS 的一个工具,我们可以在其中轻松集成服务,无需代码。当然,创建出色的仪表板。使用以下文档来启动和安装仪表板节点

“Node-RED Flow”文件夹中的“flows.json”文件(位于末尾或 Github 上)包含将流导入 NodeRED 的所有信息。

poYBAGNh6gSAYerwAACV3YLVGvc860.png
 
poYBAGNh6gaAPMmvAABjZ60j0Mo071.png
 

完成后,我们将编辑 MQTT 节点以输入我们的凭据。

pYYBAGNh6giAOnCtAAB1wCW_hCk437.png
 

设置服务器和端口。

pYYBAGNh6gyAJWzhAACRFtQPYxw819.png
 

设置用户和密码。

pYYBAGNh6hCAFszEAACFnhe0QAY783.png
 

如果一切正常,请按“部署”按钮并输入以下 URL 以检查仪表板。

如果我们执行 Exe.py 文件,我们将看到数据在 Dashboard 上的显示方式。

poYBAGNh6hKAFEh_AADZv8j9vD0271.jpg
 

自动化一切:

要使一切自动化,请使用名为“Mouse Recorder Premium”的程序创建一个宏,该程序的宏位于“宏文件”文件夹中。

为了让它正常工作,我们必须在宏的这一部分更改我们的值。

pYYBAGNh6heAYdFzAACPKP-RmEc859.png
 

最终产品:

下图展示了 Holter Monitor 和 Azure Sphere 模块的构建过程。对于这两种情况,我们都制作了一个定制的、手动焊接的 PCB,我们为这个项目重新设计了一个 Pycom 外壳,因为它正确地安装了 Holter Monitor。

桌面界面:

poYBAGNh6hKAFEh_AADZv8j9vD0271.jpg
 

手机界面:

poYBAGNh6h6ALWszAABNkXE8j5w188.png
 

动态心电图监视器:

 
 
 
poYBAGNh6kiAH59VAAVP8XaQ4Nw357.jpg
 
1 / 8最终产品
 

蔚蓝球体:

 
 
 
pYYBAGNh6l-ATVmzAAZJbL6AVwg900.jpg
 
1 / 3步骤 1
 

我们的史诗演示:

 

评论和未来推出:

由于医疗保健信息的性质以及它如何(在某些情况下)被使用或滥用,安全性至关重要。Azure Sphere 在这个项目的开发过程中为我们提供了这种特性,然后是一些特性。

  • 尽管如此,因为这里的每个早期项目都提出了一些改进建议
  • 一是尺寸,我们可以做得更小。
  • 第二个最臭名昭著的是,理想的硬件配置是包含所有仅使用 Azure Sphere 和 microE 板的东西。
  • 在中间步骤中,可以将 Arduino 1400 切换为 MKR 1010 以节省蓝牙模块。
  • 集成后,我们还可以避免使用额外的服务,直接通过网页和 Azure 云实现仪表板。

医疗保健可穿戴设备市场目前正在流行且炙手可热,而苹果已经证明,创造医疗保健可穿戴设备的兴趣正在上升。这会为项目创建额外的(如果只是表面的)验证,但这也会引起关注。一方面,我们有开放的健康运动,试图将患者转变为护理点,另一方面,我们有这些庞大的公司也试图为自己分一杯羹(或全部)。是否获胜将取决于如何处理信息的隐私和所有权,这可能是塑造我们未来的最重要的决定之一。目前,像这样的项目提供了一种既安全又可以安全实施的替代方案。希望您喜欢它并感谢您的阅读。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费