王 倩, 徐 伦, 张 杰, 占晨龙
(三江学院a.电子信息工程学院;b.机械与电气工程学院,南京 210012)
随着社会的快速发展,自身健康问题得到重视。“早发现、早预防、早治疗”这句口头禅把“发现”放在第一位,也足以说明监测自身健康的重要性。
体温是人体4大基本生命特征之一。近年来,由于新冠疫情的传播和禽流感的爆发,发热是大部分传染性疾病的早期症状,对发热患者的精准测量成为公共卫生领域的一项非常重要的工作,而简单、快速、准确地监测体温尤为重要[1]。
测量体温有两种方式,接触式和非接触式。水银体温计是常用的接触式产品。红外辐射测温技术是由于物体自身温度以电磁波形式向外发射能量的物理现象[2-3]。这类产品与接触式相比较,红外测温有着天然的优势,响应快、便捷、不与被测人员接触,不存在交叉感染的风险。新冠病毒传播能力极强,各年龄段人群普遍易感[4-5],目前世界上还存在着各种变异,极难防范。人体感染新型冠状病毒的临床表现以发热、乏力、干咳为主要表现。病程中发热患者占90%以上[6]。如今,非接触式红外测温技术已经十分成熟,被广泛应用在航空航天、冶金、电力工业、质量检测等领域[7]。
现在是信息化时代,互联网Web技术发展迅猛,Web技术也被运用在各行各业[8]。Web系统采用的是B/S模式结构,操作、维护简单,实现与前端网页的数据通信[9],不需要大量的人力物力资源[10]。大部分资源存在服务器端,客户端只需要安装浏览器即可访问平台。平台界面简单明了,管理员上手简单,能很好地适应广大人员的使用。基于Web的健康信息管理平台将软硬件结合,以便被测人员基本信息的统计和体温测量,实验专门的健康信息平台。
国外,非接触式体温计方面起步比较早,而且对非接触式体温计的研究发展非常重视,已经取得了比较明显的成果。
我国防控新冠疫情的方针为“外防输入,内防反弹”[11],为避免交叉感染,各地在火车站、机场、客运站等交通枢纽,以及医院、商超等人员密集地纷纷采用非接触式无感测温方式,实行人员体温检测,快速筛查疑似患者,同时实现人员快速高效通行,避免人群聚集,降低交叉感染风险,对防控新型冠状病毒感染具有重要意义。
国内非接触式红外体温检测技术在2003年“非典”疫情出现后得到迅速发展,短时间内共研制出红外体温检测仪。之后此类产品及技术更得到提升和普及。近几年比较好的产品有iHealth非接触式红外体温计,测量准确度达±0.2℃。
无论是国内还是国外,非接触式测温产品大都没有联系到信息管理,有相应功能的产品也只是昙花一现。红外热成像通常只会在政府机构在防控疫情的时候会用到,但也只是初步筛选,并不会重复记录和存储。设计一款健康信息平台,为防控疫情出一份力。
健康信息平台主要是围绕着微处理器和服务器2部分进行。①微处理器通过控制二维码扫描模块采集身份数据,采集成功后通过按键控制非接触式红外测温模块开始采集数据,当模块采集完数据并发送后,微处理器接收并将采集的数据转换为身份信息和体温信息,通过WiFi模块发送HTTP请求到本机服务器中。②服务器拦截到相关请求,把数据存储到数据库。打开浏览器健康信息平台页面并登录,服务器会验证权限,有管理员权限才能查看体温信息,非管理员只能看到本人信息。在查看人员相关信息期间,健康信息平台的运行状态会由LED指示灯模块显示出来。若发现有疑似发热人员,在页面会有相应的提醒;若体温为未知状态或过时状态,也会有相应的提醒。平台的设计原理如图1所示。
健康信息平台是以STM32F103单片机和Web为基础设计的,整体模块包括非接触式红外测温、WiFi、二维码扫描、LED指示灯、数据库、服务器后端和网页前端等模块。平台的组成结构如图2所示。
STM32F103作为单片机主控芯片MCU,采集二维码和测温数据,实现体温的无接触、快速且高准确度的测量,利用无线串口将测温数据发送至PC端进行显示[12],单片机对数据进行处理,并通过WiFi发送到后端服务器,整个单片机系统的状态分析显现在LED指示灯模块上。终端根据服务器编辑的代码对数据库进行操作,实现数据库到前端页面的交互,可让前端网页显示单片机发送的数据。
硬件包括STM32F103C8T6单片机最小系统、非接触式红外测温、二维码扫描、WiFi和LED指示灯等模块。STM32单片机主要作为整个平台的控制中心,收集各个模块的信息,对数据进行处理并反馈出符合设计逻辑的判断,硬件电路在很大程度上保证了整个硬件系统的稳定运行。
(1)STM32F103C8T6单片机设计。由主控芯片、稳压、时钟、复位、SWD下载等电路组成单片机最小系统。
稳压电路:稳压电路输出的电压是保证最小系统正常运行的基础。时钟电路:时钟电路是电容3点式振荡电路再加上晶振的电路。复位电路:复位电路是把电路恢复到起始状态的电路。
(2)非接触式红外测温模块。此模块采用自带MCU将MLX90614支持的IIC通信协议转换为UART协议。模块原理如图3所示。
模块VCC端可连接3~5 V的稳定电压,GND端要与单片机共地。当有正常供电MLX90614就自己开始发射红外线采样,采样完通过SCL/SDA以IIC协议的方式发送采样数据帧给MCU(STC8G1K17),以UART协议的方式输出采样数据帧。RC端连接单片机的UART_Tx,TD端连接单片机的UART_Rx,单片机就可用UART串口的方式与MLX90614通信了。模块内部简图如图4所示。
此模块采用DIP-8封装。使用时模块RX端连接单片机的UART_Tx端,TX端连接单片机的UART_Rx端,EN使能端和RST复位端默认高电平。若需要重新上电(重启),拉低EN然后再拉高即可;若需要回到初始状态,拉低RST然后再拉高即可。
本平台选择了STM32CubeIDE作为开发硬件的软件环境。STM32CubeIDE是一个先进的集成开发环境,集成了编译、下载、标准、高级调试等必备功能,还包括CPU核心寄存、内存和外围寄存的视图以及变量监视、串行线查看接口或故障分析。此外,STM32CubeIDE基于eclipse开源的软件,可供提供上百款插件满足用户各样需求。
在纯软件部分,有网页端和Web服务器后端,需要编写HTML语言和Java语言。
为降低健康信息平台程序编写的难度,采用模块化编程的方式分别完成平台的初始化、数据采集、单片机数据处理、WiFi发送请求、Web服务器拦截、数据库存储、网页响应的编写。平台主流程框图如图5所示。
程序的流程在通电后进行初始化,包括时钟、UART、中断、指示灯I/O口、服务器以及数据库等的初始化,进入主程序,并在主程序进行循环等待。
平台初始化后,进入数据采集阶段。数据采集分为身份采集和体温采集2部分。身份采集采用的是二维码模块扫描被测人员id生成的二维码,达到识别当前体温被测人员的身份。扫描出来的id被暂存在单片机的数组变量里,等体温数据采集完毕,把id和体温封装成一组数据,等待单片机的下一步指示。数据采集流程框图如图6所示。
二维码采集结束以后,体温采集由按键控制开始,系统进入等待,为时5 s,若超时,LED指示会有提醒,系统退出整个采集过程,重新从二维码采集开始。体温采集中,非接触式红外测温模块每采集一次都会发送一段数据帧。数据帧具体参数见表1。其中,数据结果的56 bit数据见表2。
表1 GY614V3模块数据帧说明
表2 数据结果帧说明
根据模块说明书,可以清晰得到各结果的数值。TO为目标温度、TA为环境温度、BO为额温。
发射率
式中,LOW为数据帧结果中的低8位。
目标温度
式中,HIGH为数据帧结果中的高8位。
环境温度
额头温度转换体温
采集完数据,把数据发送到Web服务器。采用的是WiFi模块(ESP-01S)连接Web服务器发送HTTP请求的方式实现,实现网络-串口的指令转发[13]。WiFi模块流程框图如图7所示。
ESP-01S支持多种通信协议,选用UART作为单片机与WiFi模块之间的“桥梁”,通信率默认为115.2 Kbit/s。此模块主要是通过AP指令控制的。
此平台的前端网页主要由HTML语言和AdminLTE-3.0.5搭建,设计了用户注册、登录页面和被测人员列表页面。AdminLTE3是一款开源的模板主题工具,它提供了可重复使用的组件,内置多个模板页面,同时自适应多种屏幕分辨率,兼容PC和移动端。通过AdminLTE,可快速创建一个响应式的Html5网站。AdminLTE-3.0.5一个模板效果如图8所示。
后端服务器程序的目的在于接收前端发送的各种请求,拦截不同的请求进入不同的方法,实现不同的功能。本平台采用了Java作为开发服务器的高级语言,主要应用的相关技术有Spring Boot和Shiro。Spring Boot继承自Spring体系,是大量开发框架的整合,它内嵌了Tomcat服务器,支持jar/war项目打包方式,可实现项目快速部署[14]。Apache Shiro是一款用于系统认证、角色授权、系统加密和会话管理的Java安全框架,提供了一整套系统安全解决方案[15]。
后端服务器需要面对2个场景,一是拦截WiFi模块发送的HTTP请求,实现暂存体温的功能;二是给用户添加权限,当用户进入健康信息平台页面时,进行身份权限验证,拥有管理员权限的用户才能转到被测人员列表页面,查看或操作被测人员的信息。
数据库采用关系型数据库与非关系型数据库2种。关系型数据库用MySQL,以表格的形式存储数据。非关系型数据库用Redis,用作存储被测人员信息和体温。在Java代码中设置缓存时间,若缓存超的,Redis会自动把数据删除。Redis以键值对的形式存储数据。
在完成各模块的设计后,进行平台总体测试,首先测试健康信息平台是否能正常使用。把硬件部分,即单片机和各模块通电,在IntelliJ IDEA打开服务器和数据库,等整个软、硬件系统初始化完成,LED指示灯状态为绿灯亮,平台运行正常,等待扫码和测温。具体步骤如下:
步骤1被测人员注册到被测人员健康信息平台,保存生成二维码图片,进入测温区。
步骤2被测人员打开手机信息二维码至扫码处扫码,当二维码扫描模块蜂鸣器响时,即扫码成功。
步骤3管理员把测温模块伸到被测人员额头前2~5 cm,按下测温按键,等到LED指示灯绿灯闪动,测温成功。
步骤4管理员打开任意设备浏览器,登录被测人员健康信息平台网页,查看被测人员列表和被测人员的基本信息和体温。
步骤5管理员筛选疑似发热的被测人员,进行相应操作管理。
新冠疫情的肆虐,严重影响了人们的正常生活。坚守防疫底线,检测好每个人的体温,从自觉做起,有必要针对问题对技术进行优化,加大投入力度,将基于Web的健康信息平台与先进技术相结合,使其发挥出重要的作用。
平台通过非接触式测温模块采集数据,通过WiFi模块将单片机读取的数据传输到后端数据库中,通过前端网页与用户进行交互,实现非接触式测量体温以及被测人员的信息管理。