蔡运富 李小松 荣海浪
(重庆电子工程职业学院 重庆 401331)
本方案采用SGXV02作为红外测温传感器,由模数转换芯片AD7705转换SGXV02输出的模拟电压值,以IAP15W413AS作为控制与运算单元,显示方案为0.96 寸的OLED,过温报警单元为蜂鸣器。主要功能为实现非接触测温。软件中设计了低功耗模式,无操作45s后进入休眠状态,以降低功耗。
硬件部分主要包括红外测温传感器SGXV02、由AD7705构成的模数转换电路、电源电路、IAP15W单片机最小系统、蜂鸣器驱动电路、OLED显示模块与其接口电路、蜂鸣器驱动电路、独立按键电路。
红外测温传感器SGXV02能够捕获绝对零度以上的物体所发出的红外热辐射,该传感器内部有NTC负温度系数热敏电阻,可做环境温度补偿,通过串接一个50KΩ电阻,再接入电源构成分压电路,由于NTC电阻值随着环境温度变化而变化,故其分压电压值也相应的变化,再通过单片机IAP15W413AS内部的ADC外设对该电压值进行模数转换。SGXV02将捕获的红外热辐射转换成模拟电压进行输出。由于SGXV02输出的电压是毫伏级别的,信号很微弱,所以采用带有内部增益的模数转换芯片AD7705进行信号放大并将模拟电压信号转换为数字信号,由单片机IAP15W413AS读取转换结果并通过软件算法进行数据处理,将最终被测人员的体温结果用0.96 寸的OLED屏显示。软件内设置阈值温度,当所测温度超过阈值温度时,蜂鸣器发出警报。
图1 电路原理图
手持式非接触体温计的软件设计相对较为简单,包括AD7705的驱动、SGXV02内部NTC热敏电阻分压值的AD转换与其电阻值换算算法、OLED显示、独立按键扫描驱动、蜂鸣报警电路的驱动、低功耗模式、目标温度算法、环境温度补偿算法、物体表面温度与体温转换算法等部分。软件部分的重点在于算法处理。
图2 程序流程图
图3 V-T关系曲线
为得到被测物体表面温度、SGXV02热电堆输出的电压信号、监测环境温度的NTC电阻的阻值三者的函数关系,可将SGXV02供应方给定的V-T数据关系(可参考文献1)转换成一个散点图,可以直观的看到V-T数据关系有良好的线性度,故可对V-T数据关系使用数据处理软件Excel进行拟合得到得到式(1),一个一元一次函数式,即为被测物体表面温度与SGXV02输出的模拟电压的函数关系。式(1)中常数项23.356为环境温度的补偿值,该值是NTC电阻值所对应的温度,NTC电阻值与其对应的温度同样可以通过上面的方法得到一个函数式,不过,通过拟合NTC电阻值与温度关系曲线得知,两者关系非线性,故此处的平滑算法为一个多项式,通过Excel进行拟合得到式(2),一个六阶的多项式,价数越高其拟合程度越高,当 R2=1,则反应了当前的函数式的拟合程度已达到最高。拟合多项式的方法可能需要进行浮点数运算,阶数越高其运算成本越大,可能会使单片机运算速度变慢,不过此方法计算的精度比查表法更高,此处只做少量运算,其速度还是可以接受的。
Y= 10.764x + 23.356
(1)
y= 1E-08x6- 2E-06x5+ 0.0002x4- 0.0129x3+ 0.5901x2- 19.42x+ 355.58
(2)
被测物体的表面温度还需进一步转换为物体体温,可以对物体表面温度与其实际体温的数据关系使用函数拟合法或采用查表法进行数据转换。由于非接触红外测温法易受环境的干扰,所以为确保测量温度数据的准确性,需要在软件中对数据进行滤波处理,可以采用中值滤波法或平滑滤波法。中值滤波法需要测量多个数据并构成一个奇数序列,对该序列内的数据按大小顺序排序,其中值即为中值滤波的输出值。平滑滤波法则可直接对测量的多个数据进行求平均值,该组数据的平均值即为平滑滤波的输出值。
手持式非接触体温计具有非接触测量、速度快、精度高等特点,而高精度的红外热电堆传感器和高质量的温度补偿算法是测温数据精准的前提。