时间:2024-07-28
张晓娟,付杨涛,成晋军
(山西工程科技职业大学,山西 太原 030619)
人类的体温是非常重要的一项生理指标,体温的测量方式可分为接触式和非接触式,非接触式测温的优点是在进行体温的测量时,不容易造成交叉感染、测温速度快、不影响物体本身的温度场等[1]。本文通过大量的实践设计,目的在于设计一种较高精度的同时具有一定的误差补偿功能的非接触式的红外测温系统。
本设计的主要流程:红外测温传感器对物体红外波段辐射能进行采集,将采集到的模拟信号经过放大和ADC转换为数字信号传入微控制器中[2]。红外传感器内置NTC信号直接接入STM32内置ADC,该红外测温数据受到环境温度、环境湿度和距离的影响,通过环境温度模块,环境湿度模块和激光测距模块分别对环境温度、环境湿度和距离三方面进行数据采集并传入微控制器中,然后对测得的各种数据进行处理,得出修正以后的红外温度测量值,在OLED12864中进行显示,通过WiFi模块进行无线传输,将温度数据传送给手机,通过USB接口将数据传送给上位机,利用无源蜂鸣器设计报警模块,当温度高于37.5 ℃进行报警。当测温仪正常工作时显示绿光,报警时显示红光,错误时显示蓝光。
单片机的选择对于本设计是至关重要的,本次单片机需要考虑的范围内容包括性能的高低、功耗的大小、通讯的速度、稳定性的好坏和封装的形式。选取最适合本设计的单片机型号为STM32F103,它具备价格实惠、性能强大、资源完备等特点,能够满足设计所需;功耗有三个模式分别为:sleep、stop、standby,在standby形式下,只保存备份寄存器和待机电流维持任务,能够实现低功耗的作用;CPU几乎不需要等待,非常接近计算机,而且更适应于手机等设备,为后续的传输数据提供了更优的条件。
STM32F103的工作电压为2 V~3.6 V,工作温度为-40 ℃~85 ℃,选用的是LQFP48封装,系统时钟最高可达72 MHz,通过将其他部分的装置单元例如传感器模块、执行单元、传输模块等连接到相应的引脚上,实现本设计具体的功能。
本系统采用的红外传感器是BM43THA红外测温传感器,红外光电传感器在检测是否有人经过时会向目标发出一束红外光,当有人经过时就会将这束红外光遮挡反射给传感器的接收部分,此时就会判断为有人经过[3]。而在与单片机通信的电路中,红外光电传感器模块在检测到人时,STM32F103C8T6单片机会输出低电平,无人时输出高电平,在电路中红外光电传感器只需要三个引脚(电源输入引脚、接地引脚、信号输出引脚)与单片机通信即可。
图1 高精度红外测温系统结构框图
本设计使用VL53L0X激光测距芯片,该传感器使用940 nm无红外闪烁激光器,该频段的激光为不可见光,不会危害人的眼睛,系统FOV可达25 ℃,测距范围为2 cm~200 cm。正常工作模式下的功率为20 mW,待机时的电流仅有5 μA。SCL和SDA为连接MCU的IIC接口,MCU通过这个IIC接口来控制VL53L0X,XSHUT为芯片的片选引脚,用于MCU使能或者复位传感器。而GPIO1引脚为中断输出引脚,使用时需要外部上拉电阻。
本设计使用DHT11对环境湿度进行测量以实现误差修正。DHT11是一款能够测量温湿度的传感器,其测量的核心元件是电阻式元件,测量湿度采用的是湿敏电阻,其相对湿度精度可达±5%RH。
本设计使用DS18B20温度传感器对环境温度进一步进行补偿,以提高红外线测温的精度。DS18B20通过PB12引脚与单片机连接,同时还连接了电阻R3,可以控制通信的稳定,对人体体温的读取主要是通过两个命令,先对时序初始化,启动DS18B20,发送转换命令0x44;第二个是0xbe存储命令,得到数据,若测得值为负值,就使用补码,再进行转换。
该模块的作用为显示测温读数,采用SSD1306作为OLED驱动芯片,SSD1306有256级的亮度控制等级,能够通过IIC接口来接收MCU传来的数据或者是命令。
本设计所用无线通信模块是ESPRESSIF的ESP8266,ESP8266能够进行开发和写程序的部分占比更大,还可以连接云端,里面配置了10 bit高精度ADC,ESP8266系列不同的模组之间大部分是封装上的,以及flash大小不一样,装置型号选择使用ESP8266-12E。
ESP8266的TXD与芯片PA3引脚连接,RXD和PA2引脚连接,它能够进行信号之间的转换,在收到串行信号以后要经过转变成无线信号,再发送到终端,同样它也能够将无线信号转回至串行信号发送给芯片。
对于系统的配置以及初始化、检测信息的收集、I/O控制、自动模式的设计等使用开发设计STM32F103C8T6的软件为Keil uVision5,包括编译器、调试器等等,编程语言使用C语言,总体软件流程图如图2所示。
图2 总体程序流程图
本文设计了一款较高精度的基于红外技术的测温系统,实现对人体体温的测量,并着力降低测温距离、测温时的环境温度以及测温时环境湿度对测温精度造成的误差[4]。设计以STM32F103为核心芯片,使用BM43THA红外测温传感器进行人体体温的测量,引入VL53L0X激光测距模块,DS18B20环境温度测量模块以及DHT11环境湿度测量模块对红外测温的数值进行误差补偿。本文所设计的红外测温系统通过对误差进行分析、电路的合理设计使得测温精度得到了有效地提高。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!