基于STM32的非接触式红外体温检测系统设计
2024-11-05查启明
摘 要:体温是人体一项重要的生理指标,体温检测是人体健康状况筛查的基本手段。在传染性疾病大流行期间,高效快速的非接触式体温检测显得尤为重要。基于STM32主控芯片,采用红外传感器MLX90614以及超声波传感器HC-SR04设计一款非接触式红外体温检测系统。通过HC-SR04控制待测目标距离,通过MLX90614采集目标表面温度数据,经微处理器处理转换后,由交互模块输出。当目标距离超出最佳范围或者是目标温度高于设定健康温度阈值时,蜂鸣器发出报警提示。通过与传统水银温度计及商用红外测温仪的对比测试,验证了该设计可以快速、准确检测人体体温。
关键词:STM32单片机;红外传感器;超声波传感器
中图分类号:TP271 文献标识码:A 文章编号:2096-4706(2024)16-0157-06
Design of Non-contact Infrared Body Temperature Detection System Based on STM32
Abstract: Body temperature is an important physiological indicator of the human body, and body temperature detection is a basic means for screening human health s8FC51uHb31B3n675u2JZqg==tatus. During the pandemic of infectious diseases, efficient and rapid non-contact body temperature detection is particularly important. Based on the STM32 main control chip, a non-contact infrared body temperature detection system is designed using an infrared sensor MLX90614 and an ultrasonic sensor HC-SR04. It controls the distance of the target to be tested through HC-SR04, collects surface temperature data of the target through MLX90614, processes and converts it by the microprocessor, and outputs it by the interaction module. When the target distance exceeds the optimal range or the target temperature exceeds the set healthy temperature threshold, the buzzer will sound an alarm prompt. Through comparative testing with traditional mercury thermometers and commercial infrared thermometers, it has been verified that the designed system can quickly and accurately detect human body temperature.
Keywords: STM32 Single-chip Microcomputer; infrared sensor; ultrasonic sensor
0 引 言
人体体温对于机体活动而言至关重要[1],因此精准测量体温对于评估个体的健康状态具有重要意义[2-3]。在临床实践中,由于核心温度测量的复杂性及侵入性,常用其他部位的体温代替。在传统的水银温度计时期,直肠被认为是最接近人体核心体温的地方,而现在常用的红外测温仪则主要测量额头表皮温度和鼓膜温度[4-5]。
根据普朗克辐射定律,任何高于绝对零度的物体,都会向外界散发热辐射,辐射能量的大小与物体表面温度相关[6]。根据此原理制作的红外传感器,可将物体散发的热辐射转换成电信号,该电信号经过数字信号处理器处理后[7-10],接入微控制器转换成摄氏度温度。因此基于红外传感器的体温检测系统,可以无接触测量人体体温。
对于单片机的红外测温精度研究,目前已经提出了一些研究方法。赵舜楠[11]基于PWM技术及PID算法,验证了软硬结合的混合式预热补偿方法。Heeley[12]等人运用斩波稳定运算放大器克服了温度的零偏差漂移,从而提高了检测精度。赵斌[13]将神经网络算法及粒子群优化算法应用于温度数据的训练中,增强了检测设备的鲁棒性。上述研究方法虽然可以提高红外测温精度,但是在实际应用中环境温差及测量距离对于红外测温精度影响较大,因此需要重点研究不同环境温度下测量距离对测温结果的影响。
基于上述分析,本文在检测前置阶段加入以HC-SR04为核心的距离控制单元。在最佳检测范围内时,以MLX90614为核心的测温模块采集目标表面温度数据,经主控芯片处理后输出。在相同测温环境下,将本设计测温结果与传统水银温度计和商用测温仪测温结果对比分析,验证了本设计在人体体温检测方面的准确性。
1 工作原理及系统设计方案
1.1 工作原理
物质内部的粒子处于不断运动的状态,在粒子跃迁的过程中会不断向外释放能量,表现为电磁波的形式。当物体温度高于热力学温度0K时,它就会不断向外辐射电磁波[14]。物体温度不同,辐射电磁波的波长也就不同,通常将热辐射波长所在范围定义为红外光或者红外线。
红外传感器就是能够接收物体辐射的红外光并将其转换为电信号的器件,根据红外光探测原理的不同,分为热探测器和光子探测器两大类[15-16]。其中,热探测器是基于热辐射和物质相互作用产生热效应原理制作而成的,本文使用的红外传感器就是热探测器[17-18]中的一种。
1.2 系统设计方案
本设计的硬件部分包括以STM32F103C8T6为控制芯片的核心板、超声波测距模块、红外测温模块、OLED显示模块、电源模块和蜂鸣器。总体框图如图1所示。系统启动后由超声波测距模块检测目标距离后,确认目标是否进入最佳检测范围。紧接着红外传感器采集目标表面辐射出的红外线辐射能并将这类模拟信号转换成数字信号后,再发送给STM32微处理器,之后微处理器处理数据并将之换算为人体体温数值,最后传输到OLED显示模块进行显示,与此同时若检测温度超过所设阈值则触发蜂鸣器进行报警。
2 系统硬件电路设计
2.1 STM32主控芯片
本设计选用的是一款基于ARM Cortex-M3内核的STM32F103C8T6微处理器,该处理器采用精简指令集,具有响应速度块、低功耗等特性。同时,该处理器强大的运算能力和丰富的外设资源,能够满足较复杂的设计要求。
2.2 超声波测距模块
红外测温时,只有当被测目标占据了红外传感器视场范围的一半后,红外传感器才能准确采集目标所辐射的能量。所以为了降低距离对红外传感器检测功能的影响,本设计加入了超声波测距模块来判定目标是否进入了红外传感器的最佳检测范围。本设计选取的HC-SR04超声波测距传感器是采用渡越时间法检测目标距离,该模块共有四个外接引脚,如表1所示,接线图如图2所示。
除了电源和地线,还有输入触发测距信号的TRIG引脚和传回时间差的ECHO引脚,而这两个引脚分别连接着该模块内部超声波的发射和接收电路,其中ECHO引脚与STM32的PA9口相连,TRIG引脚与PA10口相连。
2.3 红外测温模块
在本设计中采用MLX90614型红外传感器[19],该传感器能根据检测目标所辐射的红外辐射能量来计算物体的温度,避免与检测目标接触,不干扰检测目标温度的发散,具有分辨率高、响应速度快、测温范围广、稳定性好等特点。该芯片共有四个引脚,除了供电用的VDD和接地的VSS,还有用于数据通信的SCL和SDA引脚。通常VDD和VSS之间需要并联一个0.1 μF电容进行滤波,其与主控芯片之间采用两线制SMBUS通信协议传输数据,其中SDA引脚与STM32主控芯片的PB8口相连,SCL引脚与PB9口相连,接线图如图3所示。
2.4 交互模块
本设计采用OLED与主控芯片进行交互,实时显示本设计与待测目标的距离及检测温度。当待测目标距离过远或者检测温度过高时,及时提醒用户。除此之外,本设计的报警电路是一个高电平触发的有源蜂鸣器电路,当检测异常时报警提醒。图4为OLED接线图,图5为蜂鸣器接线图。
3 系统软件程序设计
827a18ae7cb65e616b23274f86894dd43.1 主程序
本系统的软件程序是基于德国Keil公司的Keil MDK v5进行开发的,该软件兼容单机片C语言软件开发系统,且具备编译器、宏汇编、库管理和功能强大的仿真调试软件,极大地提高了编写效率。
主程序是本设计整个软件部分的主干,通过主程序调用管理各个外设模块的工作和交互,从而实现本设计的整体功能。具体工作流程为,当程序开始工作后,首先进行主控芯片的GPIO口配置初始化以及串口、定时器等的初始化,其次是各个外设模块的初始化。然后超声波测距模块开始工作,实时检测待测目标的距离并显示在OLED屏上。当待测目标的距离在设定的最佳检测范围内时,红外检测传感器实时检测待测目标表面温度并显示在OLED屏上,当温度大于设定阈值时蜂鸣器报警提醒,否则保持静默状态。此时,如果距离超出最佳检测范围,则会在OLED屏上提醒用户超出检测范围,并返回到距离检测阶段。主程序流程图如图6所示。
3.2 超声波测距模块程序
该模块主要使用了STM32芯片的APB2时钟资源和相关GPIO口,并由中断函数控制定时器的计数以此达到计时的目的。通过GPIO口的高低电平状态触发超声波,并由超声波往返时间计算出目标实际距离。运行步骤包括使能APB2时钟总线、配置GPIO口模式、通过TRIG接收高电平触发测距、判断ECHO是否为高电平并停止计时、判断回响信号持续时间并清零计数器或计算距离、将结果返回到主程序中调用。
工作流程概括如下:
1)触发测距:使用IO口连接TRIG引脚触发测距,需要至少10 μs的高电平信号。
2)发送超声波:模块自动发送8个周期的40 kHz方波。
3)检测信号返回:模块自动检测是否有信号返回。
4)计算时间:如果有信号返回,通过IO口连接ECHO引脚输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,这个时间可以用来计算距离。
5)计算距离:S = (t×v) / 2,其中S为检测距离,t为高电平持续时间,v为声速。通过测量高电平持续时间(即超声波往返时间),可以计算出物体与模块之间的距离。
3.3 红外测温模块程序
MLX90614模块是一款通用型的红外测温模块,具有分辨率高、响应速度快、稳定性好等特点。该模块与单片机之间通过系统管理总线SMBus(System Management Bus)进行通信,SMBus是I2C协议的一个子集,由英特尔公司在1995年提出。
MLX90614红外测温模块在初始化后,会将其收集的所有数据存储在内部寄存器中。MLX90614有EEPROM和RAM两个存储器,当单片机需要读取其测量的数据时,它会分别读取这两个存储器,图7为该模块的工作流程图。
单片机从MLX90614读取数据后,将其转换为摄氏度,转换公式为:
4 结果分析
4.1 系统功能分析
按照前文所述硬件电路设计,使用嘉立创EDA软件绘制并制作PCB板,该PCB板尺寸为75 mm×50 mm,其设计图和实物图如图8所示。在实物对应接口处连接传感器模块,进行实际功能测试。
为了测试超声波传感器模块功能是否正常,在程序中设置距离的报警阈值为10 cm,分别在5 cm和15 cm左右的位置放置一定温度的物体,OLED与报警器均以正常工作。为了测试温度报警功能是否正常,在程序中设置温度的报警阈值为30 ℃,随后在同一位置分别放置不同温度的物体,OLED与报警器均可以正常工作。图9为实物演示图,表2为测试结果表。
从测试结果可以发现,各个模块均可以正常工作,当测试距离超过阈值时,OLED显示“请您靠近点!”进行文本提示,且蜂鸣器进行报警;当测试温度超过阈值时,OLED显示“过高”进行文本提示,且蜂鸣器进行报警;当距离与温度均在阈值范围内时,OLED显示“正常”,且蜂鸣器保持静默。
4.2 距离检测结果分析
为了测试超声波距离检测模块的性能,把本设计系统固定在实验台上,在平台上从超声波模块HC-SR04的顶端开始标注0~20 cm的测试距离。测试结果如表3所示,测试误差拟合图如图10所示。
通过查阅HC-SR04的产品参数可知,该模块检测距离为2 cm到450 cm,检测精度可达0.2 cm。通过测试结果可知在11.5 cm以内时,检测误差值在0.2 cm上下波动,随着距离增加检测误差逐渐增大至2.54 cm,由于本设计主要用于人体体温检测,因此将检测范围控制在10 cm以内时精度最佳。
4.3 温度检测结果分析
在室温25 ℃下,采用本设计与传统水银温度计分别采集人体体温,为保证样本一致性,体温采集时均采集腋下体温。并将本设计的采集距离控制在5 cm左右,采集结果如表4所示。
从表4可以看出,本设计采集的人体体温与传统水银温度计采集的体温,误差值在±0.5 ℃左右。为了分析环境温度对于检测结果的影响,在室外15 ℃左右的环境温度下,对相同样本采用相同的检测方式,采集到的温度如表5所示。
从表4和表5可以发现,相同的样本采用水银温度计在15 ℃时采集的体温与25 ℃时采集的体温相比有一定误差,同样地采用本设计在15 ℃和25 ℃时分别采集的体温也有一定的误差,两者的误差值相近效果相当。
为了全面验证本设计的检测准确性,购买市面常见的商用红外测温仪进行比较测试,并采用水浴加热的方式模拟37 ℃以上的温度,对比测试结果如图11所示。
从图11可以看出,针对相同的样本,本设计检测的温度值与水银温度计检测的温度值误差在±0.5 ℃范围内,商用红外测温仪的检测误差在±0.6 ℃范围内。在检测过程中,本设计与商用红外测温仪检测时间均在秒级,而水银温度计检测时间较长。
5 结 论
本文采用STM32作为主控芯片,利用MLX90614红外传感器,设计了一款非接触式红外体温检测系统。超声波传感器HC-SR04实时检测待测目标距离,在最佳检测范围内时MLX90614实时采集目标表面温度数据,经主控芯片处理后转换为温度数据并实时显示在OLED上,当温度数值超过设定的健康体温阈值时报警提醒。利用EDA软件绘制并制作了PCB电路板,经实物测试后验证了该系统在功能上的有效性。通过搭建测试平台,验证了距离检测单元在10 cm以内的检测误差在0.2 cm左右波动。将本设计与传统水银温度计及商用红外测温仪对比测试,结果表明在室内室外环境下,温度检测结果相近,且本设计检测误差在0.5 ℃以内,验证了本系统的准确性。
参考文献:
[1] 阮嘉文,李木子,王建茗,等.成人不同体温测量方法的测温规律实验研究 [J].当代护士:下旬刊,2024,31(5):93-97.
[2] 郭飞.非接触式红外辐射测温仪的电子学系统研制 [D].长春:长春理工大学,2023.
[3] GRODZINSKY E,SUND LEVANDER M. Histor4zia/uhf95zwI5E2ssHebA==y of the Thermometer [M].London:Macmillan,2019:23-35.
[4] 魏坦勋.人体非接触测温综合误差补偿技术的研究与实现 [D].杭州:杭州电子科技大学,2012.
[5] 苏东岳,郭丽华,孙健,等.红外测温技术的应用和思考 [J].中国医疗器械信息,2020,26(11):23-25.
[6] 白敬晨,于庆波,胡贤忠,等.基于红外热像仪的物体表面发射率测量方法 [J].东北大学学报:自然科学版,2013,34(12):1747-1750.
[7] 李冠霖,范永杰,王正吉,等.3.2~3.4μm红外热像仪基于拟合的测温方法 [J].激光与红外,2024,54(1):92-96.
[8] 韩瑶,骆晓玲,程换新,等.基于改进YOLOv7的红外安防目标检测 [J].激光杂志,2024,45(5):55-61.
[9] 张艺,胡健钏,朱尤攀,等.短波红外成像系统设计及应用的研究进展 [J].红外技术,2024,46(3):246-255.
[10] TOMY A,NUR I S,AHLI I,et al. Infrared thermometer on the wall (iThermowall): An open source and 3-D print infrared thermometer for fever screening [J].HardwareX,2021,9:e00168.
[11] 赵舜楠.非接触式红外测温仪热冲击影响及预热补偿方法研究 [D].岳阳:湖南理工学院,2021.
[12] HEELEY A D,HOBBS M J,WILLMOTT J R. Zero Drift Infrared Radiation Thermometer Using Chopper Stabilised Pre-Amplifier [J].Applied Sciences,2020,10(14):48.
[13] 赵斌.红外热成像系统前端温度补偿算法研究 [D].镇江:江苏科技大学,2014.
[14] 段鹏程,程博,管今哥,等.基于多CCD同步耦合的动态燃烧场三维辐射测温 [J].红外与激光工程,2022,51(10):51-60.
[15] 王海国,陈艺,祝连庆,等.基于超材料吸收器的非致冷微红外热探测器 [J].半导体光电,2023,44(4):508-514.
[16] 李佩展,钟家强,张文,等.高性能超导相变边缘单光子探测器 [J].光子学报,2023,52(5):11-19.
[17] 李晓芬,张香香,谭秋林.基于热电堆的微型热流传感器制备及性能研究 [J].传感器与微系统,2024,43(5):31-34.
[18] 陈永甫.红外辐射红外器件与典型应用 [M].北京:电子工业出版社,2004.
[19] 高雪娟,董小倩,石萌,等.基于MLX90614的智能体温安检系统 [J].现代信息科技,2020,4(24):171-173+177.