【《基于STM32微控制器的智能病房监控系统设计》14000字(论文)】_第1页
【《基于STM32微控制器的智能病房监控系统设计》14000字(论文)】_第2页
【《基于STM32微控制器的智能病房监控系统设计》14000字(论文)】_第3页
【《基于STM32微控制器的智能病房监控系统设计》14000字(论文)】_第4页
【《基于STM32微控制器的智能病房监控系统设计》14000字(论文)】_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页共32页引言智能病房监控系统,顾名思义就是对病房内的环境进行监控。核心功能可以分为两个部分,一个部分是对病房内的环境参数以及医护人员的信息的采集与显示,第二部分是对外人入侵的情况进行监控和报警。目前国内的室内智能监控系统的环境监控参数一般为温湿度以及有害气体含量和烟雾浓度。温湿度是与日常生活的舒适息息相关的,如果在温湿度不适宜的情况下生活过久,会在一定程度上影响人的健康程度,特别是对妇女儿童影响较大,因此需要对环境的温湿度进行监控,以便及时进行调整。而对有害气体的含量进行监控主要是对液化气等家用燃气进行监控,防止易燃易爆气体的泄露,如果泄露量过大,会有爆炸的危险,会对居民的生命安全造成不可估量的威胁。对烟雾浓度进行监控主要是为了防止火灾的发生,当火灾发生之后,空气中的烟雾浓度会急剧升高,这个时候如果能够有效的进行警报,则可以避免大型火灾的发生,在一定程度上对居民的生命财产安全进行了保障。除了对日常生活中的环境参数进行测量,监控系统一般还可以在夜晚时对外人的入侵情况进行检测,当进入监控模式之后,便会一直检测外人的入侵,当有外人入侵时,一般会发出警报进行报警。考虑本次设计的应用场景是在病房中,因此对于一些参数的测量收集就没有那么必要,比如有毒气体的检测,考虑到医院的环境一般对通风行要求很高,因此有毒气体不宜聚集,因此在本次设计中,不再对环境中的有毒气体含量参数进行收集。而病房中一般没有燃气的需求,因此对于燃气泄露的情况更是少见,因此在本次设计中,也不对可燃气体的含量参数进行检测。同时对于温湿度信息以及外人入侵检测等功能进行保留。同时,还可以对医护人员和病人的信息进行记录。为了提高用户的使用体验,本次设计采用手机APP的形式,通过无线模块将环境参数数据发送到手机APP端。采用射频模块对医护人员和病人的信息进行记录,并显示在液晶显示屏幕上。通过市场调研发现,在下位机与上位机通信方面,用的较为成熟的方案为蓝牙方案和WIFI方案,考虑到功能的可扩展性,本次设计选用WIFI模块完成下位机与手机APP的通信功能。综合国内外市场调研和对题目应用场景以及题目的需求分析,可以初步得出以下结论:本次设计可以分为上位机和下位机端,两者采用WIFI模块进行信息的交互。同时下位机还可以通过短信将信息发送给用户手机。下位机端完成病房内环境参数的采集和外人入侵情况的检测。环境参数包含温度和湿度等信息。当监测到温湿度值超过阈值之后,可以进行报警,报警的方式为通过手机短信和蜂鸣器进行远程和现场报警。下面对本次设计的方案设计和原理以及测试过程进行分析,对测试数据和波形进行分析。1总体方案设计 通过对设计要求的分析,结合参查阅的资料,设计出如下系统框图1.1所示:图1.1总体方案设计框图系统框图共包含几个部分,下面结合题目要求对各个部分的工能进行分析。首先,信息的输入和输出方向是从左至右,从图中可以看出,STM32F103主控模块对按键模块、RFID模块、人体热红外感应模块、超声波测距模块、温湿度模块进行数据接收,然后部分数据通过显示模块显示到屏幕上,同时可以通过ESP8266WIFI模块与手机端APP相连接,将数据通过局域网络上发给手机APP,同时,主控端还可以驱动GSM模块将数据通过短信的形式发送给用户手机。蜂鸣器完成当出现警报能够报警通的功能。具体模块的功能介绍如下:(1)过RFID模块对患者和医护人员信息进行登记。(2)通过人体红外传感器和超声波测距传感器以及温湿度传感器对病房内环境进行检测。(3)主控单元采用STM32F103单片机,收集传感器数据然后显示出来,同时进行判断是否需要报警。(4)使用ESP8266模块作为下位机和APP通信的中转站。(5)使用GSM模块将报警信息发送到特定手机上。通过主控单元的协调,各个模块配合工作。在自动模式下,下位机监控病房内的温湿度参数然后将数据显示在液晶屏幕上。1.1方案选择与原理分析在此,仅对比较重要的模块进行方案选择和原理分析,简单的模块例如按键,在这里不再进行方案选择和原理分析。1.1.1信息录入功能方案选择方案一:采用指纹的方式进行信息录入依据是每个人的指纹都是独一无二的,考虑到录入信息的便捷性和准确性以及安全性,可以考虑采用指纹的方式进行录入信息。方案二:采用RFID射频卡的方式进行信息录入RFID是一种常用的信息记录载体,在日常生活中经常能够见到,例如校园卡,就诊卡等,其特点是成本较低且具有存储信息的功能,而且携带方便,可以在射频卡表面打印一些信息。正是由于这些特点,因此,射频IC卡广泛被大众接受。针对方案一,从硬件角度分析,需要一组串口接口用来与模块进行通信,这个对于单品阿吉来说不是很困难。从软件角度分析,需要软件进行配合对指纹信息进行识别和指纹信息存储。从成本的角度来说,一个指纹模块大约需要70元人民币,价格稍贵。针对方案二,从硬件角度分析,需要增加一组通信接口,对于单片机来说,使用普通IO即可实现与模块的通信。从软件角度来说,需要对应的模块驱动程序以及信息存储。从成本分析,一款RFID模块仅需大约25元。成本较低。综合两个方案,从本次设计考虑,场景是在医院中,可能会出现残疾人的情况,而且方案一价格和硬件成本呢都比较高,因此选用方案二作为本次设计中进行信息录入。1.1.2温湿度模块方案选择方案一:采用温度检测和湿度检测独立的方式考虑到温度和湿度的检测点可能会不同,因此将温度湿度检测分开,这样在模块的使用布局方面变得更加灵活,更加人性化。温度检测可以采用常用的温度检测模块DS18B20,湿度检测也有常用的模块HR202湿敏传感器。方案二:采用温湿度检测一体模块对于单片机控制单元,与外设的通信肯定越简单约好,因此考虑将温湿度检测放到一起,因为都属于环境检测,而且方案比较成熟,这会给电路的设计和软件代码的编写带来很大的便利性,有助于顺利完成本次设计。针对方案一,优点就是对于用户来说,温度和湿度的检测点的设置就更加的灵活,特别适合是对与温度和湿度测试需要不同点时。但是从成本和设计实现的角度来说,首先成本会增加,第二也不利于设计的顺利进行。针对方案二,优点就是对于设计者来说方便了设计,也节约了成本。考虑到使用场景是在病房中,并未对温度和湿度的测试点有单独的要求,因此采用方案二温湿度一体模块完成对病房中温湿度的检测。1.1.2主控单元的选择方案一:采用STM32单片机作为主控STM32单片机在工业控制和智能家居中经常被使用,由于其功能强大,具有丰富的外设和接口,可以满足大多数的应用场景,因此被广泛使用,且价格便宜,使用C语言进行编程。这在一定程度上位软件设计减轻了压力。方案二:采用FPGA作为主控单元FPGA具有运行速度快,支持并行执行的特点,由于可以工作在较高的时钟频率下,因此对于一些对时序要求较为严格的外设,FPGA是一款不错的主控选择。但是从编程角度来看,对其编程工作量极大,由于没有库函数的支持,因此几乎所有的代码都需要自己手动编写,不利于设计的按时完成。针对方案一,STM32具有强大的库函数支持,因此对与一些常用的外设和通信协议可以直接通过调用库函数的方式实现,因此编程灵活,价格低廉。针对方案二,虽然支持较高的时钟频率,对视编程变得不那么灵活,考虑到本次设计的应用场景是在病房中,使用单片机即可满足程序对运行速度的要求。综上所述,采用STM32单片机作为本次设计的主控单元。1.1.3显示模块方案分析方案一:采用TFT液晶进行显示TFT液晶分辨率高,能够显示多种色彩,同时支持触摸操作,但是接口相当复杂,有20几根信号线需要主控单元驱动,对于硬件电路设计来说,是一个要特别注意的问题,因为线多的时候在制作的时候容易出错。方案二:采用OLED液晶进行显示OLED具有有限的分辨率,但是能够将想要显示的东西清晰显示出来。一般不支持触摸操作,当需要进行显示时,不需要开背光即可清楚显示。而且接线较为简单,但是缺点就是尺寸较小,优点是功耗较低。针对方案一,成本较高,布线较为麻烦,硬件设计存在一定的困难,对于软件来说,有库函数可以调用,工作量并没有增加很多。针对方案二,低成本,硬件设计简单,同样在软件设计方面也有驱动函数可以调用。考虑到本设计的需求,因为大多数是配合APP进行显示,因此对与显示屏的尺寸要求不高,结合制作难易程度和成本三者考虑,选用方案二作为本次设计的液晶显示方案。1.1.4手机端程序编写语言方案方案一:采用易语言易语言最大的特点是使用中文来进行编程,对于初学编程的用户来说是比较理想的选择,但是不利于后期对于APP的维护,同时因为是刚开始流行,所以对于一些特殊的应用,比如连接局域网并没有很多的资料。方案二:采用JAVA语言使用JAVA语言进行APP开发需要有一定的代码编写能力,且要求对JAVA有一定的掌握。虽然在前期学习的过程中会遇到很多问题,但是通过JAVA编写出来的APP性能比较稳定,且在一些特殊的需求方面也容易找到资料进行学习。针对方案一,虽然对于初学者非常友好,但是使用它的用户不是很广泛,这就带来了一个重要的问题,就是APP不利于后期维护和更新,同时对一些特殊的应用开发过程不是那么简单。针对方案二,前期学习过程需要一定的时间,但是用户广泛,资料丰富,有利于后期的维护。考虑到使用场景对设计的需求,和APP的维护方面,选择方案二作为本次设计APP的编程语言。2方案原理分析本小节对已选择的方案的工作原理进行分析,主要分为4个部分,分别为RC522工作原理分析、温湿度模块工作原理分析和GSM模块工作原理分析以及WIFI模块的工作原理分析。2.1RC522工作原理分析根据手册可以知道,RC522是驱动芯片的名字,该芯片工作在13.56MHz频率下,可以对射频卡进行读写操作。芯片内部功能框图如图2.1所示。图2.1芯片内部功能框图可以看出,芯片内部包含模拟电路部分和数字电路部分,其中模拟接口包含调制器,天线驱动器,接收器以及放大电路,完成射频信号的调制和解调。数字部分则包含非接触UART和FIFO缓存器以及协议转换器。工作流程为RF电平检测器和数据模式检测器将检测到的信息发送给芯片内部的非接触UART,通过非接触UART对数据进行处理完成与主机通信的协议要求。FIFO作为数据缓冲,用作协议转换的数据缓冲器。当模拟接口接收到射频模拟信号之后,首先进入RF电平检测器对信号进行门限判决,然后将高低电平信号送入数据模式检测器,对数据进行解析。数据模式检测器将解析的数据发送给UART后,既可以通过寄存器组进行数据暂存然后通过串口发送给主机,也可以通过FIFO进行数据存储,然后将数据通过SPI或者IIC协议发送给主机。完成协议转换功能。以满足不同用户的不同通信协议要求。 微控制器通过对RC522芯片中的寄存器操作完成数据的写入和读取,这里对一些核心的寄存器进行介绍。首先是中断相关寄存器,这里对中断请求标志寄存器进行介绍,根据芯片手册,寄存器字段分布如图2.2所示。图2.2寄存器字段可以看出,此寄存器共8位,第两位为RFU标志位,第二位为当CRC命令有效且所有数据被处理时的标志位。当为高电平时表示有效。第三位为RFU位,第四位表示当SIGIN有效标志位,置位条件是当检测到一个上升沿或者下降沿时有效。第6和第5位表示RFU位,第七位表示终端屏蔽位,当该位置一表示终端被屏蔽,当该位置零表示终端屏蔽被清除。2.2温湿度模块工作原理分析DHT11温湿度模块可以自动检测环境中的温湿度信息,并将检测结果存储在寄存器中。下面对其工作原理从硬件工作原理和软件工作原理进行分析。硬件原理分析DHT11温湿度传感器内部包含两部分电路,一部分是一款温湿度复合传感器,该传感器是已经经过校准的传感器,以确保采集到的数据的可靠性与稳定性。复合传感器包含一个湿度传感器和一个温度传感器,其中湿度传感器为电容式湿度传感器。第二部分是一个8位的微控制器。通过微控制器将温湿度检测模块的检测结果读出,然后存储到微控制器中,外界主控单元只需要与DHT11内部的微控制器进行通信即可将温湿度检测结果读出。之所以要增加一个8位的微控制器在检测模块中,是因为在微控制器中除了需要获取温湿度检测模块的检测结果,还需要对检测结果进行误差处理。为了降低功耗,该模块与外界通信采用单总线的方式,因此在硬件设计中,需要将外部的数据线进行上拉处理。通信协议分析DHT11采用标准单总线接口,单总线就是使用一根信号线完成通信双方的数据传输。在传输过程中,需要传输数据信息和控制信息。在通信时需要将微处理器的IO端口设置为漏极开路或者三态端口,以便可以交换数据线的控制权。通常在外部需要将数据线进行上拉处理,然后即可按照通信协议进行信息的传输。单总线传输数据的帧格式如图2.3所示。图2.3DHT11单总线数据帧格式 可以看出,在数据传输时,主机先发送起始信号,然后释放总线,将总线控制权交给从机(这里指DHT11),然后从机发送响应信号。在上述握手过程结束之后,便开始数据传输。数据包含40bit,其中前8比特表示温度结果的高八位,然后是温度结果的低八位,然后传输湿度结果的高八位和低八位,最后发送8比特校验位。每8比特都是先发高位,因此在数据接收的时候,需要将数据进行移位处理。具体的时序要求见表2.1。表2.1单总线数据格式定义表名称单总线格式定义起始信号微处理器把数据总线(SDA)拉低一段时间(至少1ms),通知传感器准备数据。响应信号传感器把数据总线(SDA)拉低80us,再接高80us以响应主机的起始信号。数据格式收到主机起始信号后,传感器一次性从数据总线(SDA)传出40位数据,高位先出湿度湿度分辨率是16比特,高位在前;传感器输出的湿度值是实际湿度值的10倍。温度温度分辨率是16比特,高位在前;传感器传出的温度值是实际温度值的10倍;温度最高位(bit15)等于1表示负温度,温度最高位(bit15)等于0表示正温度,温度除了最高位[bit14~bit0]的表示温度值。校验位校验位=湿度高位+湿度低位+温度高位+温度低位按照上述表格的数据格式定义,便可以对接收到的数据进行还原处理。单总线的通信时序见图2.4所示。图2.4单总线的通信时序从图中可以看出,对起始信号和数据信号的高电平与低电平维持时间进行了规定,具体数值见表2.2。表2.2单总线信号特征符号参数最小值常用值最大值单位Tbe主机起始信号拉低时间0.8120毫秒Tgo主机释放总线时间1030200微秒Trel响应低电平时间758085微秒Treh响应高电平时间758085微秒Tlow信号0、1低电平时间485055微秒Th0信号0高电平时间222630微秒Th1信号1高电平时间687075微秒Ten传感器释放总线时间455055需要注意的是,单总线读出的温湿度值是上次传感器的检测结果,而且相邻两次温湿度的读取时间间隔要大于2秒,以便给温湿度模块数据处理时间。2.3GSM模块工作原理分析本次使用的GSM模块实物图如图2.5所示。图2.5GSM模块实物图GSM模块内部集成了GSM射频处理芯片、基带处理芯片、存储器和功放器件等部件。同时内部集成独立操作系统并提供标准数据输入输出接口。通常来说,GSM模块完成短信收发、语音通话和GPRS数据传输的功能,比较简单的手机系统便可以使用GSM模块加上按键模块和显示器以及电池组成。本次设计主要使用到短息业务,因此对短信收发实现进行分析。短信息发送流程为微控制器通过通信接口将数据指令发送到GSM模块内部操作系统中,由操作系统对数据进行解析,然后再将数据发送给基带处理芯片,数据由基带处理芯片出来之后到GSM射频处理芯片然后到功放器件将数据通过模拟信号发出。短信息接收流程为发送流程的逆向流程。首先功放模块先对接收到的模拟信号进行放大处理,然后将放大后的信号传送给GSM射频处理单元,经过射频处理之后将模拟信号转化为数字信号,然后将数字信号发送给基带处理单元,最后发送给内部操作系统。操作系统将信息按照一定的数据格式通过通信接口发送给外部处理器。这样便完成了短信的的收发流程。2.4WIFI模块工作原理分析本次使用的WIFI模块型号为ESP-015WiFi模块,其实物图如图2.6所示。图2.6WIFI模块实物图ESP-015WiFi模块使用串口与外界进行通信,微控制器可以通过串口对WIFI模块进行配置和数据传输。模块支持TCP/IP协议栈和IEEE802.11协议栈,可以实现串口数据到无线网络数据之间的转换。也就是说,外部微控制器可以使用串口设备加入无线网络。该模块有两种工作方式,第一种是工作在主动串口联网设备,也就是说在每次进行数据交互之前,由模块主动进行网络连接,当连接成功后再进行数据交互。第二种为被动串口连网设备,也就是说,在没有数据进行交互时,WIFI模块处于等待状态,由服务器发起数据传输,WIFI模块被动进行数据传输。在本次设计中采用主动串口连网设备,每次向手机发送数据时都需要进行连接,然后再主动发送数据,手机APP接收数据后进行解析,然后将解析后的数据显示出来。3硬件设计分析系统总体硬件图由于过大放到附录中,这里对硬件设计进行分模块介绍。3.1最小系统电路3.1.1单片机电路设计图3.1STM32单片机引脚连接图在对芯片的连接中需要注意一些特殊引脚,比如启动方式配置引脚。这里先对STM32启动方式进行介绍。对于STM32系列单片机来说,启动方式一般分为三种。第一种是从用户闪存中启动,也就是从芯片的内置的flash启动。第二种是从SRAM启动,也即是从芯片内置的RAM区启动。第三种是从系统存储器,在这个储存器中,有一段Bootloader程序,一旦烧录则无法修改。STM32单片机通过配置两个特殊引脚的高低电平来选择以那种方式启动,一般来说程序是从用户闪存中启动,也就是对应BOOT1=X、BOOT0=0,这是正常的启动方式,因此在这里需要将BOOT0拉低。3.1.2晶振电路设计分析图3.2时钟电路原理图根据芯片手册,STM32单片机外接8MHz的无源晶体振荡器,但是芯片工作在72MHz,这是由于芯片内部有一个倍频器,将外部由晶振输入的8MHz进行9倍频,然后输出72MHz供系统使用,因此外部的8M时钟电路的正确性决定了系统能否进行正常的工作。通过查阅资料了解到,一般在晶振两端接入22pf的电容,这两只电容一般也称为晶振的负载电容,因为在晶振的外壳上标注的振荡频率是在外接负载电容时测得的,因此在实际使用的时候,也需要加上负载电容,以保证晶振频率的正确性。3.1.3复位电路设计分析复位对于一个数字电路系统非常重要,因为在电路刚刚上电之后,数字电路的状态并不是稳定的,这个时候需要给电路一个激励,以便进入一个特定的状态。这个激励就是复位电路存在的意义,有了复位电路同时可以在程序跑飞的情况下进行复位。根据查阅的资料得知,一般复位电路是由RC组成的。本次设计复位电路如图3.3所示。图3.3复位电路设计在刚上电时,由于电容两端没有电压,可以看作短路状态,这个时候单片机的复位引脚为低电平,当此低电平维持一定的时间,便可以使单片机完成复位动作。由流经电容的电流I和电容两端的电压变化关系式:I=C∗d可以得到:I∗dt=通过对上式进行积分化简得到:VCC=R一般在电容充电至0.9VCC时完成复位,此时可以得到t=9RC,其中t就是复位所需要的时间。根据芯片手册,单片机复位至少1.5ms,选用R为10KΩ,电容可以选择0.1uf。满足复位要求。3.2电源电路设计分析分析系统设计供电情况,有些外设需要5V供电,有一些需要3.3V供电,因此采用5V电源输入,对于单片机等需要的3.3V则经过一个LDO线性稳压器稳压得到。电路原理图如图3.4所示:图3.4电源电路原理图直流电源输入选用DC输入端子,在开关之后加入LED进行上电提示。然后对输入进来的5V直流电源进行电容滤波处理。经过滤波处理之后,将电源输入到LDO线性稳压器中,这里选用的是LM1117,输出3.3V电源供给单片机使用。在输入端也增加滤波电容,提高电源电路的稳定性。元件的参数选取方面选用常用的10uf与10nf电容。3.3实时时钟电路设计分析分析设计的使用场景是在病房中,病人可能需要看时间但是又不是很方便去翻找手机,于是考虑增加时钟电路,将实时时间显示在液晶上。图3.5为本次设计实时时钟电路的原理图。图3.5实时时钟电路原理图在电路设计方面,依据芯片手册,在2引脚和3引脚两端加入32.768KHzd的晶振为时钟芯片提供稳定时钟。同时需要对时钟、数据、复位引脚进行上拉处理。考虑到可能需要对设备进行关机,因此为实时时钟电路加入备用电源,也就是8引脚连接的纽扣电池。这里实时时钟所有的用来都从纽扣电池获取。4软件设计分析本次设计软件设计部分主要分为5个小节,前3个小节是对本次设计中的主要协议代码实现进行分析,第四小节是下位机工作流程代码分析,第五小节是手机APP端工作流程代码分析。4.1液晶时序在本设计中所采用的液晶是0.96寸OLED液晶,它采用SSD1306芯片进行驱动,我们使用液晶的过程就是和SSD1306芯片通信的过程,因此,了解并掌握SSD1306芯片的通信协议非常重要。SSD1306驱动芯片采用IIC通信协议,这里对该通信协议进行简单的介绍。IIC协议采用两根信号线完成主机和从机的通信。一根信号叫SCL信号,另一根叫SDA信号。其中SCL信号为时钟信号,SDA为数据信号。根据芯片手册上的介绍,高速IIC通信速率可以达到400kbs以上。具体的通信协议见图4.1:图4.1IIC协议时序图从时序图中可以看出,当要和SSD1306驱动芯片进行通信时,首先要发送起始信号,也就是在SCL为高电平的时候,拉高SDA信号,同时保证SDA高电平持续时间大于4.7us。根据这个要求,编写如下代码:图4.2IIC协议起始信号代码图下面对代码进行分析,首先将SCLK置为1,然后将SDIN置1,这里没有明显的延时等待,这是由于单片机的指令执行速度已经大于4.7us了,不需要编写额外的延迟时间,因此在执行将SDIN置1的指令之后,直接将SDIN置0,然后根据协议要求,将SCLK拉低。通过实际检验,两条指令执行的时间间隔确实满足IIC时序要求。其他的例如终止信号,检测应答和非应答原理与起始信号类似,在这里不再赘述。4.2SR-04超声波模块驱动在本设计中,根据设计要求,超声波模块用来检测外来人员的距离,如果距离小于设定值,则会发出警报,因此需要对如何正确的驱动超声波模块进行测距是完成这一功能的重要因素。下面对超声波模块测距的原理和对应的代码编写思路进行说明。超声波模块包含两个部分,一个是超声波发射端,一个是超声波接收端,测距的过程是通过单片机控制发出一个持续时间超过10us的高电平,驱动超声波发射端发出固定频率的超声波,然后将刚才的高电平拉低,同时,Echo信号由低电平变为高电平,当发射出的超声波遇到物体时,会反射回来,这个时候,当接收端接收到反射回来的超声波,Echo信号又会被拉低成为低电平。按照上述流程,可以看出,物体与超声波模块的距离的来回时间,就是超声波模块Echo信号高电平的持续时间,也就是声音在空气中传播的时间,然后再根据声音的速度与距离的关系,可以算出这一个来回的距离,然后将算出的距离除以2,便得到超声波模块与待测物理的距离。具体信号编号见下图:图4.3超声波模块测距过程信号变化根据图4.3所示,只需要使用单片机发出一个大于10us的高电平信号即可驱动超声波发出测距声波。因此编写如下图所示的驱动代码。图4.4超声波模块测距驱动代码有了驱动,如果要实现对距离的测量,还需要对Echo信号拉高的时间进行测量,在本次设计中,采用定时器来对该时间进行测量,通过定时器的读数的大小来反映时间的长短。具体驱动和计算过程见图4.5。图4.5超声波模块计算代码在本次设计中,对于Echo信号高电平的持续时间测量使用定时器来实现,当运行图超声波模块测距驱动代码后,便等待Echo信号变为高电平,然后使能定时器进行定时,然后等待Echo信号变为低电平,便关闭定时器。通过定时器的计数值,乘以计数周期然后在带入响应的公式便可得到距离。本次设计中对公式进行了化简,得到了计数值与距离的关系。经过实际检验,关系也是正确的。4.3RFID射频读卡模块驱动根据设计题目要求,需要能够对医生和病人的信息进行录入。为了实现这一目标,采用RFID射频读卡模块来进行信息的记录。用两张射频卡来模拟病人和医生,通过两张卡的序列号来进行区分。根据MFRC522手册可以知道,其可以支持多种通信协议与控制器进行通信,本次设计选用SPI通信协议。手册中对SPI通信协议的时序描述如下:图4.6RC522SPI通信协议时序图同时,手册中对与SPI通信中的时间参数进行了规定:SCK低电平的持续时间需要最小为50ns,同时SPI高电平的持续时间最小需要50ns,时钟的上升沿到数据的变化时间最小需要25ns,数据的变化到时钟的上升沿最小需要25ns,时钟的下降沿到数据稳定最大限制为25ns,结合以上时序要求,编写如图4.7所示代码:图4.7RC522SPI驱动发送代码可以看出,依据手册描述,每次最先发送数据最高位MSB,因此这里将要发送的数据与0x80,取其最高位,然后延时200us,将时钟拉低,然后再次延时200us,将时钟拉高,然后再次延时200us,将数据左移一位,删除掉已经发送的最高位。这样往复循环8次,一个8位的数据就通过SPI协议发送给RC522模块了。4.4单总线数据读取流程DHT11模块的数据读取需要按照特定的流程进行读取,通过查阅相关手册可以知道,单总线数据读取流程图如图4.8所示。图4.8单总线数据读取流程图从流程图中可以看出,在上电后需要先对传感器进行上电初始化,然后主机发送读取设备信息起始信号,然后主机释放数据总线,等待传感器模块的响应信号,然后获取到传感器模块的响应信号,则主机开始接收从机发过来的40位温湿度数据,然后计算校验位是否正确,如果正确则更新系统中的温湿度值,如果错误,则继续等待下一次采集。跟新完系统中的温湿度值后,便等待下一次数据传输。至此,便完成一次完整的温湿度数据的传输。具体代码见图4.9。图4.9温湿度传感器通信代码对代码进行分析可以知道,代码按照时序要求和读取数据流程要求完成。4.5下位机工作流程代码分析本小节介绍下位机端工作流程代码,主要完成环境温湿度检测,距离检测,热红外检测,通过WiFi模块与上位机通信和通过GSM模块发送报警信息到指定号码。其工作的流程图如图4.10所示。图4.10工作的流程图对于下位机端,分为三种种工作模式,一种是自动模式,一种是监护模式,一种是手动模式。自动模式下,下位机通过与传感器进行通信,获取环境参数。通过与DHT11传感器通信,获取环境温湿度,然后通过wifi模块将温湿度信息发送给手机端APP。通过与DS1302进行通信,获取实时时间,通过驱动SR-04超声波测距模块,获取距离参数,通过AD检测热红外模块来检测是否有人活动。当温湿度超过阈值,便通过wifi模块向手机APP发送报警信息。在监护模式下,除了实时更新环境温湿度,上报温湿度报警信息之外,当通过超声波传感器和人体红外传感器检测到有人进入,便通过GSM向固定手机号发送警报信息。在手动模式下,按下按键,进入病人或者医护人员信息模式,默认输入的信息具有掉电存储功能。4.6手机APP软件代码设计本次设计的APP软件部分,可以分为两大部分,首先是Android手机APP设计代码和下位机设计代码。下面分别对代码实现逻辑和细节进行说明。首先是手机APP部分,图4.11是APP部分的程序流程图。图4.11APP部分的程序流程图下面对流程图进行解释,程序的开始部分,定义相对应的变量,并对变量的初始值赋值为空或则false,以便用来存储相对应的值。具体代码实现如下:图4.12开始部分根据设计要求,需要对温湿度和报警状态进行显示,因此定义相对应的变量,并对变量的初始值赋值为空或则false,以便用来存储相对应的值,可以通过代码与图形界面中的元素进行连接,之后就可以将变量中保存的值显示到手机APP图形界面。图形界面如图4.13所示:图4.13手机端APP图形界面其中第一栏是输入IP地址,用于设定需要连接的WiFi的IP地址,第二栏是端口,和第一栏的IP地址配合使用,当设置完毕之后,点击连接按钮,即可进行连接。在APP端会首先开辟一个socket控件,用于进行socket连接。通过此socket可以实现与WiFi模块进行socket连接,从而实现数据传输。连接成功之后,当下位机发送温湿度数据后,APP端对数据进行解析,如果要将接收到的温湿度数据显示到前端页面的对应栏中。还需要将后端变量与前端页面元素进行连接。进行连接的代码如图4.14所示。图4.14连接代码连接的意义在于,将后端的变量值显示到前端的图形界面上。链接之后,当接收到数据后,需要进行数据处理,对应的核心代码如图4.15所示。图4.15数据处理核心代码根据流程图所示,当连接成功之后,接收到消息时,通过对消息类型的判断来做响应的操作。本设计中将消息类型分为3种。第一种为TCP断开连接,也就是说当APP与下位机的WiFi模块的连接意外中断时,消息类型为1,这是,APP会更新“连接”按钮,然后弹出提示信息,表明此时已经和WiFi模块连接断开,提示用户进行下一步操作。第二种为TCP连接成功,也就是说已经和下位机的WiFi模块建立正常的通信,同时弹出提示消息,让用户知道现在已经和下位机端连接成功。第三种为从下位机端接收到数据。此时首先对数据帧进行判断,根据自己制定的数据传输协议,数据帧的起始符号为“T”时,表明此数据帧有效。当判断为有效数据帧时,便按照协议进行数据解析,也就是数据帧的第1到第3位传输的是温度数据,数据帧的第3到第5位传输的是湿度数据,第6到第7位传输的是LED灯的状态。当获取到温湿度数据之后,通过setText函数将变量值显示到手机应用页面前端进行显示。然后判断LED灯的状态,根据灯的不同状态,更新APP端的灯图形的颜色来提示用户。除了对温湿度信息进行显示外,使用此APP同时还可以对温湿度上限进行设定,当温湿度超过此上限后,即可进行报警。设定上限时,将要输入的温湿度上限值填到对应的栏后,点击“发送温湿度阈值”按钮,即可将设定值发送给下位机。灵活控制其温湿度报警阈值。发送数据核心代码如图4.16所示。图4.16发生数据核心代码根据制定的协议,APP端发送的数据帧起始位置符号应为“Z”,因此,设定发送数据缓冲区的第0位为“Z”,以便能够使下位机正常接收,然后分别将LED灯的状态和要设定的温湿度信息写入到发送缓冲区中,其中从APP图形界面获取设定值是通过getText函数。当写入输出数据流后,socket自动进行数据发送。然后提示发数据发送成功,以提高用户的使用体验。5调试部分5.1液晶显示电路调试根据前面章节所述,液晶采用IIC通信协议,部分核心驱动代码也在前面章节有介绍,这里不再赘述。给系统上电,然后使用示波器对SCK、SDA引脚上的波形进行抓取,抓取结果如图5.1所示:图5.1系统显示结果和液晶通信引脚波形图通过对5.1波形图进行分析,可以看出,其通信时序满足IIC所要求的时序。通过液晶显示结果也可以验证显示的正确性。经过时序分析和显示结果可以表明,在软件方面对于液晶的驱动逻辑是正确的,同时也验证的硬件电路设计的正确性。5.2DHT11温湿度模块的调试DHT11使用一根线和主控单元进行通信,因此只需要用示波器测其数据线即可。测得波形如图5.2所示:图5.2DHT11数据传输波形从图5.2中可以看出,通信所需要的起始信号以及握手信号都检测到了。通过代码对读取到的DHT11测得的温湿度数据进行显示,显示结果也是正确的,因此软件方面和硬件电路设计部分,关于DHT11模块的驱动是正确的。5.3超声波模块的调试关于超声波模块的测距原理,在前面章节已经叙述过,这里不再赘述。对于主控单元来说,如果要驱动超声波模块,只需要将一个引脚拉高10us即可,然后等待ECHO引脚为高电平,然后开始计数。这里对不同的距离进行测试,同时抓取驱动引脚和ECHO输出引脚,观察不同距离时,两者信号的差别,用示波器测试波形如图5.3所示:图5.3不同距离超声波模块的输出信号区别通过对测试结果进行观察,可以看出,当测试距离较短时,ECHO引脚输出高电平时间大约为500ps,随着测试距离的增大,ECHO引脚输出的高电平时间明显增大。因此可以得出结论,在硬件设计上对于超声波模块是正确的。同时对计算得到的距离和真是距离进行比较,结果存在一定的误差,但是可有接收,因此对于超声波模块的硬件和软件可以去顶是能够正常工作的。5.4RC522模块调试RC522模块通过SPI通信协议和单片机进行通信,因此为了确保通信正确,需要测试在通信过程中的数据信号是否正常反转以及翻转电平是否正常,需要对通信时钟信号线和数据信号线进行测量。测量信号波形如图5.4所示。图5.4RC522通信时序波形从图中可以看出,时钟信号翻转正常,数据信号翻转正常,通过与软件配合进行射频卡识别测试,识别结果如图5.5所示。图5.5识别结果从图5.5识别结果可以看出,读取到的射频卡的ID为73EFBB16,表明读取ID卡片成功,驱动能够正常使用。5.5GSM模块的调试因为本次使用GSM模块进行短信测试,因此需要先使用串口对模块的短信业务进行调试分析。使用串口进行相关命令调试结果如下图所示,首先发送AT+CSQ命令,GSM模块返回OK信息,表示测试通信成功。测试结果如图3GSM模块短信指令测试结果所示。然后接着进行模式的设置,设置完成之后使用短信读取指令进行读取,因为在短信中的中文字符都是通过编码映射,因此在串口助手上看到的为乱码。但是能够读取到数据就说明短信功能工作正常。5.6WIFI模块的调试本项测试完成对WIFI模块能否发出热点和能否进行正常连接进行测试。通过在程序中对WIFI模块的用户名和密码进行设置,配置为热点模式,这样在上电后WIFI模块便会自动向外部发出热点信号,本次测试时将WIFI模块名配置为“wifi”然后使用手机的WIFI连接功能进行连接,输入正确的密码后,连接情况如图4手机连接WIFI模块结果图所示。通过连接结果可以看出,WIFI模块工作正常,符合设计预期结果。5.7手机APP与下位机通信测试此项测试是为了确保下位机能够正常与手机APP进行正常通信,测试步骤为首先手机开启WIFI功能,将下位机的WIFI模块配置为热点模式,通过手机WIFI链接下位机热点。然后开启APP,进行局域网连接。当下位机获得环境参数之后,便通过WIFI模块将数据按照一定的帧格式发送给手机APP,当APP接收到数据之后,按照约定好的协议对数据进行还原,然后将数据显示出来。下图为发送的数据。手机APP接收到数据后,将数据显示到屏幕上,显示结果如图5.9所示。可以看出,手机APP通过WIFI能够和下位机进行正常通信,可以按照约定的协议对下位机发送的数据进行解析。6结论通过对不同模块的测试可以知道,各个模块在本次设计系统中能够正常工作,表明相关硬件电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论