分享
一种防疫测温仪的设计与实现...14非接触式红外测温传感器_程智.pdf
下载文档

ID:2373088

大小:1.79MB

页数:5页

格式:PDF

时间:2023-05-10

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
一种 防疫 测温 设计 实现 14 接触 红外 传感器 程智
138 一种防疫测温仪的设计与实现 基于 MLX90614 非接触式红外测温传感器 程 智(黄冈职业技术学院 电子信息学院,湖北 黄冈 438002)摘 要:摘 要:非接触式红外测温是新冠疫情预防的第一关卡,往往测量人员众多,且要求温度测量准确。MLX90614 红外测温传感器测量通过捕获人体辐射的红外线,达到测量温度的目的。其体积小、非接触方式、测量精度高和响应速度快,广泛的用于医疗测量设备、工业生产、日常家用电器之中。本文重点分析 MLX90614结构及工作原理,围绕该传感器设计了充电电路、显示电路、控制电路等,从而设计出一款便携式红外测温仪。关键词:关键词:MLX90614;充电电路;显示电路;控制电路;测温仪 中图分类号中图分类号:TP732+.2 文献标志码文献标志码:A 文章编号文章编号:1672-1047(2022)06-0138-05 DOI:10.3969/j.issn.1672-1047.2022.06.36 收稿日期:2022-11-03 作者简介:程 智,男,湖北武汉人,硕士,讲师。研究方向:嵌入式技术,人工智能技术。一般来说,测温方式可分为接触式和非接触式1。常见接触式测温:水银计测温,利用水银的热胀冷缩原理;热敏电阻测温,通过半导体阻值与温度关系来实现对温度测量。而新冠在预防中,测温必须采用非接触式测温。如在公众场合如商场、火车站热流量大的地方采用红外热成像摄像头来测温,但测量仪器非常昂贵,在私人场所,如的士、住宅、小区等,更需要一种测量准确、响应迅速、携带方便和价格便宜的非接触式测温仪。1 红外测温仪硬件系统结构 1 红外测温仪硬件系统结构 人体能对外辐射能量,称为红外辐射。人体温度与自身辐射能量的强度、频率(波长)有关。如果能够测量出红外辐射能量强度和波长,就能够推算出人体表面温度,这就称之为红外测温原理。红外测温系统由光电探头、光学系统、信号调理电路及电信号输出四部分组成。如下图 1 所示,为红外非接触式红外测温仪硬件设计框图:图 1 硬件设计框图 图 1 硬件设计框图 1.1 STM32 主控电路 图 2 STM32 主控制电路 图 2 STM32 主控制电路 Vol.24 No.6Dec.2022第 24 卷第 6 期 2022 年 12 月 黄 冈 职 业 技 术 学 院 学 报Journal of Huanggang Polytechnic 139 采用ARM32位Cortex-M3内核的STM32F103C8T6单片机为系统控制器,最高工作频率 72MHz,1.25 DMIPS/MHz,单周期乘法和硬件除法。片上集成256KB 的 Flash 存储器;20KB 的 SRAM 存储器,内部集成了多路 ADC(模数转换器),多路串口控制器。开 发 资 源 丰 富,采 用 图 形 化 开 发 工 具STM32CUBEMX,KEIL 实现软件设计,大大缩减开发周期。主要实现功能如下:控制红外传感器 MLX90614 进行温度测量,并将温度显示在 OLED上。如果温度超过 37.3,通过蜂鸣器和 LED 彩灯进行声光报警。STM32 主控制电路主要由晶体振荡电路、复位电路组成。可外部高速晶振(HSE)和低速晶振(LSE)。其中高速晶振为 8MHZ,低速晶振为32.768KHZ。8M 晶振与电容 C8、C10 构成晶体振荡电路,产生稳定的时钟信号。为单片机提供精准的时钟源。当 NRST 引脚保持低电平一段时间后(2us 以上)会导致 MCU 发生复位,当维持一段时间的低电平后再恢复高电平即可。因为电容的特性是隔直通交,所以,电容只有在上电时候会在两端累计电荷,当稳定后不会在释放电荷。当上电时,电容两端逐渐由电位差为 0,即 NRST 引脚与 GND 等电位,为低电平;随着充电时间推移,电容两端的电位差逐渐达到最大 3.3V,即为高电平。如上图 2 所示。1.2 锂电池供电电路 图 3 锂电池供电电路 图 3 锂电池供电电路 为了提高温度测量便携性,故采用锂电池供电,如上图 3 所示,CN1 为锂电池接口,系统采用 4.2V聚合锂电池,当电量不足时候,通过 USB 对锂电池供电,其中芯片 TC4056A 为充电管理芯片,负责对电池充电。该芯片充电电流由 2 脚串联电阻 R9 决定,电流大小计算公式为:I=Vprog/R9*1200 (1)在电池预充电阶段 Vprog 电压为 0.1V,在恒流充电阶段,Vprog 电压为 1V。GHRG(引脚 7)漏极开路输出的充电状态指示端。当充电器向电池充电时,CHRG 管脚被内部开关拉到低电平,表示充电正在进行;否则 CHRG 管脚处于高阻态。LED2 用于指示充电状态,点亮表示在充电之中,熄灭表示充电完成。1.3 MLX90614 非接触式温度传感器 1.3.1 MLX90614 结构及应用电路 图 4 外观及应用电路 图 4 外观及应用电路 MLX90614 采用 5V 供电,测量温度范围为-40125。温度输出有两种方式:SMBus 和 PWM(脉冲宽带调制信号)。MLX90614 集成了红外热电堆感应器 MLX81101 和用于处理红外感应器信号的专用处理芯片 MLX90302(内含低噪声放大器、17 位 A/D 转换器、数字信号处理单元、脉宽调制及逻辑控制电路)1-2,测量相应速度仅仅 100 多毫秒,测量量辨析度可达到 0.022。如图 4 为该传感器外观图及应用第 6 期 一种防疫测温仪的设计与实现 第 24 卷 140 电路图,表 1 为具体引脚功能。表 1 MLX90614 引脚功能图 表 1 MLX90614 引脚功能图 引脚编号 功能描述 4-VSS 传感器电源负极 1-SCL SMBus 总线的时钟信号 2-SDA/PWM SMBus 总线的数据信号,或者 PWM 温度输出信号 3-VDD 传感器电源正极(通常接 5V)MLX90614 基于 SMBus 总线传输协议。SMBus接口能提供在主设备(MD:Master Device)与从属设备(SD:Slave Device)之间进行数据通讯3。根据手册单个 MLX90614 作为从设备地址为 0 x00,多个MLX90614 默认地址为 0 x5A。主设备 STM32 控制器与从设备 MLX90614,数据传输以字节为单位进行传输,采用握手应答方式来传输信号,及每次发送一个字节数据,等待对方应答 ACK(应答)信号,如果超时没有收到 ACK 信号,从新发送一字节数据,如果多次依然没有接收到 ACK 信号,停止发送,结束通信。数据传输协议如图 5 所示:图 5 SMBus 传输协议 图 5 SMBus 传输协议 图 6 数据读写协议 图 6 数据读写协议 MLX90614 的数据传输每次传送一个字节。每个字节都按照高位(MSB)在前、低位(LSB)在后的格式传输 2 个字节中间的第 9 个时钟是应答时钟4。如图 6 所示,首先来看主设备读取从设备过程:主设备(单片机)首先发送第一帧 9bits 的数据:1 位起始位,7 位从机地址,1 位写命令。等待从机相应 ACK。接着发送第二帧数据 8bits 命令,等待从机相应发出ACK 信号。第三帧由 9bits 数据组成:1 位启始帧,7bit 从机地址,1bit 读命令。从机依次发出 2 字节的回复数据。其次再来看主设备读取写从设备过程:主设备(单片机)首先发送第一帧 9bits 的数据:1 位起始位,7 位从机地址,1 位写命令。等待从机相应ACK。接着发送第二帧数据 8bits 命令,等待从机相应发出 ACK 信号。从机依次接收到 2 字节的数据,每接收到一帧就回复 ACK 应答信号。1.3.2 温度计算 主控制通过 SMBus 总线来读取 MLX90614 内部RAM 中 0 x07 地址里面的温度数据,温度数据由 2 字节组成,低字节(DataL)在前,高字节(DataH)在后。然后根据计算公式 2,计算出最终测试温度(单位:)。T=(DataH8)|DataL*0.02-273.15 (公式二)1.4 声光报警电路 图 7 声光报警电路 图 7 声光报警电路 第 6 期 一种防疫测温仪的设计与实现 第 24 卷 141 如图 7 所示,单片机通过 NPN 型三极管来控制有源蜂鸣器的开、关。当 BUZZ 引脚输出高电平的时候,三极管导通蜂鸣器响,当输出低电平的时候,三极管停止工作,蜂鸣器不响。LED 电路采用红、绿、蓝三色等,分别表示不同的工作状态,其中红灯表示温度异常,绿灯表示温度正常,蓝灯表示正在测量中。2 系统软件设计 2 系统软件设计 2.1 系统设计流程图 系统流程图如图 8 所示,首先完成系统硬件相关初始化,如配置 stm32 单片机时钟、定时器、GPIO等。然后等待按键是否按下,如果按下则进行温度测量,否则一直等待,直到用户按下。当用户按下按键后,单片机与传感器 MLX90614 通过 SMBus 总线协议进行数据传输,如果计算出温度超过 37.3,则显示温度异常蜂鸣器每隔 1S 响一次,同时 RGB 彩灯,显示红色。如果温度正常则从新回到按键检测状态等待下一次按下。图 8 系统流程图 图 8 系统流程图 2.2 温度读取流程图 图 9 温度读取流程图 图 9 温度读取流程图 温度读取过程:单片机首先发送三帧数据,其中第二帧为命令,寄存器为 0 x07,读取传感器内部 RAM温度值。传感器 MLX90614 接收到读命令后,分两帧,依次传输温度低 8 位和温度高 8 位5。核心读写代码如下:uint16_t SMBus_ReadMemory(uint8_t slaveAddress,uint8_t command)uint16_t data;/Data storage(DataH:DataL)uint8_t Pec;/PEC byte storage uint8_t DataL=0;/Low data byte storage uint8_t DataH=0;/High data byte storage uint8_t arr6;/Buffer for the sent bytes uint8_t PecReg;/Calculated PEC byte storage uint8_t ErrorCounter;/Defines the number of the attempts for communication ErrorCounter=0 x00;/Initialising of ErrorCounter slaveAddress=1;/2-7 位表示从机地址 do repeat:SMBus_StopBit();/If slave send NACK stop comunication-ErrorCounter;/Pre-decrement ErrorCounter if(!ErrorCounter)/ErrorCounter=0?break;/Yes,go out from do-while SMBus_StartBit();/Start condition if(SMBus_SendByte(slaveAddress)/Send SlaveAddress 写命令 goto repeat;/Repeat comunication again if(SMBus_SendByte(command)/Send command goto repeat;/Repeat comunication again SMBus_StartBit();/Repeated Start condition if(SMBus_SendByte(slaveAddress+1)/最低位 Rd=1 表示接下来读数据 goto repeat;/Repeat comunication again DataL=SMBus_ReceiveByte(ACK);/Read low data,master must send ACK Da

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开