APP下载

基于STM32 单片机的智能红外测温小车设计与实现

2023-11-10彭文庭罗宁宁伍鹏辉谢邦玺

电子设计工程 2023年21期
关键词:感应器服务端高电平

彭文庭,罗宁宁,2,伍鹏辉,谢邦玺

(1.南昌航空大学测试与光电工程学院,江西南昌 330063;2.南昌航空大学江西省光电信息科学与技术重点实验室,江西南昌 330063)

密集人群中的传染病防控工作是目前公认的难度较大的工作,尤其是在火车站、机场、会场等人口密集且流动性大的场所,这项工作更是难上加难。如“非典”、H1N1 和新冠肺炎等传染性疾病,因其发病前期具有较强的隐藏性和较高的传染性,使得这类疾病的防控工作变得十分困难。此类疾病最主要、最明显的发病特征是体温比正常人偏高。因此,在密集人群中快速准确地把体温偏高者与正常体温者区别出来是防控这类疾病的重要手段。

目前密集人群中测温主要采用红外测温方法。红外测温具有精度高、响应时间快、测距远、使用简单方便、安全可靠及使用寿命长等优点,被广泛应用于农产品检测、化工安全检测等领域[1-2]。目前较为成熟、使用较广泛的红外测温装置主要有手持红外测温枪以及红外热成像仪加声光报警器系统。手持红外测温枪广泛应用在地铁站入口、商场入口等人群密集处,需工作人员对出入人群进行测温操作。红外热成像仪加声光报警器系统则广泛应用在火车站、高铁站出入口。上述两种测温装置存在一定的不足之处,红外测温枪正常工作的环境温度范围为16~35 ℃[3-4],因此在部分寒冷地区,红外测温枪会有较大的测温误差,容易造成错误筛选体温异常者,且人工近距离测温容易引起交叉感染。红外热成像仪加声光报警器系统由于采用了测温红外热成像仪与彩色摄像机融合技术,配合专业的测温软件从而导致成本较高。每个人的身高和体型各不相同,而市场上大多数人体热成像仪的高度和水平视角是固定的,因此在测量时会因测量部位不准确而引起较大的测温误差[5-6]。

文中提出一种基于STM32 单片机的智能红外测温小车,创新性地将红外测温技术和智能小车技术相融合,实现了人体识别、测温、报警智能一体化操控,实现对出入人群的全自动化测温,能够精准筛选体温异常者,有效避免测温人员与被测人员近距离接触而引发的交叉感染,可为疫情防控测温提供一种创新的思维方式。

1 系统总体方案设计

图1 为基于STM32 单片机的智能红外测温小车系统框图,该小车系统由五大模块组成:主控服务端、驱动模块、人体搜寻识别模块、测温报警模块和电源模块。STM32 单片机作为整个小车系统的主控服务端[7-8],驱动模块由电机[9-10]、舵机[11-12]和铝合金材质的底板组成,人体搜寻识别模块由人体感应器[13-14]组成,测温报警模块由测温传感器[15-16]、LED(Light Emitting Diode)灯、蜂鸣器以及OLED(Organic Light-Emitting Diode)显示屏组成,电源模块采用锂电池给整个小车系统供电。

图1 智能红外测温小车系统框图

文中采用STM32F103C8T6 单片机作为整个小车系统的主控服务端。STM32F103C8T6 单片机芯片具有32 位ARM Cortex-M3 内核,电压使用范围为2.0~3.6 V,工作频率最高可以达到72 MHz,内部采用64 kB 或128 kB 字节Flash 程序存储器,以及高达20 kB字节的SRAM 数据存储器。

驱动模块由电机、舵机和铝合金材质的底板组成,为后轮驱动前轮的转向机构。舵机安装在底板靠近前轮一侧,舵机通过连动杆与前轮连接。电机安装在底板靠近后轮一侧,电机为后轮提供动力。电机驱动芯片的型号为TB6612,它有两个供电端,逻辑控制部分由5 V 供电,另一个是12 V 的电机供电端。舵机型号为HWZ020,其转向是通过PWM(Pulse-Width Modulation)控制,给定不同的占空比,舵机的转向幅度随之改变。小车采用的是铝合金车身,能够适应各种恶劣的环境。

人体搜寻识别模块由两个型号为HC-SR505 的人体感应器组成,其感应张角为120°,默认工作电压为DC 4.5~20 V,静态电流小于50 mA,具有全自动感应、超小体积、工作电压范围宽、微功耗、可重复触发方式、方便与各类电路实现对接等优点。人体感应器的工作原理为:人体发射的10 mm 左右的红外线通过菲涅尔滤光片增强后聚集到红外感应源上,红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,产生电信号。人进入人体感应器感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。

测温报警模块由测温传感器、LED灯、蜂鸣器以及OLED 显示屏等组成,其中核心部件测温传感器采用型号为MLX90614 的红外非接触温度计,集成了低噪声放大器、17 位模数转换器和强大的数字信号处理单元,测量分辨率为0.02°C,可应要求在有限温度范围内实现0.1 °C 的医疗精度,使得高精度和高分辨度的温度计得以实现。

电源模块为整个小车系统供电,主要包括两部分:由三节输出电压为3.7 V 的充电锂电池18650 串联在一起,输出电压约为11.1 V,以及一块输出电压约为5 V 的蓄电池组成。小车的电机和舵机的驱动的额定电压约为12 V,所以需要由三节3.7 V 的锂电池进行供电,而所用到的STM32 的额定电压约为5 V,由输出电压约为5 V 的蓄电池进行供电。

2 硬件方案设计与实现

2.1 电机驱动模块

电机转速和舵机转向是根据两个人体感应器所得数据进行调整的。电机驱动模块的工作流程如图2 所示。当左侧人体感应器感应到人体后,主控服务端输出左侧信号,控制小车移动速度减慢,并缓慢向左侧转向;当右侧人体感应器感应到人体后,主控服务端输出右侧信号,控制小车移动速度减慢,并缓慢向右侧转向,直至左右两侧的人体感应器同时感应到人体后,主控服务端控制电机减速,进行测温。

图2 电机驱动模块的工作流程

电机驱动模块的核心部件是电机驱动和舵机。图3(a)为电机驱动模块的连接原理图。将STBY 置高电平,才能正常工作。PWMA、AIN2、AIN1 分别与STM32 单片机的PB10、PB11、PB12 接口连接,共同控制左轮的转动。PWMB、BIN2、BIN1 分别与STM32单片机的PB15、PB14、PB13 接口连接,共同控制右轮的转动。通过PB10、PB15 接口设置TB6612 的PWMA、PWMB 的频率为10 kHz,并通过改变占空比来调节电机的速度。AIN1、AIN2、BIN1、BIN2 通过“一端高电平一端低电平”来控制电机正反转。舵机的控制端与单片机的PA1 接口连接,如图3(b)所示,舵机转向也是基于PWM 控制原理,通过PA1 接口设置一定的占空比,从而控制舵机的转向。

图3 电机驱动模块连接原理图

2.2 人体搜寻识别模块

人体搜寻识别模块中包含的两个人体感应器,分别安装在小车车身前端左右两侧,设置两个人体感应器与车身纵向轴线的夹角均为45°,在小车正前方两个人体感应器感应范围有一定的重叠。人体搜寻识别模块的工作流程如图4 所示,当仅有左侧人体感应器感应到人体时,主控服务端驱动小车向左转向,同样当仅有右侧人体感应器感应到人体时,主控服务端驱动小车向右转向,直至两侧的人体感应器同时接收到人体感应信号,即人体刚好位于小车前方两个人体感应器感应范围重叠区域,此时主控服务端驱动测温传感器进行测温。

图4 人体搜寻识别模块的工作流程

图5 为人体感应器连接原理图。左右人体感应器的输出口OUT 分别与单片机PA8 和PA9 接口相连接。人体感应器感应到人体后,输出口OUT 输出高电平,STM32 单片 机通过GPIO_ReadInputDataBit()库函数读取PA8、PA9 的电平。

图5 人体感应器连接原理图

2.3 测温报警模块

测温报警模块由测温传感器、LED灯、蜂鸣器和OLED 屏组成。测温报警模块的工作流程如图6 所示,当人体感应器检测到人体后,主控服务端驱动测温传感器进行测温,温度数据传入主控服务端中进行处理,再传入OLED 显示屏显示温度。当温度在设置的温度范围内时,完成一次操作,进行下一次人体搜寻测温,当温度不在设置的温度范围内时,主控服务端发出指令控制蜂鸣器发出报警,LED 灯点亮,完成一次操作。

图6 测温报警模块的工作流程

图7(a)为测温传感器连接原理图。测温传感器的SCL、SDA 端分别与单片机PB5、PB6 接口连接,测温之后将测得的数据传入STM32 单片机进行数据处理和分析。图7(b)为蜂鸣器与LED 灯连接原理图。蜂鸣器与LED 的控制端分别与单片机PA5、PA6 接口连接,当测得的温度不在设置范围内时,PA5、PA6 均置为低电平,此时蜂鸣器和LED 工作。图7(c)为OLED显示屏连接原理 图。OLED屏的SCL、SDA 端分别与单片机PB8、PB7 连接,单片机处理好的温度数据则通过PB7、PB8 接口输出显示在OLED 屏上。

图7 测温报警模块连接原理图

对所设计的测温报警模块进行了温度测量实验,温度测量结果如表1 所示。根据式(1),计算得到温度的平均绝对误差(MAE)δ为0.11 ℃。

表1 温度测量结果

式中,n代表测量次数,代表测量温度,xi代表实际温度。人体温度正常范围为36.2~37.3 ℃,考虑测温传感器引入的误差,将正常温度范围设置为36.1~37.4 ℃,当温度不在该范围内时,发出报警。

3 系统软件设计

3.1 人体搜寻识别模块软件设计

安装在小车车身前端左右两侧的人体感应器的输出口分别与单片机不同串口相连接。图8所示为人体搜寻模块软件流程图,初始化后判断当前感应人体情况,如果人体感应器感应到人体,输出口输出高电平,STM32 单片机通过GPIO_ReadInput DataBit()库函数读取对应串口的电平。当左侧读取到高电平时,控制小车向左转向,同样当右侧读取到高电平时,控制小车向右转向,直至左右人体感应器同时感应到人体后,小车停止并进行测温。

图8 人体搜寻模块软件流程图

3.2 测温报警模块软件设计

测温报警模块的软件流程图如图9 所示。当两侧的人体感应器同时接收到感应信号时,程序初始化,主控服务端驱动测温传感器进行测温,将所测得的温度显示在OLED 屏上,并判断温度是否处于正常温度区间,当温度处于设置的温度范围内时,完成一次操作,进行下一次人体搜寻测温,当温度不在设置的温度范围内时,主控服务端发出指令控制LED灯点亮、蜂鸣器发出报警。

图9 测温报警模块软件流程图

4 结束语

文中设计的基于STM32 单片机的智能红外测温小车,将红外测温技术和智能小车技术相融合,在智能小车的基础上加载了人体识别装置和红外测温装置,可以精准地搜寻人体并测量其温度,并在发现温度异常时发出报警,能够有效地筛选温度异常者,实现了人体识别、测温、报警智能一体化操控;同时具有测量结果准,测温效率高,测温不漏人,成本低且可行性好等优点,相对于人工作业而言,具有不可比拟的优势,可以满足疫情防控的需求,同时也可以在很多领域加以推广。研究过程中,仍有一些待解决问题,如当左右两侧的人体感应器同时感受到不同的人体后,小车也会进行测温,针对上述问题,需要对传感器进行进一步研究,完善小车功能。

猜你喜欢

感应器服务端高电平
徐州市推进网格“实体化”布密风险“感应器”
一种基于FPGA的PWM防错输出控制电路
牙嵌强制锁住式差速器壳端面齿感应淬火
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
微波感应器的原理和应用
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
DM 50KW中波广播发射机欠推动故障分析
曲轴淬火感应器及其节能优化