王长辉,邹思奇,段佳明,杨世原,谢印庆
(大连理工大学城市学院,辽宁 大连 116600)
近几年受新冠疫情的影响,测温计在人们的生活中使用频繁。传统的体温计在测温时不仅耗时长,而且卫生状况、测量精确程度也难以保证。在这种情况下,红外测温计的作用就显得至关重要,它可以通过无接触式红外测温大大提高测温的精确性,并减少病毒感染概率,在疫情防控期间能够发挥很大的作用。
本文设计了一款具有无接触式测温报警功能的测温计。以STM32芯片作为微控制器实现对数据的处理,采用了红外传感器、蜂鸣器、温度传感器实现无接触测温报警功能,通过显示器LCD1602显示温度值,可满足更多条件下的测温需求。
本系统硬件由STM32芯片、电源模块、MLX90614红外传感器模块、复位电路模块、LCD1602显示屏模块、报警模块、按键模块、DS18B20温度检测模块组成。系统结构如图1所示。
图1 系统结构
(1)主控芯片
STM32F103微控制器以ARM Cortex-M3为核心[1]。芯片内部包含2个12位的数模转换器、9个通信接口、3个16位定时器等,相比51单片机具有强大性能、微小的内核尺寸、迅捷的系统调试、变通的硬件配置等特点,所以在市场上普及率较高。
(2)电源模块
采用AMS1117交换式电源为STM32F103提供所需的3.3 V工作电压,为LCD1602显示屏提供所需的5 V工作电压。AMS1117是交换5 V至3.3 V电压的线性稳压器,能够满足测温计的基本工作需求。
(3)红外传感器模块
采用MLX90614红外温度传感器模块实现无接触式测量,MLX90614包含先进的低噪音放大器、17 b的ADC,还有性能强大的DSP器件[2],存在SMBus和PWM两种输出方式,具有响应速度快、准确性强、灵活性高等特点。
(4)复位电路模块
本系统的STM32是通过给予一个低电平来进行复位。只有按下复位键产生一段连续的低电平时才能成功复位,测温枪才能够重复测温。
(5)LCD1602显示屏模块
本系统所用的LCD1602由LCD、HD44780、HD44100组成,具有面积小、待机能力强、显示内容多变、重量小等优点[3]。在生活和工业领域都会涉及显示屏模块,其外围电路配置简单、价格实惠、性价比高。
(6)报警电路模块
报警功能通过蜂鸣器模块实现,该器件需要引入3个管脚,给蜂鸣器VCC提供5 V直流电源;DATA接入芯片PA5引脚,GND接地。预先规定正常体温数值,一旦红外传感器测得体温不在正常数值范围内时,蜂鸣器报警,目标温度异常,进而快速排查出体温异常的目标。本系统所用的蜂鸣器是结构一体化的元件,采用直流电压供电。振荡器通过音频信号产生电流然后通过电磁线圈,使电磁线圈产生磁场。蜂鸣器膜片在电磁线圈和磁铁的相互作用下,持续性振动发声,直至电流信号消失,声音停止[4]。
(7)按键电路模块
设置按键控制只需要占用一个I/O口。通过判断按键是否按下,传导I/O口将相应从低电平变化为高电平,使得红外传感器工作,所测得的温度通过LCD1602显示屏显示。当下次再按下按键时,系统自动复位并开始测量下一目标的温度,原理简单。
(8)温度检测模块
通过使用DS18B20温度传感器[5-6]直接读取测量温度,该传感器需要引出3个管脚与单片机相接,测量温度范围为-55~125 ℃。本系统中DS18B20温度传感器的DQ端口与STM32的PB7端口相连。
程序设计主要从以下几个部分进行:运行程序、LCD1602显示程序、MLX90614红外测温程序。这些程序互相配合维持着系统的正常运行。
本系统的软件实现流程为:首先程序开始运行,此时对整个系统进行初始化,包含STM32单片机I/O端口、MLX90614红外传感器、DS18B20温度检测模块、LCD1602显示屏等,保证数据的测量不会因为错乱而影响系统工作。然后系统判断按键是否按下,如果没有则返回上一步;如果有按键按下则判断是否收到测温指令,如果接收到测温指令,则开始红外测温,反之则重新判断按键是否按下。最后系统计算温度值,判断温度值是否异常,如果异常,蜂鸣器报警,否则直接计算出温度数值并通过LCD1602模块显示。主程序流程如图2所示。
图2 主程序流程
本文测温枪所用到的LCD1602有16条引脚,需要给其VDD输入5 V电压来维持其工作,其RS引脚是命令/数据选择的引脚,需要接I/O。是否选择命令或数据是根据RS口输入的电平高低来决定LCD1602的基本操作大概分为4种:读状态、读数据、写命令、写数据。LCD1602工作原理:首先需要给其一个输入命令或数据,设置其显示模式、输入模式[7-8];然后初始化LCD1602之前所得数据;最终通过新设置字符位置,将当前所测数据更改字符位置输出到显示屏上。
在MLX90614中需要先进行初始化,然后通过微控制器STM32按照SMBus协议对存储在RAM里的数据进行读取,再通过公式(T=RAM(tempH:tempL)×0.02-273.15)将读取的数据转换成摄氏温度[9]。
在当下疫情形势依然严峻的情况下,测温枪的需求量处于持续增长状态[10]。为此,本文设计了一个简单的人体红外测温枪,能实现无接触式测温,不仅精确度高,还能对体温异常目标进行报警。本测温枪的测温范围可达-55~125 ℃,可以应用到工业领域测量危险的高温仪器,以降低风险出现的概率。