APP下载

基于单片机的医院分检与叫号系统设计*

2020-02-11李秋怡孔梓鑫黄东升陈桂隆

福建轻纺 2020年1期
关键词:温度传感器按键排队

李秋怡,孔梓鑫,黄东升,陈桂隆

(厦门理工学院 电气工程与自动化学院,福建 厦门 361024)

医院是一个为大众提供医疗服务的行业,不仅要满足社会大众的就诊医疗要求,更要注重医院的就诊环境,提升医院的影响力[1]。长期以来,医院的就诊患者不断增加[2],就诊量增大,导致各种业务出现长时间排队的问题,这困扰着医患双方[3]。若不加以管理会使就诊秩序混乱,容易导致“走关系”看病、随意插队等恶劣现象发生;另外,若排队无序,医患之间极易出现“围医”现象,造成医患关系紧张,不但使患者容易产生急躁心情,也严重影响了医生接诊的环境,降低了医生的工作效率。为解决这些问题,本文设计了一个医院分检与叫号系统。

本系统采用STM32单片机为控制核心,通过心率脉搏传感器和温度传感器进行患者心率和温度的采集,并显示在LCD液晶屏上,再通过设置温度和心率范围进行不同窗口的区分,从而达到分检的效果,然后利用按键取号,患者可清楚知道自己的就诊号数以及前方等待人数。此外,该系统实现清除LCD屏显示的等待信息、窗口切换、查看剩余人数,通过语音模块和扬声器进行语音播报等功能。这样一个系统,使患者可通过叫号系统排队就诊,完成患者排队、导医、分诊工作[4],避免了诊室内病人聚集的现象,且患者分检排队后可在等候区自由活动,减少了患者候诊时的焦虑情绪[5],极为有效地解决医院排队冗长、插队、“围医”等问题,创造了良好的就医环境。

1 系统总体设计

本系统以STM32F103C8T6单片机为核心控制模块,采用MAX30102心率脉搏模块检测患者实时心率,DS18B20温度传感器检测患者实时温度,根据设置的心率和温度范围安排就诊患者到不同队列进行排队。

显示模块使用LCD12864液晶显示器,按键模块由5个独立按键组成,其对应的功能分别是:按键1,第一块LCD液晶屏显示患者的就诊号数以及前方等待人数;按键2,LCD液晶屏清除按键1显示的信息;按键3,语音模块通过扬声器进行播报患者的就诊信息,通知患者去几号窗口就诊;按键4,第二块LCD液晶屏可以显示当前窗口剩余的就诊人数;按键5,第二块LCD液晶屏可以切换查看不同窗口剩余的就诊人数。

该系统总体结构图如图1所示。

2 硬件设计

2.1 硬件选型与参数

STM32F103C8T6单片机:具有高性能的CPU,数据处理和运算能力强,工作频率高,内存较大,可以扩展,并且具有3种低功耗模式,2种调试模式,3个12位的AD转换器,I/O端口高达112个,且定时器和通信接口较多,内嵌有复位电路,性能较强。

MAX30102心率脉搏传感器:采用一个1.8V电源和一个独立的5V用于内部LED电源可测量心率,工作温度在-40 ~ +85 ℃。

DS18B20数字温度传感器:可采集-55 ~ +125 ℃的温度,精度在-10~ +85℃范围内精度为±0.5 ℃。该传感器的工作电压在3.0~5.5 V之间,电压范围比较容易达到,较为方便。

LCD12864液晶显示模块:自带有中国汉字字库,点阵汉字很多,分辨率为128×64,可在3.0~5.5 V的低电压范围工作,低功耗,并且内置有DC-DC转换电路,工作温度在0 ℃至55 ℃。

JQ8900-16P语音模块:支持多种控制模式、一线串口模式、按键模式,最佳输入电压为4.2 V,工作电流为100 mA,工作温度为-40 ~ +85 ℃。

2.2 硬件电路连接

2.2.1 MAX30102心率脉搏传感器

MAX30102心率脉搏传感器的结构图和引脚图如图2、图3所示,其VIN接LED电源输入端,一般接3.3 V或者5 V;SCL接时钟线,SDA接数据线;INT是中断引脚;RD和IRD分别指红光LED接地端和红外光LED接地端,一般不用接;GND接地。在该系统中,SCL接单片机的PB7引脚;SDA接PB8引脚;INT接到单片机的PB9引脚。

2.2.2 DS18B20温度传感器

该温度传感器的电路图如图4所示,其有3个引脚,VCC即电源输入端;DQ指的是数据的输入和输出引脚;GND接地即可。在该医院分检与叫号系统中,DQ接到STM32单片机的PA8引脚。

2.2.3 按键模块

按键模块由5个独立按键组成,其原理图见图5,该温度传感器的电路图如图4所示,其按键1接单片机的PA3引脚;按键2接单片机的PA4引脚;按键3接单片机的PA5引脚;按键4接单片机的PA6引脚;按键5接单片机的PA7引脚。

2.2.4 LCD12864液晶显示器

液晶显示模块共有20个引脚,详见图6。第1个引脚VSS接地电源;第2个引脚VDD接电源端;第3个引脚VO,即LCD驱动电压的输入端;第4个引脚为RS,为片选信号,可选择执行指令或者执行数据;第6个引脚为E,为使能信号,控制信号的输入和输出;第7到第14引脚为数据引脚;第15引脚为PSB,即并/串口接线的选择;第16和18引脚为NC,即空脚;第17引脚为RST,表示复位引脚;第19引脚为LEDA,即光源的正极,接电源正极;第20引脚为LEDK,即光源的负极,接地即可。

2.2.5 JQ8900-16P语音模块

语音模块有16个引脚,详见图7。第1个引脚为VPP,即一线串口;第2个引脚为BUSY,指播放指示灯;第3个引脚为RX,为串行数据的输入口,接STM32单片机的PB11引脚;第4个引脚为TX,为串行数据的输出口,接STM32单片机的PB10引脚;第5个引脚为GND,接地即可;第6个引脚为DC-5V,为模块电源输入,一般用5V;第7个引脚为SPK-,指喇叭的声音调低;第8个引脚为SPK+,指喇叭的声音升高;第9到第15引脚,指触发输入口,一般对地触发;最后一个引脚为DAC,即音频输出。

2.2.6 整体硬件实现

在本设计中,采用了STM32F103C8T6单片机,2个LCD12864液晶显示器,DS18B20温度模块,MAX30102心率模块,JQ8900-16P语音模块和按键模块。STM32单片机的第1、第24、第36、第48以及第9引脚为电源引脚,接VCC;第23、第35、第47以及第8引脚接地;其他引脚根据需要用于与其他模块连接,整体硬件连接图具体如图8所示。

3 软件设计

该系统的软件设计包含主程序、I2C子程序、温度传感器子程序、心率脉搏传感器子程序和LCD液晶显示模块子程序5个部分。

3.1 主程序设计

主程序设计流程图如图9所示。当读出心率和温度数值后,根据心率和温度范围,将排队取号分成了5个队列。

当温度处于20.0~37.5 ℃,且心率在60~100范围内,LCD将显示“正常”,患者去到窗口1排队取号;

当温度处于37.5~38.0 ℃,且心率在50~60范围内,LCD将显示“第四等级”,患者去到窗口2排队取号;

当温度处于38.0~39.0 ℃,且心率在40~50范围内,LCD将显示“第三等级”,患者去到窗口3排队取号;

当温度处于39.0~41.0 ℃,且心率小于等于40时,LCD将显示“第二等级”,患者去到窗口4排队取号;

当温度大于41 ℃,且心率大于160时,LCD将显示“第一等级”,患者去到窗口5排队取号。

3.2 I2C子程序设计

I2C子程序流程图如图10所示。在通信的过程中,对I2C进行初始化后,再编写三个信号,先编写开始信号,再写结束信号,最后判断应答信号。执行语句后,进而发送字节和读取数据。

3.3 温度传感器子程序设计

温度传感器子程序流程图如图11所示。在温度读取程序编写中,先将传感器初始化,而后延时750 μs,产生复位脉冲,再延时15μs,使传感器进入到接收状态。接着按照温度传感器的读时序和写时序规则进行编写程序,实现对温度的读数,还需要跳过ROM指令、发送进行温度转换指令、发送读取温度数值指令三条指令,根据传感器的编写顺序即可顺利完成温度读数的功能。

3.4 心率脉搏传感器子程序设计

心率脉搏传感器子程序流程图如图12所示。先将传感器初始化,再编写I2C通信的启动指令,对MAX30102写入数据,即控制指令,发送有效应答位;然后对传感器进行读操作的编写。由于MAX30102传感器还具有FIFO缓冲器,因此需要再按同样的步骤去控制FIFO,从而读出数据。

3.5 液晶显示模块子程序设计

液晶显示器子程序设计流程图如图13所示。在该系统中,首先对LCD写指令,设置RS=0,RW=0,发送0xf8指令,启动一个周期,数据要分两次传送;再是写数据,设置RS=1,RW=0,发送0xfa指令,启动一个周期;接着对显示器进行初始化设置。由于液晶模块是通过X,Y进行对行和列的定位,因此需要设置固定的位置来显示内容,当设置完成后,LCD液晶屏会显示所需要的输出内容。

4 系统功能展示

4.1 系统实物图

根据原理图进行焊接,经测试无误后得到实物图如图14所示。

4.2 系统功能展示

把系统初始化后界面如图15所示,开始对患者进行温度和心率的采集,测得温度为28℃,心率为98。系统根据测得结果进行分检,符合“正常”等级,因此LCD显示窗口1,最后两行表示目前的就诊号数和前方等待人数,如图16所示。

分检后,若要查看窗口剩余人数,则按下按键4,左边LCD屏幕可显示当前窗口1的排队人数为3名,如图17所示。

若要进行窗口切换,查询每个窗口剩余人数,则按下按键5,转至窗口1可查询到目前的剩余人数,或者根据情况切换到其他窗口,如图18所示。

若要播报就诊情况,则按下按键3,通过语音模块与扬声器相配合,扬声器将之前语音模块中录入的信息进行播报,其实物图如图19所示。

若无需再查看就诊信息,可按下按键2,清除LCD屏幕最后两行,就只显示就诊窗口、温度和心率数值,如图20所示。

以上是医院分检与叫号系统的功能展示,可有效解决医院环境嘈杂、秩序混乱等问题,充分表明了该系统的实用性和可行性。

5 结语

本文设计的医院分检与叫号系统通过温度传感器和心率脉搏传感器测量人们体温以及心率,实现分检与叫号的功能,有效解决了就诊环境嘈杂、就诊患者排队秩序混乱等问题,营造了一个公平、公开、公正的就诊环境。该系统不仅提高了医生的工作效率,降低了工作强度,而且也保障了患者的隐私,缩短了患者就诊的时间,具有实际意义和应用前景。

猜你喜欢

温度传感器按键排队
基于HSIC的日光温室温度传感器优化配置策略
微机电系统温度传感器研究进展及产业现状综述
怎样排队
基于有限状态机的按键检测程序设计
非触勿动 秒治键盘误触
巧排队列
三角龙排队
浅谈温度传感器原理及其应用
其实真的很简单教你轻松关闭WP8.1手机按键灯
计算器