基于Arduino的人体健康监测系统.docx
- 文档编号:30137194
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:18
- 大小:185.95KB
基于Arduino的人体健康监测系统.docx
《基于Arduino的人体健康监测系统.docx》由会员分享,可在线阅读,更多相关《基于Arduino的人体健康监测系统.docx(18页珍藏版)》请在冰豆网上搜索。
基于Arduino的人体健康监测系统
毕业论文
中文标题基于Arduino的人体健康监测系统
英文标题HumanhealthmonitoringsystembasedonArduino
基于Arduino的人体健康监测系统
摘要
近年来,随着生活、工作等方面压力的增加,越来越多的人开始重视自身身体健康问题,鉴于此种情况,本文介绍了以一款简单清晰、发展迅速的开源电子原型平台Arduinouno为主,利用腕带式脉搏传感器、红外体温传感器MLX90615采集信号经单片机处理后通过网络模块进行上传的人体健康监测系统。
此系统所采用设备,体积小,使用方便,测量精度较高可以同时对人体体温、脉搏进行监测,并上传至网络,可以随时查看。
此系统不仅仅可以作为私人健康监测系统使用,对人群密集处的健康监测也有着一定的研究意义。
关键词:
Arduino;腕带式脉搏传感器;红外体温传感器;上传网络
HUMANHEALTHMONITORINGSYSTEMBASEDONARDUINO
Abstract
Inrecentyears,withtheincreaseinlife,workandotheraspectsofpressure,moreandmorepeoplebegantopayattentiontotheirownhealthproblems,inviewofthissituation,thisarticleintroducedasimpleandclear,rapiddevelopmentofopensourceelectronicprototypeplatformArduinounoMainly,theuseofwristbandpulsesensor,infraredtemperaturesensorMLX90615acquisitionsignalthroughthemicrocontrollerprocessingthroughthenetworkmoduletouploadthehumanhealthmonitoringsystem.Thesystemusedbythedevice,smallsize,easytouse,highmeasurementaccuracycansimultaneouslyonthehumanbodytemperature,pulsemonitoring,anduploadtothenetwork,youcanalwaysview.Thissystemcannotonlybeusedasaprivatehealthmonitoringsystem,butalsohassomeresearchsignificanceforthehealthmonitoringofcrowds.
Keywords:
Arduino;Wristbandpulsesensor;Infraredbodytemperaturesensor;Uploadthenetwork
第一章绪论
1.1论文研究背景
目前,中国已经是世界最大的经济体之一,而且经济还在稳固增长中。
但实际上,中国还是一个发展中国家,在很多方面依旧比较落后,尤其是医疗领域。
我国的医疗资源非常短缺,患者与医生大多情况下无法进行详细的咨询和交流,患者也不能确切的了解自身的病症,导致无法享受到完善的治疗和诊断。
除此之外,中国正在逐步步入老龄化社会,65岁以上的老人越来越多,再加上刚刚开放了的二胎政策,一个家庭中的子女数量也会上升。
这些原因都都使人们对家庭健康监测越来越关注,人们急需一款能够随时检测自身身体情况的设备,来及时预防和发现疾病。
如今和健康检测相关的医疗电子设备越来越多,检测的项目越来越多,范围也越来越大。
但人们对健康监测的追求永远不会减退,反而会逐渐增强,所以研究一款能够快速、准确测量人体生理参数的设备就十分有意义。
1.2人体健康检测的意义和内容
1.2.1人体基本生理参数
1)脉搏
心脏搏动所引起的压力变化使主动脉管壁发生振动,沿着动脉管壁向外周传递,即成脉搏.通常所称的脉搏系指在手腕桡侧扪到的脉搏。
脉搏能够反映人体血液循环系统的功能状态。
脉搏会受到很多因素的影响,不同的年龄或者性别之间都会有差异,但是正常情况下人体的脉搏平稳,强弱间隔不会大范围波动,例如正常的成年男性大概在每分钟六十到100次,老年人会慢一些,儿童和妇女快一些。
但是当包括感冒,中毒、休克等许多疾病发生时,就会立刻有所反应,尤其是病重时脉搏会发生剧烈的变化。
因此,对病人来说,或者说对于任何一个人,定时检查脉搏都是比不可少的。
2)体温
体温即时人体的温度,医学上一般检测的腋下温度是人体表层温度,表层温度包括皮肤、皮下组织等的温度,当人体受到致病原或者其他因素影响时,人体中枢体温调节系统容易出现障碍,使体温偏离正常范围,出现高温或低温。
是人体温度十分敏感,很多原因都会导致体温调节中枢的失常,检测体温的变化是预防疾病的好办法。
另外,临床医学上可以通过发热的类型来判断疾病,例如体温39到40摄氏度达数天可能是大叶性肺炎。
1.2.2人体健康监测的意义
体温、脉搏是人体内在活动的客观反映,临床称之为生命体征,是判断人体是否健康的标准和依据。
正常人的体温脉搏成比例,且在一定范围内相对稳定,当机体受到伤害时,体温、脉搏立刻回出现不同程度的异常,表示人体出了问题,有疾病发生。
因此,对生命体征进行监测并记录,主要有以下几点好处:
1)增强对自身身体的了解,增强锻炼,提升免疫力;
2)及时发现疾病,及时就医,避免病情恶化;
3)得病时,随时了解自身身体功能,辅助治疗。
1.3本文研究内容
在人们日益关注健康问题的今天,利用传感器技术将生命体征这些非电量转化为可测量的电量,通过电子及通信技术上传相关数据到计算机及物联网,进而实现相关信息的处理分析,提供高效方便的应用服务,能够将医学与通信技术相结合,这无疑是一次有意义的研究。
基于这种目的,本文提出了一种基于Arduino的人体健康监测系统。
本课题的主要研究内容如下:
1)对系统整体进行设计,构思;
2)针对整个系统的功能要求,选择相关的人体信息数据采集器件,实现各个器件的信号采集;
3)选择Arduino作为整个系统的核心,完成软件的编写;
4)总结系统的特点以及不足,提出改进思路,为后续研究提供方向。
第二章人体健康监测系统的总体设计
2.1系统的整体结构框架
整个系统主要由Arduino、信号采集器件、网络模块三个部分构成。
信号采集器件主要负责采集相关的人体信号,并将信号传输给Arduino。
Arduino是系统的核心部件,它负责控制整个体统的工作实现,首先,它向采集器件发出信号,控制他们进行数据采集,接着对采集到的数据进行处理,并通过端口传输到计算机,最后通过网络模块上传到物联网。
图3.1系统结构框图
2.2系统硬件连接图
系统的硬件连线如图2.2所示,图中注明了各个模块之间的连线,值得注意的是网络模块W5100是直接插在ArduinoUNO上的。
图2.3系统硬件连线图
2.3系统的软件流程
系统的整个软件流程实现如下图,首先通过Arduino向采集器件发送初始化命令,准备进行工作,接着根据代码完成对人体生理参数的采集,然后将数据传输到PC端,并进行显示,最后将数据上传至网络以备查看。
图2.3系统软件流程图
第三章模块功能及原理
3.1Arduino模块
3.1.1Arduino模块概述
Arduino是目前较为流行的电子互动平台,基于单片机系统开发,具有使用简单、功能多样、价格低廉等优点,广泛应用于电子系统设计和互动产品开发方面。
Arduino电路板设计使用多种微处理器和控制器,配备了数字和模拟输入/输出(I/O)引脚,可连接到各种扩展板和其他电路,采用串行通信接口,包括一些型号通用的串行总线(USB),也可用于从个人电脑加载程序。
微控制器通常使用的编程语言是C和C++。
除了使用传统的编译工具链,Arduino还提供了一个集成开发环境(IDE)用于处理语言项目。
Arduino项目开始于2003年,在意大利互动设计学院Ivrea,旨在以低成本的互动装置和简单的方法提供给新手和专业人士创建、使用传感器和执行器的环境,。
这些设备用于初学爱好者的常见例子包括简单的机器人,恒温器,和运动检测器。
3.1.2Arduino的功能特点
Arduino在开发之初,就明确了其应用环境,设计了开源开放的平台,便于对其进行二次开发。
Arduino的主要功能特点如下:
1)相比于其他单片机平台,Arduino板相对便宜。
Arduino模块最便宜的版本可以手工组装,甚至预组装Arduino模块的成本不到50美元
2)跨平台Arduino软件(IDE)可运行在Windows,MacintoshOSX和Linux操作系统。
大多数微控制器系统仅限于Windows。
3)Arduino的软件编程环境(IDE)简单、清晰,易于使用,适合初学者,高级用户利用也够灵活。
4)开放源代码和可扩展的软件-Arduino软件发布为开放源代码工具,可供有经验的程序员扩展。
语言可以通过C++库扩大,也可以添加avr-c代码直接到你的Arduino程序。
3.2体温采集模块
3.2.1体温采集模块概述
GY-MCU90615是一款低成本红外测温模块,工作电压在3-5V左右。
对IR灵敏的热电堆探测器芯片和信号处理ASSP被集成在同一TO-46密封罐封装里。
由于集成了低噪声放大器,16位ADC和强大的DSP单元,使得高度集成和高精度的温度计得以实现。
温度计具备出厂校准和数字的SMBus兼容界面。
读数精度为0.02℃。
MLX90615产品的感应元件是一款带有可感受目标红外辐射的微机械振膜晶片。
Melexis的这种技术经过多年工业和汽车温度测量领域中的应用,已经得到了充分的证实。
温度计中定制的信号调节芯片能够放大并数字化感应振膜上的热电偶产生的微小电压,同时芯片存储器中储存了工厂设定的刻度参数,能够用来准确的计算目标体的温度。
数字形式显示的温度是完全线性的,并且会对环境温度进行补偿。
高度的整合性使得MLX90615与过去红外产品相比具有更高的性价比。
3.2.2测温原理
MLX90615测温的原理主要是根据黑体辐射定律,由于任何物体都会不断吸收、辐射电磁波,而这种吸收与辐射存在一定的关系,即物体对红外线的发射率与吸收比存在一定的关系。
当温度变化时,所发射出的红外线波长也会随之变化,温度越高,波长越短。
MLX90615可以测量目标的红外辐射,通过不同辐射之间的微小差异便可以准确测量出目标的温度。
3.2.3模块通信协议
串口发送命令字节:
(1)、串口通信参数(默认波特率值115200bps,可通过软件设定)
波特率:
9600bps 校验位:
N 数据位:
8 停止位:
1
波特率:
115200bps 校验位:
N 数据位:
8 停止位:
1
(2)、模块输入命令,由外部控制器发送至GY-MCU90615模块(十六进制)
1、帧头:
0xa5
指令格式:
帧头+指令+校验和(8bit)(如自动读取温度指令=0xA5+0x45+0xEA)
2、命令指令:
连续输出指令:
0xA5+0x45+0xEA----------------温度数据(模块返回数据类型为0x45)
查询输出指令:
0xA5+0x15+0xBA---------------温度数据(模块返回数据类型为0x45)
配置指令:
(掉电重启后生效)
波特率配置:
0xA5+0xAE+0x53---------------9600
0xA5+0xAF+0x54---------------115200(默认)
上电是否自动发送温度数据配置:
0xA5+0x51+0xF6---------------上电后自动输出温度数据
0xA5+0x52+0xF7---------------上电后不自动输出温度数据(默认)
通信协议
串口接收:
(1)、串口通信参数(默认波特率值115200bps,可通过软件设定)
波特率:
9600bps 校验位:
N 数据位:
8 停止位:
1
波特率:
115200bps 校验位:
N 数据位:
8 停止位:
1
(2)、模块输出格式,每帧包含9个字节(十六进制):
①.Byte0:
0x5A 帧头标志
②.Byte1:
0x5A 帧头标志
③.Byte2:
0X45 本帧数据类型(0X45:
温度数据)
④.Byte3:
0x04 数据量(以下4个数据2组为例)
⑤.Byte4:
0x00~0xFF 数据1高8位
⑥.Byte5:
0x00~0xFF 数据1低8位
⑦.Byte6:
0x00~0xFF 数据2高8位
⑧.Byte7:
0x00~0xFF 数据2低8位
⑨.Byte8:
0x00~0xFF 校验和(前面数据累加和,仅留低8位)
(3)、数据计算方法
温度计算方法 :
温度= 高8位<<8|低8位(结果为实际角度乘以100)
3.3脉搏采集模块
3.3.1腕带式脉搏传感器概述
HeartRateWristband是腕带式版本的心率测量模块,主要由光源、光敏器件,以及相应的信号调理控制电路构成。
还有一款与其相似的传感器HR-CLAMP,HR-CLAMP是指夹式心率采集传感器,尽管两者都是采用光电法的原理间接测量脉搏,但HR-CLAMP是透射式,而腕带版采用的是反射式。
较结果来说,二者测量时都较为灵敏,但指夹式抗干扰能力更强,波形更稳定。
3.3.2反射式光电法
根据郎伯-比尔(Lambert-beer)定律,物质在一定波长处的吸光度和它的浓度成正比,当恒定波长的光照射到人体组织上时,通过人体组织吸收、反射、衰减后测量到的光强在一定程度上反映了被照射部位组织的结构特征。
手指组织可以分成皮肤、肌肉、骨骼等非血液组织和血液组织,其中非血液组织的光吸收量是恒定的,而在血液中,静脉血的搏动相对于动脉血是十分微弱的,可以忽略。
因此可以认为光透过手指后的变化仅由动脉血的充盈而引起的,那么在恒定波长的光源的照射下,通过检测手指反射的光强可以间接测量到人体的脉搏信号。
反射式光电法中,可穿戴设备上的发生器(emitter)和光敏接收器(detector)位于所测部位的同一侧,主要测量反射回来的光。
这种方法测量心率的优点是非常简便,对测量部位的要求也很低,只要组织比较平滑且皮下脂肪少的的地方几乎都可以测量,比如额头、手腕。
因此,大部分智能手环、智能手表等穿戴设备都采用了这种方法测量心率。
而且,以智能手环或智能手表的产品形式出现也完美地解决了透射式光电法中心率监测与佩戴舒适的双重要求。
不过,反射式光电法虽然在稳定状态下表现良好,但是当设备戴在手腕末端,会随着使用者走路或无规则运动而像钟摆一般上下荡,离心力将使得血液量出现大变化;当血管收缩压与离心力在血液中交互作用,就更难分辨血管中的血量。
因此可能降低心率数据的准确度。
此外,可穿戴设备佩戴的松紧和人体皮肤血流量的大小也会影响到监测准确度。
3.4ArduinoEthernetW5100模块
3.4.1W5100模块概述
ArduinoEthernetW5100网络扩展模块,可以使Arduino成为简单的Web服务器或者通过网络控制读写Arduino的数字和模拟接口等网络应用。
ArduinoEthernet是基于ATmega328的微控制器,具有14个数字输入/输出引脚,6个模拟输入,1个16MHz晶振,1个RJ45,一个供电口,一个ICSP接口,和一个复位按钮。
ArduinoEthernet可以有很多设备与计算机,另一个或者其他微控制器通信。
SoftwareSeriallibrary可以使Uno上的任意数字引脚做串口通信。
第四章模块功能设计与调试
4.1体温采集
4.1.1MLX90615线路连接
MLX90615小巧精悍,连线很简单,只需要将VCC连到Arduino的5V电压上,GND接地,RX与TX分别接11、10。
具体连线如下图所示:
图4.1温度传感器硬件连接图
4.1.2设计思路及流程
在Arduino的控制下,利用MLX90615模块进行采集,上传至PC端进行显示。
具体流程如下图所示:
图4.2温度传感器工作流程图
4.1.3数据显示
MLX90615可以同时监测环境温度与人体体温,测量结果可以显示在ARDUINO的串口监视器或1062显示屏上(1062显示屏也需要开发),也可以使用其他程序。
串口监视器显示数据如下:
图4.3温度传感器数据显示图
TA为环境温度,T0是人体温度,因为测量部位为手指,且环境温度会对体温造成一定的影响,所以数据较为准确。
4.2脉搏采集
4.1.1脉搏传感器硬件连接
脉搏传感器与Arduino连线简单,只需要VCC接9V,GND接GND,
A0接A0即可。
具体连接见下图:
图4.4脉搏传感器硬件连接
4.2.2数据显示
腕带式脉搏传感器的输出信号是模拟信号,可以直接使用示波器观察,而要想用Arduino处理就必须连接A0作为AD模拟信号采集口,
因为采集到的数据是模拟信号,观察起来不够方便、直接。
如下图所示:
图4.5脉搏传感器串口监视器显示
为了直观的显示脉搏,可以选用一些上位机软件,这里我使用的是DLSerialGraphV0.1,这款软件功能简单,操作方便,其功能包括:
1)自动检测端口,只需点击刷新串口就能检测到你当前使用的端口;
2)有断帧功能,可以显示每一帧的整个一帧数据,并且将帧头、帧功能、帧校验,一帧的九个数据都显示出来,较为直观;
3)可以演示波形。
下图即为DLSerialGraphV0.1显示的脉搏传感器数据:
图4.6上位机数据输出显示
图4.7上位机波形显示
第五章系统功能实现
5.1代码合成
整个人体健康监测系统是由Arduino、腕带式脉搏传感器、MLX90615、W5100网络模块4个部分构成的,要想让他们组成一个系统并不是简单的合成,因为涉及到一个问题——Arduino一次只能烧录一个代码。
这是由Arduino本身的特性造成的问题,所以我们必须修改代码,但是不同的模块之间很容易发生冲突,波特率的冲突,串口输出的冲突,代码编写很容易出现问题。
实际上要想解决这个问题并不困难,可以将各个模块的代码作为子程序,最后再进行调用,这个方法简单方便,可以极大的节省时间,不过缺点是有些冲突可能无法解决,串口监视器的输出也会杂乱,观测数据不够清晰直观,不适用所有情况。
图5.1代码合成
其中setup_mlx()、setup_mb()、setup_lwercilent()、loop_mlx()、loop_mb()、loop_lweicilent()分别为MLX90615、脉搏传感器、网络模块的子程序。
根据需要可以继续添加传感器,理论上只要没有冲突可以一直添加。
5.2数据上传
数据上传需要用W5100网络模块将我们之前测到的数据上传到物联网上以便于日后调用和查看。
目前国内较为流行的物联网有yeelink和乐为物联两家,两者都是很方便好用的物联网站。
这里我使用了乐为物联。
具体操作如下:
1)要进行上传需要下载网站的扩展包到IDE目录下,扩展中包含一些头文件,能够检测本地IP,方便上传;
2)登陆乐联网,根据提示添加你想要的设备和传感器;
图5.2添加新设备
图5.3添加传感器
3)改写代码,增加烧录代码到Arduino,然后就可以进行数据上传了。
第六章结束语
6.1总结
互联网+医疗无疑是目前最为热门的研究领域,相关技术在人们强烈需求的刺激下快速发展,在这种背景下,本文利用电子通信技术和医学检测技术,将二者二而为一,设计了一款基于ARDUINO的人体健康监测系统。
全文详细阐述了系统原理,软件流程以及系统的实现过程。
对当前十分流行的ARDUINO功能特点进行了介绍,针对人体体温与脉搏两个生理参数选择了MLX90615温度传感器和腕带式脉搏传感器作为监测器件,并使用W5100网络模块上传到物联网,方便调用和查看数据。
为ARDUINO开发过程中的常见问题代码合成提出了一种简单的合并方式,简化了开发过程。
由于水平和一些条件所限,这次的毕业设计还有许多不足,尽管大体上完成了系统的功能,但还有很多不足。
在脉搏监测方面,由于市面上适用于ARDUINO开发的器材较少,而且输出都是模拟信号,上传数据较为困难,观察也不够直观。
此外系统只测量了两个生理参数,显然达不到人们的需求,还需要在以后的开发中进一步的增加和改进。
在接下来的学习过程中,希望能够对本系统的功能进一步完善,真正做一款实用的人体健康监测系统出来。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Arduino 人体 健康 监测 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)