核酸检测排队预警系统设计
2023-03-14杜永星杨延宁雷文礼冯树栋董晨乐
杜永星,杨延宁,2,雷文礼,2,冯树栋,董晨乐
(1.延安大学 物理与电子信息学院,陕西 延安 716000;2.南昌理工学院,江西 南昌 330044)
0 引 言
近3年来,新冠疫情病毒席卷全球,在2020年3月底,美国政府曾援引数据模型预测,美国将有10万~24万人死于新冠肺炎疫情。截至当地时间2022年5月4日,美国累计新冠肺炎确诊病例超过8 000万例,死亡病例[1-2]超过100万例。为了更好地阻止疫情的蔓延,核酸检测成为必不可少的环节。在核酸检测排队过程中,除了做好自身防护措施外,如果没有保持适当的间距,就非常容易造成群体性的相互感染。
2021年8月,江苏南京和扬州两个地方接连因核酸检测引发感染事故,一名2岁儿童随家人做核酸时,因排队期间与确诊病例近距离交谈后被感染。
另外,7月29日,江苏省扬州市广陵区某村核酸检测点设置不规范、现场组织混乱,导致在该检测点与王某(被确诊为新冠肺炎病例)密切接触的23名人员被感染,“一米线”形同虚设,导致在排队过程中造成了相互感染的严重后果[3-4]。
在实际的核酸检测过程中,虽然要求队伍间隔为1 m,但大多情况下并不能引起人们的重视,需要医护人员和志愿者不断地提醒和强调。此外,由于全员核酸检测人数众多,医护人员人数有限,不能时刻对检测队伍进行整理,如果在核酸检测过程中存在体温异常甚至是阳性人员,那么近距离的接触就会产生非常严重的后果。
为了减小核酸检测排队过程中相互感染事件的发生,本文设计一种核酸检测排队预警系统。该系统搭载超声波测距传感器、红外测温传感器以及自动报警装置,对核酸检测队伍中人们的体温以及间距进行监测,通过对被检测队伍设定间距的提醒以及个人体温的测量,能够使医务工作者对核酸检测队伍的情况进行实时监测,从而减小医护人员、社区工作者、志愿者等应对核酸检测队伍的压力。
1 系统总体架构
本文系统选用STM32F103C8T6微处理器作为主控制器;选用HC-SR04超声波模块作为测距传感器,用于对核酸检测队伍间距的测量;选用MLX90614芯片作为红外温度传感器的核心芯片,用于对队伍人员的体温进行测量;NV020C语音模块负责对间距进行语音提示;蜂鸣器与ZigBee模块负责对异常体温数据的报警和数据传输。
系统原理框图如图1所示。
图1 监测系统原理框图
首先通过按键控制模块设置温度的上下限和队伍间隔距离下限,并将MLX90614红外温度传感器采集到的人体温度通过串口发送给STM32F103C8T6微处理器;当温度超过设置的阈值范围时,触发蜂鸣器报警,同时LED指示灯以间隔500 ms的时间快速闪烁,MCU通过串口通信触发ZigBee通信模块向管理员手机发出短信预警。
另外,通过HC-SR04超声波测距模块测量两个人之间的间隔距离,并通过串口将距离数据发送至微处理器,当间隔距离小于设置距离时,会触发NV020C语音模块发出提示语音,提醒人们注意保持一定的间隔距离。最后,通过OLED模块对测量到的温度数据和间隔距离进行实时显示,以方便人们查看自身状况并及时调整。
2 硬件设计
2.1 超声波测距
2.1.1 超声波测距原理
HC-SR04超声波测距原理是:超声波在空气中传播速度已知,根据声波信号发射端和接收端的时间差来计算被测物体与检测装置距离的[5]。若要测量出两个人之间的间隔距离,就需要采用间接测量法来实现。通过在小车上面搭载2个HC-SR04模块,当模块1接收到返回信号时候,舵机便会带动模块2顺时针转动角度α,直到检测到第2个人,小车可以近似看成一个点,因此可由人与小车之间的距离x1和x2的大小计算出两个人之间的间距L。
间隔距离示意图如图2所示。
图2 间隔距离示意图
2.1.2 PID控制算法
在控制模块2(超声波传感器)转向的舵机中加入PID控制算法,通过PID算法来控制舵机的转动速度,进而提高模块2的稳定性。PID控制算法简称PID控制,在过程控制中,根据系统的偏差,按比例(P)、积分(I)和微分(D)计算出控制量进行控制[6]。PID算法公式如下:
式中:KP为比例系数;TI为积分时间常量;TD为微分时间常量。
通过计算先得到偏差值Δe(t),通过比例控制(P),选取合适的比例系数KP,使误差KP·Δe(t)不断地靠近0,从而使舵机转动产生的震荡减到最小;利用微分(D)来提升舵机转动的稳定性,通过微分控制,使误差Δe(t)曲线的斜率不断趋于0,相当于增加了系统的阻尼程度,直到斜率为0时才会停止;积分(I)的主要作用是消除静差,因为当误差曲线斜率为0时,并不代表着误差为0。此时通过积分控制、微分控制以及比例控制三种方式的叠加[7],就能够使舵机转动的稳定性得到很大的提升。
2.1.3 超声波测距电路图
HC-SR04超声波传感器具有高精度和稳定的读数[8-9],是一款具有2~400 cm的非接触式远距离测距传感器[10],可以实现要求间隔内的测距功能。超声波测距电路图如图3所示。
图3 超声波测距电路图
超声波测距电路中包括超声波发射器和接收器两部分,当脉冲触发引脚(Trig)接收到单片机发送的10μs以上的高电平信号后,会开始发射出一段40 kHz的超声波信号,此时发射端处于高电平,同时接收端(Echo)也由低电平变为高电平。接收端接收到返回的超声波信号后,接收端的电平由高变低。接收端处于高电平的这段时间即为超声波的传播时间,可通过简单计算得出小车与人之间的距离。
2.2 红外测温
MLX90614是一款红外非接触温度计,传感器工作环境温度范围为-20~120℃,测量解析度为0.14℃。MLX90614应用了SMBus和PWM两种数字输出方式[11],本文设计采用的是SMBus输出模式与单片机系统相连,通过对应程序设置内部相关参数以及温度阈值。SMBus模式下的MLX90614电路连接图如图4所示。
图4 SMBus模式下的MLX90614电路连接图
由于MLX90614具有非接触性、响应快、范围广以及高精度的温度测量等优势,使得该传感器应用非常广泛[12-13]。
本文利用红外测温传感器与1号超声波模块方向保持一致,对检测到的人进行体温测量。
2.3 语音模块
语音模块选用的是NV020C,该芯片是一款性能稳定、控制方便的多功能语音芯片,而且其有很强的环境适应能力和良好的耐温和耐压性,正常工作范围[14]在2~4.5 V。控制单元(MCU)通过一线串口方式对语音模块进行控制,PA1端口通过数据线与控制单元相连,控制单元对PA1口进行信号传输,进而控制语音系统的播放与暂停。
语音模块电路图如图5所示。
图5 语音模块电路图
2.4 ZigBee无线通信模块
ZigBee是基于IEEE 802.15.4标准的低功耗局域网协议,是一种短距离、低功耗的无线通信技术[15]。ZigBee、无线局域网以及蓝牙这几种短距离的通信方式都有在其特定领域的优势,而ZigBee通信模式与其他两种模式相比,主要是为低成本、低数据传输速率以及超低功耗的无线网络应用开发的。ZigBee标准通过简化通信协议和降低数据速率,有助于降低应用成本。
本文系统采用的是以CC2530芯片为核心的ZigBee无线通信模块,其有着非常优良的RF无线射频收发器。以CC2530芯片为核心的ZigBee模块通过串口与MCU相连,CC2530芯片的PA_EN、LNA_EN、HGM 3个管脚控制着芯片的工作状态,当LNA_EN处于高电平且HGM处于低电平时,芯片为接收数据的状态;当PA_EN处于高电平且LNA_EN处于低电平时,芯片处于发送数据的状态。本文通过CC2530将MCU处理的数据打包,通过协调器实现与手机之间的通信。
3 软件设计流程
首先在MCU中对各个系统模块进行初始化,通过按键对温度数据的下限和间距数据的阈值进行设定;然后MCU向两个传感器发送数据采集指令。
超声波测距传感器接收到数据采集命令后,开始驱动1号超声波传感器模块工作,当1号模块检测到第1个人时,小车停止前进,系统开始驱动2号超声波传感器模块工作,模块2开始向着小车前进方向转动,转动过程中系统判断是否检测到了第2个人,若没有检测到则模块2继续转动;否则就进行下一步。通过计算得出间距L的值,并且与开始设定的间距下限比较,若L大于设定值,就直接在OLED上显示测试数据;否则就会驱动NV020C语音模块发出提示音,提醒队伍间距过小,请保持适当的间距,最后通过OLED显示当前测试数据。
超声波传感器数据采集流程如图6所示。
图6 超声波数据采集流程
体温数据采集流程如图7所示。
图7 体温数据采集流程
MCU与MLX90614的输入端口(SCL)和输出端口(SDA)相连,通过SCL端口读取MLX90614所测量的温度信息,再通过SDA端口发出指令。然后系统对读取到的温度信息做出判断,如果体温测量值在设定的温度阈值范围内,只需要在OLED上显示当前的体温值;若超出了阈值范围,除了OLED显示之外,系统还会驱动LED指示灯闪烁以及蜂鸣器模块发出警报,并通过ZigBee模块向后台管理人员发出短信预警。
4 测试与分析
为了检测系统的测量精度,选取8个人的队伍进行装置测试,设置温度阈值范围为35.0~36.0℃,设置间距范围为100.0 cm。本文测试所选取的环境为平坦的室内环境,较为复杂的外部环境暂不考虑。测试数据对比如表1所示。
通过对表1测试数据的分析可知:由于温度上限设置的是36.0℃,当测试温度超过36.0℃而测试间距小于100.0 cm时,LED闪烁发出体温预警;当测试间距超过100.0 cm而测试体温小于36.0℃时,语音模块发出间距提醒;当测试间距与测试体温都超过阈值时,语音模块的间距提醒和LED的体温预警会同时发生。
表1 测试数据对比结果
通过测试数据与实际数据的对比,测试温度与实际温度的误差为±0.2℃,测试距离与实际距离的误差为±0.4 cm。在平坦的室内环境中,小车能够随指令正常地从队头移动到队尾,红外测温模块能始终与1号超声波模块保持一致,对同一个人进行测温与测距。当系统在进行测量工作或接收到异常数据时,小车会停止前进,系统的预警模块开始工作,间距小于设定值时,语音模块就会发出间距提醒;体温数据异常时蜂鸣器就会发出体温预警,并且在手机上能够接收到“体温异常,请及时处理”的预警短信。
综上可知,本文所设计的装置在排队距离监测、温度监测以及预警等方面都有很高的精度,可以应用于实际核酸检测过程中的测距与测温环节。
5 结 语
本文设计一种核酸检测排队监测系统,通过MLX90614红外测温传感器以及HC-SR04超声波测距传感器对人们的体温以及队伍间距进行监测,系统具有易操作、速度快、稳定性好以及精度高等特点。当MCU检测到异常的数据信息时能及时反馈,能够满足日常核酸检测过程中医护人员对核酸检测队伍的实时监测,减轻医护人员压力,提高效率。针对本文系统的设计还存在着许多不足,比如在路况较为复杂的场景下,该系统就不能精确地进行核酸排队检测,需要对系统进一步改进。