# cECG_Monitoring_Sysytem **Repository Path**: wangdl_qd/c-ecg_-monitoring_-sysytem ## Basic Information - **Project Name**: cECG_Monitoring_Sysytem - **Description**: 多生理参数的心电监测系统Android版本; 主要功能: 1.蓝牙连接嵌入式心电设备; 2.心电图的绘制和计算; 3.呼吸波的绘制和计算; 4.血氧饱和度的绘制和计算; 主要运用的技术: 1.低功耗蓝牙的通讯技术 2.自定义View; 后续待补充。。。。。。。。。。。。。。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-11-06 - **Last Updated**: 2024-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 可穿戴心电系统 ## 项目演示视频 > 您可以通过下面链接进行查看: > > ## 项目背景 近年来,心血管疾病已成为全球范围内的重大健康挑战,而早期发现和监测心脏健康状况对于预防心血管疾病至关重要。传统的心电监测设备通常笨重且不便携,限制了用户的活动范围和监测时长。因此,开发一种轻便、舒适、可穿戴的心电监测系统是当前的迫切需求。 ## 项目目的 本项目旨在开发一款智能可穿戴心电衣服以及配套的移动应用程序,为用户提供持续、便捷的心电监测服务。该系统将结合传感技术、数据分析以及用户友好的界面设计,实现以下目标: - 实时监测用户的心电信号,并记录相关数据。 - 对心电信号进行分析,计算用户实时心率,当超过一定心率时候会实时播报以提醒用户需要注意心率。 - 支持数据存储和追踪,让用户随时查看自己的健康状况,并与医生分享必要的数据。 ## 设计与架构 **系统最终实现目标**【云平台实现使用的是matlab的数据上传至所内服务器,暂不提供】 ![系统最终实现目标](https://foruda.gitee.com/images/1708860879461907732/172969e6_7753985.png) ## 系统设计图 **电路板设计** ![系统最终实现目标](https://foruda.gitee.com/images/1708860925184220155/21a7df81_7753985.png) **APP系统** ![image-20240219164408215](https://foruda.gitee.com/images/1708860951465522859/54da2da4_7753985.png)图 后面主要讲述的是都是APP开发模块相关的东西了,由于硬件方面由师兄负责,并且我不太了解硬件因此我就不进行介绍了。 ![image-20240219165112269](https://foruda.gitee.com/images/1708860977239869299/deea948d_7753985.png) ## 技术路线图 ![image-20240219165837015](https://foruda.gitee.com/images/1708861001387239579/7b2d7b52_7753985.png) ## 技术难点 ![image-20240220085201785](https://foruda.gitee.com/images/1708861026376369030/71c9f3c6_7753985.png) ## 低功耗蓝牙通讯技术讲解 > 1.创建蓝牙适配器,并判断是否支持低功耗 > > 2.查找低功耗蓝牙设备,通过mBtAdapter.startLeScan(扫描回调函数);扫描回调函数使用 BluetoothAdapter.LeScanCallback定义;把所有扫描到的低功耗蓝牙设备通过去重方式放置在一个数组当中 > > 3.把扫描到的设备在ListAdapter适配器当中显示,并对我们的心电采集设备的名称的MAC地址进行连接通信 > > 4.通过自定义connectBluetooth(蓝牙设备)函数中调用 蓝牙设备的connectGatt函数进行通讯,在这个connectGatt主要通过调用BluetoothGattCallback回调函数实现onConnectionStateChange,onServicesDiscovered,onDescriptorWrite,onCharacteristicChanged来实现连接成功的判断,下位机数据的接受以及下位机数据的滤波等一系列对接受来的数据进行处理的办法。 **总结** > 第一步:初始化,判断当前设备是否支持蓝牙ble,判断用户是否授权蓝牙权限,主要用到了蓝牙适配器BluetoothAdapter,BluetoothAdapter是整个蓝牙开发的基础。 > > 第二步:扫描蓝牙设备, startLeScan() 方法。此方法将 BluetoothAdapter.LeScanCallback 作为参数,这个参数就是一个回调函数,我们可以利用这个回调函数,在蓝牙列表上实时更新扫描到的蓝牙设备。 > > 第三步:连接蓝牙,连接到 GATT 服务器,主要用到了一个回调函数 BluetoothGattCallback ,蓝牙的所有操作都是基于这个回调函数,比如特征值的改变,服务的发现、蓝牙的断开等.. > > 第四步:设置特征值,就像订阅一样,我们需要设置我们关心的特征值。这一切做完,我们就可以进行蓝牙设备间的数据交互了,其实就是对特征值的读和写 > > ## 视频演示地址: [https://www.bilibili.com/video/BV19t42187LY/?spm_id_from=333.999.0.0](https://www.bilibili.com/video/BV19t42187LY/?spm_id_from=333.999.0.0)