版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32的心电检测系统设计与实现目录TOC\o"1-3"\h\u12708基于STM32的心电检测系统设计与实现 148701绪论 2197891.1研究目的及意义 2124521.2国内外研究现状 319991.2.1国外研究现状 360561.3研究内容 474841.4本章小结 4198652心电监测系统总体设计 561222.1系统总体方案设计 527332.2系统硬件方案 6208472.1.1控制芯片选择 690822.1.2显示方案选择 6286922.1.3倾角传感器选择 7248382.1.4心率检测模块选择 7279392.1.5温度传感模块选择 7169962.1.6通信模块选择 8211302.1.7GPS模块选择 8154342.3系统软件方案 947712.3.1上位机设计平台 10282242.3.2本章小结 11130853心电监测系统硬件设计 11169843.1STM32开发板 1131693.2具体硬件电路模块 12213893.2.1重力加速度传感器模块 13104683.2.2心率传感器模块 1462063.2.3温度传感器模块 15277173.2.4GPS定位模块 16310723.2.5串口通信模块 1711133.2.6液晶显示模块 18136373.2.7本章小结 2052884心电监测系统软件设计 2063304.1软件编程工具 20316784.1.1编程语言选择 20172064.1.2单片机程序开发环境 2083754.2心电监测系统总体程序设计 2172114.3传感器各模块程序设计 2278974.3.1心率传感器程序设计 22258254.3.2温度传感器程序设计 23248304.3.3重力加速度传感器程序设计 2463264.3.4GPS定位程序设计 25236424.4上位机系统程序设计 26123124.5本章小结 28235825系统测试与结果分析 2964585.1软件调试与结果分析 29147335.1.1下位机软件系统测试 29163955.2.2上位机软件系统测试 29273625.2硬件调试与结果分析 3144456总结与展望 33171786.1总结 33122346.2展望 331绪论研究目的及意义伴随着经济全球化的持续发展,人民生活水平明显提高。但是生活的压力使人们忽视了他们的健康问题。近几年来,病毒的快速传播使人们更加焦虑,在生活中引起了越来越多的关注,心脏及心血管疾病的发病率也有了非常明显的增加。根据2019年发布的《中国心血管健康与疾病报告》,中国因心血管疾病导致的死亡率,从目前来看竟高居全国第一位,其中农村地区占比46%,城市地区占比44%。无论是对人还是对社会来说,心血管疾病的压力越来越大,心血管疾病的防治尤其重要,已经迫在眉睫。心脏病的检测方法很多,如心电图、X射线等。心电检测因其简单、方便、价格低廉,已成为医院诊断心血管疾病的重要手段。而以往,心电图在大部分采用于临床应用中,采用的都是手动分析法,可看出十分耗时、费力,甚至不安全。但随着计算机技术的飞速发展,心电自动分析技术又得到了提高,使广大医护人员减少了沉重的体力劳动,效率也有了明显是提升。所以,心电分析技术不断促进了精神医学的发展,对于保障普通民众的人身安全、心理健康和社会经济发展都有着重要意义。然而,自动心电诊断在临床实践中尚未得到广泛应用。从心电图机的检测和分析来看,自动分析的准确性显然无法完全达到可以替代医生的水平,只能为辅助机械作为医生的参考。其主要原因在于心电图波形识别不准确,诊断模式不统一。所以,提取心电信号的特征进行自动分析前提下保证其准确性,就成为了目前需要解决的焦点问题。本设计目的是实现一款供个人应用的心电监测系统,协助用户可以随时地完成心电监测,并方便掌握自己的身体状况,在出现异常心血管疾病的情况下,可以提醒用户及其家人。1.2国内外研究现状1.2.1国外研究现状在国外,随着信息技术的新发展及其在医疗行业系统中的普遍应用,尤其欧美国家提出了建立远程医疗系统的设想,而且要使其心电检测设备能够在小型化和家庭化满足根本的要求。20世纪80年代以来,在海外成立了专门使用电话绳传递心电信号的国际心电监护中枢,并开展了使用数字电话传递心电信号的研究。英国牛津大学(OxfordUniversity,UK)的约翰逊(Johnson)博士通过远程监控的方式,使怀孕母亲和胎儿在家中的时候,都可以很方便地去测量心电图等关键生理数据。在德国还有一支研发队伍,他们使用了宽带视频通信的手段,可以远程控制家中老年人的各项生理参数,以便在紧急情况下是时提供帮助。进入21世纪后,从2000年到2005年,美国和欧盟分别为高山研究投资150亿美元和17.5亿美元。与此同时,大型外国公司也纷纷效仿。日本还投入巨资研发心电监护产品。索尼和东芝也推出了类似的测试设备,但价格昂贵。1.2.2国内研究现状在国内,在心电检测方面的研究去和西欧一些发达国家相比,稍微晚了一些,能看出明显是特点是起步晚。然而,随着中国经济的不断发展,人们对健康越来越重视,对心电检测产品的需求也在稳步增长。产品的应用范围已从对危重病人的监测发展到对普通病房的监测。目前,很多家庭也提出了一些申请要求。清华大学1994年开发的家庭心电/血压监测网络系统是中国早期这一领域研究的典型案例。该系统除了具备病人无法及时去用手动按钮进行报警功能,还有像Holter的可以长时间记录和发送ECG消息的功能。在我国,做心电检测设备生产厂家许许多多,大多数的产品已进入实用化阶段,而其劣势在于,大多是由OEM组装,且自主开发能力不强。国内外对心电检测设备进行了大量研究,部分产品已投入生产和销售。然而,这些研究和应用都存在许多不足之处,如价格不亲民、功能单一、测量结果不能实时诊断或不便于实时查看等。根据上述不足,本设计使用成本合理、体积小的数据采集硬件终端,以及现代日常生活中所不能缺少的手机终端APP,设计和完成了一个心电监测系统,能够收集心率数据、体温数据、身体状态数据及其位置的经纬线信息,便于人们及时地去监测,给大家创造一种实时方便的心电监护环境。1.3研究内容本设计的研究目标是在完成硬件系统设计下,通过蓝牙连接实现了对心电检测系统数据的传输和对手机app指令下达的便捷用户操作,以及完成对系统所需模块程序的编写、系统处理程序的编写。其次还查阅了国内外关于心电检测在各个领域以及实际生活场景中的研究与应用,对比了一些其它心电监测系统的控制原理和主要功能结构,详细地叙述了心电检测系统软硬件的构成和手机APP的设计与实现。本设计选择研究的内容是心电检测系统设计与实现,主要需要有以下几项功能指标:1、利用重力加速度传感器检测人的目前状态,计算出人当下所行走的步数、行走的距离、所消耗的卡路里值以及这段距离的平均速度,距离误差要保证在合理的范围内;2、利用心率传感器实时检测人体当前的心率值,利用温度传感器检测当前温度值,要求心率误差不超过10%,温度误差不超过1%;3、利用GPS定位模块完成人体所在地点的经纬度信息采集;4、最后,通过在LCD1602屏幕中呈现出步数值、心率值、温度值和经纬度信息,并采用蓝牙模块去连接上位机,将数据实时发送到手机APP端显示。1.4本章小结本文重点在对心电监测系统做出了详细的研发背景和研究意义的介绍,系统分析了国内外相关领域的研发状况,并明确提出了本设计的主要研发目的,进一步阐述了本系列设计的重点内容。2心电监测系统总体设计2.1系统总体方案设计心电检测系统功能需求为:需要采集使用者心率、温度、运动状态信息和所处位置的经纬度信息,通过蓝牙模块实现系统与微信小程序连接,最终在手机APP端进行显示。心电检测系统所需要的各模块功能分析来看,首先要实现对人体运动状态的测量,其次也要对人体心率、体温进行实时测量,以及人体所处位置的经纬度信息进行测量。再利用各类传感器采集到的数据,经过STM32最小系统处理解析后显示到LCD1602显示屏上,以便将总体数据通过蓝牙传输送到微信小程序端。并通过在手机APP上实时显示心率、温度、步数和所处位置的经纬度信息等数据。图2-1系统总体框图2.2系统硬件方案其中关于各模块传感器是否适合本系统,根据系统需求分别对各模块传感器进行调研及选型,最终才能确定系统所需要的传感器型号是不是与之匹配,基于本系统设计,各模块的选择与论证如下:2.1.1控制芯片选择方案一采用可程序设计的逻辑元件CPLD作为控制器,CPLD具有体积小、安全性高、I/O资源充足、功能扩充简单等优势,而且还能完成较为繁琐的功能。其中的并行输入输出模式,对整个系统的处理速度都有所提升,适合作为大多数控制系统的控制核心。缺点:从使用者的角度来看,数据处理达不到要求指标,不太适合于本设计。方案二采用STM32系列单片机作为核心控制。它是基于ARM7架构的32位、支持数字模拟与跟踪的微控制器,是由意法半导体ST有限公司设计制造的。它的内存资源(寄存器和外设功能)比AVR和PIC都要多的多,几乎接近于计算机设备的CPU,主要应用于手机终端、路由器等。缺点:在对多路信号进行处理时,就可能需要好多片DSP来进行并行处理。优点:它很容易开发,功能丰富,比较适合于本设计。综上所述,故选择方案二。2.1.2显示方案选择方案一采用OLED模块作为显示端,OLED可以被看作是新型的发光技术,具备自动发光、无背光、对比度高、厚度较薄、视野范围广、反应速度快、结构简单、制造工艺简单等优势。缺点:由于本设计中显示的各项数据较多,OLED明显不符合要求,不适合与本设计。方案二采用LCD1602液晶模块作为显示端,利用LCD1602液晶模块可以通过电极在显示器上控制液晶分子的运动状态,并由此达到显示器的目的。但相对而言,LCD1602型液晶模块的功率主要来自于内部电极和驱动IC。缺点:显示的字体有大小限制,不能显示图形等,优点:和微控制器系统的连接较简单,稳定,成本较低,比较适合于本设计。综上所述,故选择方案二。2.1.3倾角传感器选择方案一采用陀螺仪模块检测角运动状态数据。它利用高速旋转体的动量矩,在壳体的相对惯性空间中,围绕一个或两个相互正交的旋转轴感测角运动检测装置。陀螺仪有很多种类型,可包括传感陀螺仪和指示陀螺仪。传感陀螺仪主要用于飞行器运动系统中的水平、垂直、俯仰、航向和角速度感应。而指示陀螺仪则主要用来指示飞机状况,作为驾驶和航行的仪表。优点:模块精确度高,稳定性好,缺点:操作困难复杂,其精度不太好调试,不太适合与本设计。方案二:采用ADXL345模块来测量运动状态信息,ADXL345可以作为模拟设备的倾斜感应器,其拥有超强的运动功能,而且内置了很多寄存器,是移动设备上使用的理想选项。ADXL345模块不仅能够测量静止重力加速度,还能够测量动态加速度。优点:制作成本低,且易于控制,适合移动设备上的应用,比较适合于本设计。综上所述,故选择方案二。2.1.4心率检测模块选择方案一通过气压感应器收集心率信息,但气压感应器所输出的电信号比较微弱,检测难度大且易受外部的扰动所影响,在这种设计中会提高系统实现的困难,是非常不可取的选择。缺点:容易受到外界因素的影响,不易检测。方案二采用了Pulsesensor脉搏心率感应器系统,它是融合了放大电路和噪声抵消电路的光学心率传感器,配戴于手指尖、耳垂等处,可使用在不同环境透光时对人体的血管进行检测脉搏。传感器过滤并释放光电信息,最后形成模拟电流值。微控制器把收集到的模拟信号值转化为数字信息,再经过简单的运算得出心率控制数值。优点:方法简单,便于携带,可靠性高,比较适合于本设计。综上所述,选择方案二。2.1.5温度传感模块选择方案一采用了PT100温度控制感应器,这是一个可以把温度控制数据转化为可输出的归一化输出信息的计数器。主要用作在工业生产环境中温度控制数据的检测与管理。具有感应器的高温发射器,基本由二个部门组成:感应器和信号转换器。PT100高温感应器基本为热电偶或热电阻;而信号变换器则基本由高温检测模块、处理单元和信息变换模块等组成。缺点:体积大、价格昂贵。方案二使用DS18B20温度传感器,在接入微处理器时,只要求一根口线就可以够完成处理器和DS18B20之间数据通信,且两者是双向的;工作时,温度的测温范围在:-55℃~+125℃之间,其测量的误差为1℃;支持多点互联功能;可设置为与多条DS18B20并联电路中仅有的三个平行长达八年以上,并争取多点温度监测,但数量要是过高的话,或者供电电源电压过低的话,结果就是下一次信息传递的速度不平稳;工作开关电源:3.0~5.5V/DC;实际使用时不要求外加组件。优点:容积小、抗干扰力量强、控制精度高,比较适合于本设计。综上所述,故选择方案二。2.1.6通信模块选择方案一通过WIFI模块实现数据的传送,WIFI通信技术被使用概率是最大的,所以它的通信技术也发展的非常完善。因为WiFi通讯的使用面积多,技术能耗低、操作便捷等优点,帮助我们解决了很多平时生活中的小问题。如果以一种很低的功率将信号传输,它甚至不足以危害到我们的身体健康。在我们的日常生活中,随处的小商店都可以被WIFI信号覆盖从而连接我们的手机设备,便捷又高效。缺点:需要专用服务器。方案二:通过蓝牙模块进行传输,使用蓝牙技术进行信息的交互操作出现的时间很早,在二十世纪初就已经被研发,刚开始的时候,该技术有着较强的局限性,但后来对于蓝牙技术的研究逐步升级,到现在实现远距离信息传递毫无问题,甚至可以做到不适用网络环境。这些不被物理条件约束的便捷通讯方式在后期的各类型系统研究中发挥了巨大贡献,同时也极大提高了人们的生活体验。优点:连接稳定,性价比高,比较适合于本设计。综上所述,故选择方案二。2.1.7GPS模块选择方案一:采用SKM66型号的GPS模块,它是根据用户情况定制的无人机GPS模块。该模组通过集成的反射天线接受信息,位移、速率、时钟等串行数据信息都能够使用NMEA协议或串行端口的自定义协议完全记录。该GPS模组具备-165dBm跟踪灵敏度,采用灵敏度架构的高性能单片机MediaTekMT3333集成模块,拥有活跃多频干扰器。缺点:角灵敏度中心线极低,用于测量地球磁场的方向和大小。方案二:使用了NEO-7N型号的北斗双模定位模块,北斗双模定位模块中包括了RF射频芯片、基带芯片和处理器内核以及外围集成电路,这主要用于接收信息的卫星导航系统发送的位置。目前常用的导航定位系统芯片主要包括单模和双模两种,单模芯片可以接受一个卫星系统的所有信息,而这些芯片的市场大部分由GPS芯片所主导。优点:双模芯片能够接受卫星数据的两个导航系统,大大提高了数据是准确性。故选择方案二。基于上述各模块的选择,心电检测系统的整体硬件结构根据最终选型确定每个模块由以下传感器组成:STM32F103C8T6单片机核心系统、NEO-7N型号的北斗双模定位模块、ADXL345加速度传感器、Pulsesensor脉搏心率传感器、DS18B20温度传感器和、LCD1602显示屏和蓝牙模块组成。硬件整体系统框图如下:图2-2硬件系统框图系统整体硬件原理图在附录中进行查看。2.3系统软件方案根据系统的软件实现方式,软件方案分为:下位机软件方案和上位机软件方案。下位机端负责整合各传感器数据,将各传感器驱动起来,不断去采集传感器的数据并进行处理,然后在显示屏上显示出来,供用户查看数据,同时也可以利用蓝牙模块将收集到的数据上传给上位机端。上位机端负责接收下位机传输的数据,并且实时跟随下位机刷新数据,后通过搭建微信小程序的前端来在手机端进行下位机各项数据的显示。针对本系统所需要求,其中下位机软件方案可确定为:运用keil软件对STM32单片机进行C语言程序编写及调试,下位机软件系统整体工作流程是:系统上电开始进行各传感器初始化,之后各传感器开始采集心率、体温、运动状态、GPS坐标信息之后,经过各自对应处理程序,将处理过的信息传输到STM32单片机中并显示在显示屏上,之后通过蓝牙模块将相应的数据格式发送到上位机中,并在手机端APP进行展示,便于使用者进行观测数据。由于本设计要求自行设计上位机软件,所以开源的一些测试软件不可使用,最终实现了上位机与下位机的通信,基于此上位机软件方案选择与论证如下:2.3.1上位机设计平台方案一:采用了Qt上位机软件开发工具,Qt是一种跨平台应用的设计架构,能够用来设计桌面编程、嵌入式编程以及手机app。支持的主要操作系统平台包括:Linux,Windows等。而Qt最大的特色就是跨平台开发,即:一次编码多系统编译。就是说只写一次代码,然后把这个代码拿到各个系统上分别编译。即可生成各个系统下的原生应用程序。因此Qt开发的应用程序在各个系统下都可以获得和原生应用程序同样的性能。方案二:采用了AndroidStudio上位机软件研发技术工具,这同时也是由谷歌出品的一种Android集成研发技术工具,基于IntelliJIDEA。该系统给提供了:使用Gradle的搭建技术、安卓操作系统自主的重新架构和维护迅速、提示工具的捕获特性、环境运行的持久稳定性等问题、通过提供支持ProGuard和应用标签、以及使用基于模板的向导功能来转化成最基本的Android系统应用组件和特色设计、以及完整的布局编辑器,方便在控件内让用户看见成品结果的展示。方案三:采用的微信小程序为上位机软件开发工具,小程序使用的平台是在微信公众平台上,它不但可以帮助开发者开发小程序,而且开发的小程序可以在微信上轻松获取和传播。其中小程序只需要一次开发,就可以适应Android和IOS系统,对于开发人员来说,极大地提高了开发的效率。在传统的H5页面时,都需要加载和连接。小程序却能够脱机使用,这对于实际使用中不再请求网络的应用程序来说是一个很好的改进。所以微信小程序非常适合有一定编程基础的人员去研发设计。由于AndroidStudio和Qt在设计时所选择的语言和开发工具相对来说需要一定的技术功底去支持实现,期间所遇到的问题难度较大,接触的机会较少,了解较浅,所以不再考虑去使用,微信小程序开则是发在之前课程内容中有所学习和了解,容易上手去做,相比其它两个更方便一些。基于此,故选择方案三。因此,心电检测系统的整体软件结构是通过前面硬件系统对所有传感器的数据采集之后,通过STM32系统的数据结果计算,最后通过蓝牙模块来接收下位机传输的数据,并通过连接对应的微信小程序获取整体数据并显示到手机APP上,让使用者可直接通过手机端进行查看。图2-3系统软件的总体框图2.3.2本章小结本章主要阐述了所研究的心电检测系统的总体设计方案以及系统软硬件方案,同时还对该系统软件的设计平台,进行了分析对比,最终确定最合适的设计方案。同时也对心电监测系统的主要功能实现流程做出了详尽地阐述。3心电监测系统硬件设计3.1STM32开发板本设计使用了STM32系列数据处理器,这是由意法半导体ST有限公司产品设计生产的一款采用了ARM7结构的32位、支持数字模拟与跟踪的微控制器。选用此款主控芯片主要是因为,本系统产品设计并不是为了要求成本的最小化或者更小的功耗,而只是为了在实现本系统性能的条件下,可以实现更丰富的电路结构和性能,以便于产品设计实验系统和实验项目需要的外围扩展系统。此款主控芯片在完成了单片或微型计算机课程的教学任务后上手相当方便,在心电测量技术中也使用普遍,因此具备了较高的教学、实践及研究价值。STM32F103系列单片机为嵌入式ARM处理器,主要的意义在于:它为实现MCU的需要,创造了廉价的平台、减少了接口数量,并且带来了优异的运算特性以及领先的中断与反馈控制系统。STM32单片机系统板接口原理如下图:图3-1STM32单片机系板接口原理图STM32单片机系统板内部电路图如下图所示:图3-2STM32单片机系统板内部原理图STM32单片机实物图如下图所示:图3-3STM32单片机实物图3.2具体硬件电路模块3.2.1重力加速度传感器模块本设计中选择了ADXL345模块实时监测相关状态信号。ADXL345是一种小型的超低消耗三轴加速度仪,拥有高分辨率(13位)和±16g测试区域。数字输出数据是互补的16位,可透过数位SPI(3线或4线)或IIC双端口访问。ADXL345也是移动装置中使用的理想选项。它能够测试在倾角测试使用中的静止重力加速度,包括设备因为运动或碰撞时所形成的动态加速度变化。它的极高清晰度(3.9mg/LSB)能够测试偏斜夹角低于1.0°的变化情况。主动和非主动测试功能都可以透过相对在任何轴上的加速率和用户所定义的阈值,来测试设备是否产生了运动。冲击测试功能用于衡量在任何方向的单件和双次震动。自由落体测试功能衡量设备有无跌落。这种功能也允许单独映射到2个中断输出接口中的一个。ADXL345模块的接口图如下图所示:图3-4ADXL345模块接口图ADXL345模块各引脚说明如下表所示:表3-5ADXL345模块各引脚说明引脚名称功能GND必须接地VCC接高电平CS芯片选择INT1中断1输出INT2中断2输出SDO串行数据输出(SPI4线)/I2C地址选择SDA/SDI/SDIO串行数据I2C/串行数据输入(SPI4线)/串行数据输入和输出(SPI3线)SCL/SCLK串行通信时钟ADXL345模块实物图如下图所示:图3-6ADXL345模块实物图3.2.2心率传感器模块本设计中选择了Pulsesensor的脉搏心跳频率感应器,心率感应器实质意义上是一个整合扩大电路和噪声抵消集成电路的光学心跳频率感应器。这种感应器能够让你开展和心跳频率有关的交互式工作。感应器也可以佩戴在手指尖或者耳垂上。通过光电感应器所产生的脉冲信号可以转换成电信号,此设备时必须将手指置于感应器表盘上,该感应器也是一种光学心跳频率感应器,此感应器也是整合了扩大集成电路和噪声抵消集成电路的光学心跳频率感应器,在光电感应器侧面的感光二极管发亮后,在脉搏跳跃时刻,通过手指和耳垂产生的动脉血管血容量出现了周期性改变,而通过指尖的光线强度也同时改变。Pulsesensor脉搏心率传感器模块连接原理图如图所示:图3-7Pulsesensor脉搏心率传感器连接原理图Pulsesensor脉搏心率传感器模块各引脚说明如下表所示:表3-8Pulsesensor脉搏心率传感器各引脚说明引脚名称功能+外接5V_外接GNDS输出接口(0和1)Pulsesensor脉搏心率传感器模块实物如下图所示:图3-9Pulsesensor脉搏心率传感器实物图3.2.3温度传感器模块DS18B20是目前最常用的数字式温度传感器,所传输的大多都是数字信息(例如:123456),所具备尺寸较小,硬件费用低,抗干扰力量较强,准确度高等优势。DS18B20数字温度传感器接头结构简单便捷,打包而成后就能够使用于任何场所中,如套筒型,螺纹式,磁铁吸收式,或不锈钢密封型,目前规格众多,有LTM8877、LTM8874等。DS18B20温度传感器一般封装的方法有两种,在使用方法上几乎类似,可根据实际应用环境进行选用。一种是简单直接的DS18B20温度传感器模块,主要用于空气室温检测。第二种也是用不锈钢管道封好的,为建筑保温,大多数用于热水灯等液体水温的测定。DS18B20温度传感器实物图如下:图3-10DS18B20传感器模块实物图DS18B20温度传感器原理图如下:图3-11DS18B20温度传感器原理图DS18B20温度传感器模块各引脚说明如下表所示:表3-12DS18B20温度传感器各引脚说明引脚名称功能DQ信号输入/输出端GND必须接地VDD外接供电电源输入端3.2.4GPS定位模块采用了NEO-7N型号的北斗双模定位技术模块,是整合了RF射频晶片、基带晶片及其内核CPU,并加入了相应外设电路所形成的一种集成电路,主要用来接受卫星引导控制系统所发出的位置信号。从北斗卫星导航体系来看,由中国自主研制建设的"北斗卫星导航体系"是目前当今世界上可以独立运营的四个卫星导航系统之一,由空间卫星发射控制系统、地面运控系统和综合应用操作管理系统三个部门构成,基础工作设计原理是"双星定位"。GPS定位模块实物图如下图所示:图3-13GPS模块实物图GPS定位模块各引脚说明如下表所示:表3-14GPS模块各引脚说明引脚名称功能PPS时钟脉冲输出RXD串口接收TXD串口发送GND必须接地VCC必须接高电平GPS定位模块与STM32单片机连接图如下图所示:图3-15GPS模块与单片机接线图3.2.5串口通信模块本设计中采用了HC05蓝牙模块,它是一个高功能的主从合一蓝牙串口模组。支援SPP的蓝牙芯片组串口协议,具备费用少、尺寸小、功率低、接收灵敏度高优势。内核模组为HC05主从一体模组,引出端口包含VCC、GND、TXD、RXD、KEY引脚等,及蓝牙状态端口(STATE),在未连接出口时功耗显著降低,接后后输出功率较高。蓝牙模块实物图如下图所示:图3-16蓝牙模块实物图蓝牙模块各引脚说明如下表:表3-17蓝牙模块各引脚说明引脚名称功能STATE蓝牙连接低电平有效RXD串口接收TXD串口发送GND电源负极VCC电源正极KEY切换引脚蓝牙模块与单片机连接原理图如下图所示:图3-18蓝牙模块与单片机连接原理图3.2.6液晶显示模块本设计采用LCD1602液晶显示,其显示方式有两种:字段显示和字符显示。其中的字段指示方式,它与平常普通LED表示的方法相同,需要向对应的管脚口发送对应的文字信息来显示。而本系统中,所应用的对象是数字型显示屏,由于液晶显示模组有体积较小、耗电量少、表示信息丰富的优势,同时也不需外部控制电路,所以现在的液晶显示模组已是单片机应用系统开发中,最常规的显示屏部了。LCD1602各引脚说明如下表所示:表3-19LCD1602各引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDO电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15A背光源正极8D1数据16K背光源正极在本电路中所看到电位器,主要是为了调节液晶显示器的清晰度。其电路原理图如下图所示:图3-20LCD1602液晶电路原理图其实物图如下图所示:图3-21LCD1602液晶实物图3.2.7本章小结本章介绍了本文所研究的心电检测系统的总体硬件设计,并且对该控制系统所需要的各个硬件模块进行了分析,研究了各模块的结构原理及各模块引脚说明,详细的给出了所有模块实物图。4心电监测系统软件设计4.1软件编程工具4.1.1编程语言选择因其整个编程过程比较复杂,且运算量大,所以采用了较多的浮点数运算,使得程序的编写使用了C语言。C编程语言是由贝尔实验室基于B语言所建立的一个面向过程的程序设计语言。它属于最接近底层的高级编程语言,兼顾了高级编程语言与汇编语言的优势,能够以较高的编写效率直接地对内存或寄存器进行运算,并且效率非常高,仅仅比汇编语言的程序效率低大概10%~20%。不过随着计算机语言技术的突飞猛进,根据使用需求发展出来了更多偏向与软件设计的语言。因此C语言现在的应用场景更多的放在了底层,比如嵌入式、操作系统等。4.1.2单片机程序开发环境本文设计ARM开发环境是KeiluVision5,当今所有的嵌入式开发软件中,德国-美国联合的Keil公司下KeilSoftware部门所推出的KeilMDK5绝对是最为热门的一款。该款开发系统使用C/C++作为开发语言,结构性强,灵活度高。Keil提供了不仅包括C语言所应有的编译器与链接器,还具备强大的实时仿真调试功能及库管理功能。最终,将所有功能汇聚在一起并与μVision集成开发环境结合,成为KeilMDK。KeilMDK5是该公司于2013年推出的最新一款开发系统,它摈弃了传统的将芯片资料嵌入到开发环境的做法,而是直接以资料包的形式安装进开发环境中。这样的好处是有效的节省了存储空间的占用,并给开发者提供了很大的便利性。同时,ST公司在近些年还推出了STM32CubeMx开发工具,该款开发工具覆盖了STM32全系列芯片,支持MDK、IAR等多款开发环境,主要以HAL库开发为基础。开发者在使用过程中可以进行根据用户需求来进行图形化外设配置,并自动生成C语言项目程序,使用时可以将更多精力放在软件算法的设计上,而不是在驱动外设配置程序上花费大量的时间。4.2心电监测系统总体程序设计整体系统的软件结构是由下位机端、上位机两部分结合而成。其中下位机端的编译环境选择的是keil软件并采用uVision5IDE,而系统软件的设计及编写采用C语言。上位机端采用采用微信开发者工具进行界面及功能的设计,采用JavaScript语言来编写小程序功能。在基于硬件系统方案的基础设计上,通过对软件程序来编写,本系统软件在通电后开始运行,控制系统中开始整体软硬件功能装置所使用的各种功能模块系统实现初始化,整体软硬件功能装置中包含了单片机的内在所有功用模块系统,如时钟控制,串口控制功能等。单片机对硬件模块的初始化执行完成以后,判断定时器是否启动工作了,当定时器启动工作后,此时系统就需要将所收集的数据,包括心率、温度、人体状况和GPS信号等,并利用蓝牙模块将收集到的数据发送至微信小程序端,同时在手机APP端实时显示获取的数据。系统软件设计总流程图如下:图4-1系统软件设计总流程图4.3传感器各模块程序设计4.3.1心率传感器程序设计针对PluseSensor心率传感器开始要进行对单片机引脚的使能,再对传感器接收的引脚进行中断初始化,由于心率采集需要一定的时间差才能去实现,所以这里采用了定时器3进行对心率数据的处理,当心率数据采集时,定时器5ms后进入中断进行对心率信号采样,因为外部中断是基于高电平触发,当进入中断程序后,要进行心率数据进行计算,然后对心率信号进行滤波处理,滤掉手指未放的状态,记录前两次的心率数据的间隔,再对心率数据进行四次采样求平均值,完成后将定时器延时清空,得到更为精准的数据,之后再通过中断引脚接收比较器输出的心率信号,此时得到的数据就是所需要的心率值。心率信号的处理代码如下:图4-2心率信号的处理代码4.3.2温度传感器程序设计针对于温度传感器,开始要对单片机引脚的使能,由于DS18B20温度传感器是属于单总线类型,只有单引脚可进行通信,所以应该对DS18B20的模式进行两次配置,一次配置输入,一次配置输出。其次需要对DS18B20传感器模块进行IO口初始化,以确保模块的正常。其初始化首先要将数据线置高,进行延时的处理,再进行数据线的拉低,延时是750us,然后进行检测到DS18B20的存在,若返回的值为1,则存在,返回的值为0,则未响应,再进行温度转化的代码处理,精度控制在0.1℃,以上操作代码进行总结加入判断后,得到带有返回值的初始化代码,此时得到的数据就是转换完成的温度值。DS18B20传感器模块温度转化代码如下:图4-3温度转化代码4.3.3重力加速度传感器程序设计首先采用模拟IIC接口与ADXL345模块进行通信,那么就要对SDA、SCL引脚进行初始化操作,采用宏定义来对IIC的引脚接口进行定义,由于IIC通信是属于半双工通信方式,则需要定义IIC_SDA来进行输出、READ_SDA来进行输入。其次就是对传感器进行必要的初始化步骤:开始系统上电;等待1~2ms后;再进行初始化命令序列;最后对获取到的传感器的数据进行处理,以此得到我们想要的数据,通过对传感器Z轴数据的分析,读取ADXL345传感器的数据并以此为基础得到X、Y、Z三轴的数据。由此可计算出人体状态所需要的数据。计算数据显示处理代码如下:图4-4计算数据显示处理代码4.3.4GPS定位程序设计系统设计采用了中科微电子设计的GPS定位模块,其型号为NEO-7N的北斗双模定位模块,需要通过串口与STM32单片机进行数据传输,并通过单片机对数据的解析与处理,再得到所需的GPS经纬度数据。使用该模块前,首先需要对串口2进行初始化,才可以接收定位模块的数据。串口2的发送接收引脚选用PA3作为RXD,PA2作为TXD。对于串口配置首先需要对GPIOA和UART2的时钟进行使能,并通过复用普通IO口为USART引脚,配置好串口2之后,就可以与GPS定位模块进行数据交互了,经过单片机的数据解析处理后,就可得到我们所需的信息。其中单片机解析经纬度的代码如下:图4-4单片机解析经纬度的代码4.4上位机系统程序设计上位机的系统设计主要是微信小程序的程序设计为重,最终下位机接收到的数据通过蓝牙模块实现通信,并通过连接对应的微信小程序获取整体数据并显示到手机APP上,让使用者可直接通过手机端进行查看。而微信小程序的界面采用WXML模板与WXSS样式相结合设计,其中WXML模板是描述界面的样式,其中WXML提供了form、view、button等等的标签。WXSS提供了全局的样式和局部样式,虽然WXML理解起来很简单,但是如果光搭建好了框架,却还没有实现想要的页面效果,这就必须使用WXSS样式了。而WXSS的样式决定了组件该怎么显示,给予我们修改页面样式的功能。而本次微信小程序设计中,重点在于如何获取蓝牙模块接收的数据,实现硬件系统与小程序的通信,其中获取蓝牙数据核心代码如下:图4-5获取蓝牙数据核心代码在微信小程序页面设计当中,可明显看到各项数据的显示,若接收到的数据发生变化,及时可以去记录,实现实时检测的效果,最终微信小程序实现的页面图如下:图4-6微信小程序页面图4.5本章小结本章介绍了本文所研究的心电检测系统的总体软件程序设计,给出了系统所需的编程语言及编程工具,并详细说明了系统软件设计总流程,分析了对各模块软件程序的设计与实现及微信小程序的实现。
5系统测试与结果分析5.1软件调试与结果分析5.1.1下位机软件系统测试系统中的下位机软件系统的测试分为每个单独模块驱动程序是否能驱动模块,并与模块建立正确的数据通信。在整体系统程序编译无误后,使用SW接口将程序下载到开发板子中,之后再通过对整个系统进行重新上电操作,等到数据变稳定后,通过QT上位机串口助手观测是否显示出心率、温度、步数,GPS等数据,并测试各项数据的准确性。(1)整体硬件系统开始上电,然后开始连接PC端,留3~5s时间,确保系统稳定之后,再打开QT串口调试助手进行测试;图5-1系统软件测试图(2)打开QT串口助手,接收数据并进行实时检测(由于室内受到卫星信号的屏蔽测不到GPS数据,需要移步空旷的地方);图5-2QT串口接受到数据图5.2.2上位机软件系统测试上位机系统的检测方法是先打开系统的硬件部分以及下位机软件并确定检测无误之后,再观察系统下位机端有无与蓝牙模块通讯,然后打开微信开发者工具并编译运行的微信小程序之后观察数据是否对应连接成功,之后微信小程序界面就会显示LCD屏上对应的心率、温度、步数,GPS等的数据(由于室内受到卫星信号的屏蔽测不到GPS数据,需提前使用远程定位测试工具进行GPS各项数据的测试)。GPS北斗卫星定位模块测试及调试:(1)GPS模块—USB转TTL模块—PC端,确保无误后打开串口调试助手;图5-3串口接受到数据图(2)由于室内受到卫星信号影响,接受不到数据,移动到室外空旷的地方,再进行数据接受,并打开远程测试工具进行查看;图5-4GPS实时定位图(3)确保测试GPS的数据无误后,再进行微信小程序端和系统的整体调试,实时观测小程序端的各项数据;连接蓝牙连接蓝牙图5-5微信小程序端测试图5.2硬件调试与结果分析硬件各模块电路元件其中先对每个模块进行独立测试,保证每个模块上电之后便都可以正常工作,避免发生后续组装出现的短接及断连的情况。如模块出现问题首先观测模块器件是否出现虚焊或者漏焊情况,如没有上述故障,则开始用万用检测各模块之间管脚是否对应正确,排除接线错误。如上述情况都没检测出问题,则需进行更换模块器件。硬件检测一般通过万用表或示波器等对连接板实施整机调试。以检测各台机器设备是否能正常工作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肇庆2025年广东肇庆市教育局直属学校招聘教师18人笔试历年参考题库附带答案详解
- 河南2025年河南省直第三人民医院人事代理招聘47人笔试历年参考题库附带答案详解
- 无锡2025年江苏无锡宜兴市东氿中学面向城区初中学校选调学科教师28人笔试历年参考题库附带答案详解
- 广西2025年广西自然资源职业技术学院招聘笔试历年参考题库附带答案详解
- 安阳2025年河南安阳市妇幼保健院安阳市儿童医院人才引进40人笔试历年参考题库附带答案详解
- 咸宁2025年湖北咸宁市咸安区面向编外教师专项招聘编内初中教师笔试历年参考题库附带答案详解
- 南京2025年江苏南京市高淳区卫健委所属部分事业单位招聘卫技人员7人笔试历年参考题库附带答案详解
- 六安安徽六安舒城县乡镇卫生院“县管乡用”招聘卫生专业技术人员21人笔试历年参考题库附带答案详解
- 2026年高级管理人员必修课组织行为学重点题解
- 2026年金融投资风险管理与收益优化题集
- 肺癌病人术后疼痛护理
- 室性心动过速课件
- 融资管理办法国资委
- GB/T 45870.1-2025弹簧测量和试验参数第1部分:冷成形圆柱螺旋压缩弹簧
- 仓库物料储存知识培训课件
- 数字化转型下的人力资源管理创新-洞察及研究
- 门诊部医保内部管理制度
- (高清版)DB62∕T 2637-2025 道路运输液体危险货物罐式车辆 金属常压罐体定期检验规范
- 化粪池清掏疏通合同范本5篇
- 物理学(祝之光) 静电场1学习资料
- 个人项目投资协议合同范例
评论
0/150
提交评论