【深大电赛】-基于Arduino Nano的人体温度检测电路 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【深大电赛】-基于Arduino Nano的人体温度检测电路

简介:基于ATMEGA328P的人体温度自动检测电路,用计算机串口模拟传输传感器数据可,以实现识别人体并自动跟踪测温的功能 在第十二届深圳大学电子设计大赛中获得二等奖

开源协议: BSD

(未经作者授权,禁止转载)

创建时间: 2020-06-18 14:37:48
更新时间: 2021-10-31 22:12:06
描述
2020年深圳大学电子设计大赛作品决赛报告 高/低年级组: 高年级组 题目名称: 基于ATMega328P的自动人体温度检测显示电路设计 队名: 红糖姜茶 队伍成员: 电子与信息工程学院 郭韬略 电子与信息工程学院 曾海霖 电子与信息工程学院 王浩丞 ### 摘要 【摘要】本文提出一种一米以内无接触自动跟踪测量人体体温的方案。方案中采用HC-SR501距离传感器对两米以内进行人体靠近检测,AMG8833红外阵列传感器作为测温传感器,实现对60度视野角,一米以内进行头部检测跟踪并测量温度。AMG8833通过I2C将阵列温度信息传给ATmega328pb处理器,其中预先烧录的算法会对温度信息进行分析处理,并将结果输出给相应端口,如步进电机,蜂鸣器,温度显示电路等。市面上高精度的人体测温成像仪价格昂贵,并且在大规模人员流动的场合比较合适,对于常见的人流分散并狭小的通道入口,配置上述测温成像仪并不现实。本文使用的价格便宜,外观小巧的AMG8833的输出温度准确度在5m内为2.5度,随距离拉进,准确率会提高,并且我们在处理器内部使用算法对温度进行修正,预计最终对一米以内的人体头部进行温度测量的准确率能达到1度。 【关键词】头部跟踪;红外阵列传感器;非接触式体温测量 ### 目 录 1.需求分析 2. 方案选择与论证 3. 系统架构及功能描述 4. 理论分析与计算 5.电路图和PCB 6.调试与测试结果 结束语 参考文献 ## 自动人体温度监测显示电路设计 电子与信息工程学院电子科学与技术专业 红糖姜茶队 ### 1.需求分析 传统热传递式测温方式,如使用体温计,对耗时、人员的要求高,很不利于对大规模人群进行快速测温。疫情以来对快速测温的需求变得非常大,一种自动、快速的人体测温方案需要被提出,做到能高效地检测出有发热症状的疑似患者,起到控制疫情的效果。市面上的额温枪和耳温枪能实现对个人体温的快速测量,但由于其对检测距离的要求很高(一般要求在15cm以内,才能保证精度),无法实现机器自动测量,所以给测温人员带来了一定风险。并且,行走的被测人员需要停下来接受检测,这也带来不必要的时间损失。 为了实现全自动、远距离、对大规模被测人群实现快速测温,市面上已存在多种人体测温热成像仪 [1]。他们利用高分辨红外成像传感器、黑体、人脸跟踪算法等,能实现高精度(0.3°C)人体测温,但是缺点在于价格昂贵,难以做到大规模部署。而对于常见的狭长通道(如地铁站检票闸门)、人流并非十分密集的区域,部署此类热成像仪便过于浪费。 为此,我们设计出一款兼顾成本和精度的全自动式快速跟踪测温电路,其主要性能和特征遵循以下要求: 电路主要集成在一块pcb板上,体型小巧; 检测有人员通过,启动测温; 同步移动测温传感器,对被测人体头部进行跟踪; 连续测温一秒以上,整个检测过程用时尽量短; 被测人体温度高于37.8°C则启动报警。 此方案适用于人流相对轻松的通道,能够实现被测人员无停留通过测温通道,节约了时间,进一步减少了交叉感染的风险。相对于大型人体测温热成像仪来说,本方案采用的传感器价格低得多,整体电路和逻辑计算简单,功耗小,并且在检测范围内准确率上也能达到较为满意的结果。 ----- ### 2. 方案选择与论证 对测温传感器的选择: 主流的非接触式测温方案都使用热电堆作为测温传感器,其内的热电偶通过接收外界红外辐射的强弱,来检测被测物体的表面温度。通过此原理,我们可以设计两种测温方案,下面将介绍这两种方案并做出比较。 #### 方案一: 传统简单热电堆传感器近距离测温 此类型的传感器的热电堆的热电偶数量较少,一般只能测量少量被测点的温度。在近距离测温的情况下,由于视场角内无其他非目标物体的干扰,测量的精度一般比较高,能达到0.1°C。而在距离稍远时,视野内非目标物体的温度会对整个测量的准确度造成极大干扰,不适合用作远距离小物体的温度测量。热电堆传感器电路结构较简单,价格也相对便宜。其外观和视野如图一所示,它的四个引脚,分别可得到热电阻和热电堆两个电压值。 ![image.png](//image.lceda.cn/pullimage/DMn4e97F4hmzGbSmlw42zC5p7onKSGxXDwxsWujU.png) 图一:简单热电堆传感器示意图 #### 方案二: 红外阵列热电堆传感器测温 红外阵列传感器[2]利用n×n的像素点,每个像素点的视场角相对较小,都能独立实现对传感器整体视场角内的某一片区域进行温度测量,从而可以组成一幅n×n的热成像图。当近距离测温时,目标越靠近传感器,所测温度越高并且越准确 [3],每个像素点所测的温度都是目标物体的温度,可以计算出被测物体温度的平均值,测量的准确率较高。随着测温目标离传感器的距离变远,传感器视野变大,但一定范围内由于少数像素点仍然不受非被测物体的干扰,可以通过计算n×n范围内像素点温度的最大值来估计被测物体的温度,这样的误差也不至于太大。红外阵列热电堆传感器的价格比普通热电堆传感器贵上很多倍,但由于优秀的集成工艺,他们在体积上相差无几。其外观和视野如图二所示,它的外观跟传统的热电堆传感器很像,但每个电热堆检测的只是红外阵列中的一个像素点。其内部电路集成度很高,电压数据已经经过处理,引脚通过I2C通信可以直接得到温度。 ![image.png](//image.lceda.cn/pullimage/dWVBCw6J3UFNUZgXAxEnxpMiV6O1TbO6HSs5vkF2.png) ![image.png](//image.lceda.cn/pullimage/ry4NlIoqplr4sUaG1HTppAQoJs5CAxx87CLtWvaw.png) 图二:红外阵列电热堆传感器示意图 本实验的要求是要求事先检测到有人员通过,然后再启动测温,而对于方案一,由于远距离测温的精度太低,我们无法实现对人员靠近的判断(比如一个人从旁边经过,也可能被误判,而启动测温),所以必须额外增加一个测距仪,用来判断是否有人正在靠近。当测温电路开启后,由于需要近距离测温才能保证精度,固定的传感器无法在段距离内达到持续测温时间的要求,所以必须采取识别头部并跟踪的办法。方案一无法识别被测人的头部,测温物体不确定并且无法跟踪,需要添加其他传感器(如摄像头)辅助识别,这样使得成本上升,还需要强大的处理器来对图像进行处理。方案二的传感器输出是一个n×n的热像图,不仅可以测温,还具备简单的图像特征,非常适合做对视野范围内的被测目标做识别与跟踪。 综上,红外阵列热电堆传感器虽然价格不低,但它的功能十分适合本实验的要求,所以我们选择它作为我们的测温传感器。 对跟踪方式的选择: 为了满足对连续测量时间的要求,我们需要设计跟踪电路,实现对目标物体的准确跟踪,即保证传感器移动的速度几乎等于物体移动的速度。 ##### 方案一:主动式距离跟踪 此方案通过测量传感器与目标物体的距离,并使他们之间的距离保持在一定范围内来实现跟踪的功能。具体方案是加装传感器测目标物体的距离,并加装电机,让传感器始终和被测物体保持相同的水平速度,直到一个物体测温完成转至测下一个物体的温度。 ![image.png](//image.lceda.cn/pullimage/yyneflUuEjqVLwQutbA8yJsAUErfOsrn7h6Uckut.png) 此方案的优点在于少量目标物体能够同时前后进入通道,传感器一一识别与近距离跟踪,依次实现对所有被测物体较为精准的体温测量。难点在于需要保持传感器与被测物体的距离近,而且要维持相同的速度一段时间,并且需要加装测距的模块,总体的算法较为复杂。而传感器是运动的,功耗也必定会很大。 ##### 方案二:半主动式角度跟踪 此方案中,测温传感器被固定在通道的尽头处,传感器正对着被测物体前进的方向。当被测物体逐渐靠近时,传感器测得的温度升高。当温度升高到达某个阈值时,开始正式测体温并记录。与此同时,启动跟踪电路,识别被测物体并转动传感器,使它始终对准被测物体,直到无法转动或者无法检测到被测物体为止。测温一旦完成,立即回归初始角度,开始第二次检测。 ![image.png](//image.lceda.cn/pullimage/48YjRpypKCL4Lv1nkxO0wHcf1595rV9hgVrlpnlX.png) 测温传感器在此方案中处于半主动状态,即要求被测物体必须进入到某个范围内,跟踪电路才会启动。 此方案的优点在于电路功耗低,算法相对简单,传感器的大视野也使得跟踪时具有较大的容错度,不一定要十分精准。但是,由于传感器与被测物体的距离一直在变化,测温的精度会下降,并且检测时长也不一定能控制得好。 权衡这两者方案的优缺点后,我们决定牺牲精度,选择算法相对简单、功耗低的方案二。因为要保证传感器和被测物体的速度比较困难,而且移动传感器所带来的故障风险也很大,难以保证连续测温的有效进行。 综上所述,我们选择红外阵列热电堆传感器作为整个测温电路的核心传感器,通过半主动式角度跟踪法来保证传感器对被测物体的持续体温测量。 ----- ### 3. 系统架构及功能描述 我们选择AMG8833模块来作为我们的红外阵列热电堆传感器模块,该模块集成了松下家的一个8×8的红外阵列热电堆传感器Grid-Eye,视野角为60度,其内部采用松下的MEMS工艺,集成了完整的信号处理电路,使得每秒钟最快可输出10帧的热像图,输出端可通过I2C接口与微处理器进行通信。微处理器使用的是ATmega328,具有32KB可编程闪存,32×8bit通用寄存器,最大20MHz的时钟。 ##### 假设和设定 人体温度显著高于环境温度(室内环境下通常是这样),且额头部分的温度是人体温度最高的部分(正常人类通常是这样); 测温入口为长度大于三米、宽一米的通道,被测人员不会从其他位置突然出现在测温区间内。现实生活中很多单向,较长的通道,所以此假设符合实际; 测温通道只能单人通行,即被测人甲通过后,被测人乙才能进入通道。在后续的改进中,此假设可以放宽松; 被测人速度在正常的范围内(1~1.5m/s),移动速度过快的行人无法保证检测时间大于1s; 测温区间内无其他热源,如正在工作的微波炉,热水壶等。在后续的算法改进中,此假设可放宽松。 #### 整个测温流程图 ![image.png](//image.lceda.cn/pullimage/mMRhM7dSnmmMQZMMW2aUbQjhUIObfuLuTzV3dBo5.png) 图三:测温流程图 打开电源之后,接入的人体传感器(此处使用的传感器型号为HC-SR501)检测其正对方向100度角的2m之内是否有红外热源(人体)移动,如果没有人体移动,则AMG8833不启动,节省功耗与算力。如果有人体移动,则启动AMG8833,检测温度。将检测出的温度进行数据处理之后得到的结果即为此人的额温,将得出的结果与设定好的阈值(37.8℃)相比较,超过阈值,蜂鸣器启动并报警。 ----- ### 4. 理论分析与计算 #### 一、传感器部分原理 任何物体都会发出红外辐射,辐射功率随着物体表面温度的升高而增加。基于这种关系,热电堆可以通过测量接收到的红外辐射精确确定物体的温度。热电堆的核心是多个热电偶,他们的工作基于塞贝克效应。热电偶接收到红外辐射后,其中红外吸收膜的温度上升,与冷端形成温差,串联的多个电热偶可以输出与被测物体温度有关的热电动势。此热电势与用于测量环境温度的高精度热敏电阻(通常使用NTC 或者Nickel RTD)的电压进行比较,便可计算出目标物体的温度。 热电堆 热电堆输出小电压,其电压值VTP被以下因素决定: 由目标物体温度T¬obj 目标物体辐射率ε¬obj 传感器温度Tsen(传感器温度不等于空气或者PCB板温度) 仪器可靠性因子s 滤波修正因子δ 热电堆的输出电压与目标温度之间的关系[4]: ![image.png](//image.lceda.cn/pullimage/By9pEUsVWgcUOxlKPj3C0x9ObQISL4HL0W0YyCTH.png) 热电阻 随着温度的变化,热敏电阻的阻值发生变化,用来检测传感器内部的温度。通常,我们可以把它当作环境温度。NTC热敏电阻是最常用的测温型热敏电阻,电阻阻值随温度按指数型变化(如图一)。它的非线性使得它在测量大范围的温度时准确率降低,最常用的测温区间是0-50。 热敏电阻的电阻与温度的表达式[5]为: ![image.png](//image.lceda.cn/pullimage/vBG737saLLGd4rm1azRPYhKSCkVBGoEvpgmi6r8J.png) 其中Rth(T)是温度为T时热敏电阻的阻值,B是热敏电阻的敏感度,R25是温度为25°C的电阻值。 ![image.png](//image.lceda.cn/pullimage/5RdtTJ3N0yAgq8oMrIh066t4TEWwc1ArbQmMJfkN.png) 图四:NTC热阻的R-T曲线 测温传感器的校准 测温时,首先计算出热敏电阻的阻值,再查R-T表得到此时的环境温度Ta,在V-T表中查找到Ta环境温度下VTP电压对应的温度值Tobj即为目标物体的温度。但是由于传感器的响应电压、NTC的阻值等都会有偏差,利用以上测温方法必定会导致实际的测量值不准确,存在某个特定的偏差,所以需要对传感器进行校准以消除这种偏差。 校准的简单方法[5]如下: 将传感器放入25°C恒温水槽中静置20分钟,使得传感器本身达到25°C。注意传感器要与水隔离。 读取NTC电阻的阻值,将其与25°C下对应的参考阻值进行比较,产生修正系数α,通过热敏电阻的校准消除热敏电阻的偏差。 用传感器对准37°C的黑体目标进行温度测量,得到热电堆由于温差导致的热电动势,对比V-T表,产生修正系数β,通过对热电堆的校准消除热电堆的偏差。 引入修正系数后,可直接通过R-T表和V-T表得到被测物体的实际温度。 由于我们使用的是AMG8833集成板,内部功能模块图如图二所示,其热电堆传感器、外部放大电路,ADC等都被集成在Grid-EYE上,校准与修正工作都已经完成。 ![image.png](//image.lceda.cn/pullimage/XMHfjI6UTHItdiZEzkQIyfNN8klSSSjX0YnFiStT.png) 图五:“Grid-EYE”的内部功能图 #### 二、自动测温的实现 当8×8的温度点阵输入到MCU中后,对应指令对所测温度进行处理,简单流程如图六所示。 ![image.png](//image.lceda.cn/pullimage/tv36L1tgLWjitLVR9a4U8Xj5gS69WLnAQA0vvatI.png) 图六:温度处理流程图 当探测到人体,AMG8833启动之后,会以每秒10帧的速度返回一个8x8的二维数组,这里先对每一列的数组进行一次大小比对,把每一列的最大值选出来,得到一个有8个元素的一维数组,接着对该一维数组进行大小比对,选出最大的数字所在的位置,这个点就是传感器的左端下一次应该对准的位置,启动步进电机,将传感器转动至相应的位置,开始下一次测温。重复10次(1秒)之后,将每次测温取到的最高温度取平均值,即为被测人的实际额温。 具体算法实现如图七、八所示,最后的j即为最高温所在的列数。 ![image.png](//image.lceda.cn/pullimage/VX5dJtqmPYqyuip8TANkLmKredIgS3jVFWO03nVz.png) 图七:第一次大小比对的代码 ![image.png](//image.lceda.cn/pullimage/Ph62PcbkfhJN5FeJqQo8fDVDclfExWtnpIx2b8iA.png) 图八:第二次比对大小的代码 ----- ### 5.电路图和PCB 主电路的原理图如图九所示,每个模块对应相应的功能都已经在原理图上标出。主电路的PCB板如图十所示。 ![image.png](//image.lceda.cn/pullimage/nZaoRN0tMzOakytxwuaqdmkz4ZSt65Bnpp2A89eW.png) 图九:主电路原理图 ![image.png](//image.lceda.cn/pullimage/8jMlCfxMmgJLQ8LxGTwUjGMjRwx4d765wQLitXJZ.png) 图十:主电路PCB 测温模块的原理图和PCB如图十一、十二所示。 ![image.png](//image.lceda.cn/pullimage/e31l2GMXyYym8jAG5IctdyWxoNI8hgoC45zEL5s0.png) 图十一:测温传感器原理图 ![image.png](//image.lceda.cn/pullimage/98to5ChKAmNcZx6VuYWPDGSv7kOW6aVvhoejUcaP.png) 图十二:测温电路PCB >在本次测试使用的程序中,为了避免调用步进电机而造成的进程阻塞,将控制步进电机的程序交给下位机(Arduino Nano)处理,输出引脚为板上的SDA、SCL >下位机的输入引脚为:SDA>>PD4,SCL>>PD5 ----- ### 6.调试与测试结果 由于测温组件缺货原因,我借用了朋友的MLX90640,由因为该传感器的通信波特率太高,无法适配,于是决定用电脑模拟输出串口数据,根据资料书: ![image.png](//image.lceda.cn/pullimage/qopxzHyTK3GYuY5Rq4aYRmwOqXvtCn6gnJKS7lcO.png) 由于数据量过于庞大,手工输入太过麻烦,这里将串口信号减少到8x8的网格,每帧共136字节。 ![image.png](//image.lceda.cn/pullimage/zktwzsjbE2cyv8vqsJL3Sloba6IMA0Xce4dUB1qD.png) 这是模拟串口输出的数据表,为了方便调试,将背景噪声变为30℃。 调试过程:首先通过串口发送帧头与数据量,模块返回Ready,表明识别到帧头,开启一次温度识别扫描。 ![image.png](//image.lceda.cn/pullimage/RxluhINLjwtMYGZDVucxgbRjiyqhllH10TqdTDEh.png) 发送八次数据之后,计算出最高温度值:34.30度 ![image.png](//image.lceda.cn/pullimage/2nbn2lpd1B8AwX2HKcYRconXvQxw4TfOxLjowGIv.png) 如果测量出的温度小于设定的环境温度,则不会显示温度 ![image.png](//image.lceda.cn/pullimage/f572O6vo6Gc14upAIjKyIhW2wcJTro3iC5KYNXVv.png) 当人体在传感器视野内走动时,传感器会跟随人体进行移动 ![image.png](//image.lceda.cn/pullimage/1tuvjVZYnG5NpZ6irNaAnOwz59U16Rhx2MuaBRpN.png) ![image.png](//image.lceda.cn/pullimage/bDwYayxdnngJPbyH0Rp3wThHS1ttQmtnL4qsc7U6.png) 当人体走出传感器范围后,传感器自动归位 ![image.png](//image.lceda.cn/pullimage/ergCNHvzMRygbvShOnUtsSSMoCIfyrOvIqQ9VLzj.png) 当数据内的温度出现超过37.8度时,通过串口输出报警信号,同时对应的蜂鸣器进行报警。 ![image.png](//image.lceda.cn/pullimage/UZDJvxS4UKPqUSOtRDbxd4hXy4XEXogsU5yFGJ3N.png) ----- ### 结束语 本次比赛为线上形式,尽管队员之间的配合存在很大的问题,我们尽力克服种种困难,细致分工,最终能在截止前完成比赛的基本任务。我们的选题:自动测温系统,比较新颖,收到的要求比较严格,在与市面上已经存在的红外人体测温成像仪加黑体相比,我们做出来的小型系统在性能上几乎无法与之相比。为了保证任务能顺利完成,我们最终选择牺牲测温精度,采用AMG8833这个小巧廉价的热成像仪对2m以内的人体进行测温再通过修正算法,尽力将误差降低。 【参考文献】 [1]艾睿电子全自动红外人体测温系统. http://www.iraytek.com/products/tk/Xmini/ [2]M. Kimata, Trends in small-format infrared array sensors, Sensors IEEE (2013) 1–4 [3]A. Hayashida, V. Moshnyaga and K. Hashimoto, "The use of thermal ir array sensor for indoor fall detection," 2017 IEEE International Conference on Systems, Man, and Cybernetics (SMC), Banff, AB, 2017, pp. 594-599, doi: 10.1109/SMC.2017.8122671. [4] THERMOPILE SENSOR FOR CONTACTLESS TEMPERATURE . TE connectivity. https://www.te.com/content/dam/te-com/documents/sensors/global/analog-digital-thermopile-application-note.pdf. [5] HY16F3981 紅外線測溫應用說明書. 紘康科技.http://www.hycontek.com/hy_mcu/APD-HY16F025_TC.pdf
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity BOM_Supplier BOM_Supplier Part
1 L1SS355T1G D1 SOD-323_L1.8-W1.3-LS2.5-RD 1 LCSC C12737
2 300 R1,R3 R0603 2 LCSC C332113
3 10uH L1 IND-SMD_L4.0-W4.0 1 LCSC C354590
4 XKB8080-Z SW1 SW-TH_6P-L8.0-W8.0-P2.50 1 LCSC C318860
5 ULN2003 Q2 SOP-16_L10.0-W3.9-P1.27-LS6.0-BL 1 LCSC C411052
6 1K R2 R0603 1 LCSC C73797
7 复位开关 SW2 KEY-SMD_4P-L6.0-W6.0-P4.50 1 LCSC C255812
8 MM74HC595MX U2,U4 SOIC-16_L9.9-W3.9-P1.27-LS6.0-BL 2 LCSC C128369
9 CH340C U1 SOP-16_L10.0-W3.9-P1.27-LS6.0-BL 1 LCSC C84681
10 ATMEGA328PB-AU U3 TQFP-32_L7.0-W7.0-P0.80-LS9.0-TL 1 LCSC C132230
11 HDR-M-2.54_2x3 J3 HDR-M-2.54_2X3 1 LCSC C65114
12 27pF C8,C9 C0805 2 LCSC C237200
13 SR420561N LED1 LED-SEG-TH_12P-L50.3-W19.0-P2.54-S15.24-BL 1 LCSC C109200
14 U-F-M5DD-W-2 USB1 MICRO-USB-SMD_MICRO-USB-A17 1 LCSC C145793
15 FMB1265-05 BUZZER1 BUZ-TH_BD12.0-P7.60-D0.6-FD 1 LCSC C482355
16 16MHz X1 OSC-SMD_4P-L2.5-W2.0-BL 1 LCSC C431149
17 10uF C6 CAP-SMD_L3.2-W1.6-R-RD 1 LCSC C7171
18 HDR-M-2.54_1x2 J4 HDR-M-2.54_1X2 1 LCSC C124375
19 HDR-M-2.54_1x3 J2 HDR-M-2.54_1X3 1 LCSC C180248
20 100nF C3,C7,C2,C4,C5,C1 C0805 6 LCSC C482473
21 BCX56,115 Q1 SOT-89-3_L4.5-W2.5-P1.50-LS4.1-TL-CW 1 LCSC C135819
22 HDR-M-2.54_1x5 J1 HDR-M-2.54_1X5 1 LCSC C358687
23 XH2.54-5AB CN1 CONN-SMD_5P-P2.54_XH2.54-5AB 1 LCSC C146128
24 LED绿色 LED2 LED0603_GREEN 1 LCSC C72043

展开

侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP