历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2020年10月10日 | 单片机非接触式智能测温系统程序

发布者:静心悠然 来源: 51hei关键字:单片机  非接触式  智能测温系统 手机看文章 扫描二维码
随时随地手机看文章

摘要:

本系统以单片机STC89C51为核心,使用红外传感器作为感应器,检测是否有人要进行温度测量,将检测的结果转化为电信号传输至单片机中。单片机再进行判断是否启用红外测温传感器进行温度数据采集。将采集的数据送至单片机进行计算、处理后传输到OLED显示屏进行显示,并且由MP3播放器进行播报温度是否正常。


二、系统硬件的具体设计与实现

   2.1系统原理和框图

非接触式智能测温系统的硬件组成如下图2-1所示。本系统主要由STC89C51单片机及其外围电路、红外检测传感器、红外测温传感器、显示装置、MP3播放器等五部分组成。单片机循环检测由红外传感器检测传输来的电信号,据此产生的电信号来判断是否有人,同时红外测温传感器进行相应的工作方式。当检测到有人靠近时,红外测温传感器开始运行,此时OLED显示屏上将会显示当前检测者的温度,并且进行语音播报温度是否正常(体温在36.2°—37.2°之间播放:体温正常且绿灯亮起;否则,播报体温异常且红灯亮起)。如果没有人靠近,OLED显示屏将会在2秒之后进行熄屏。此时红外传感器继续检测是否有人。

                                        硬件框图.png

图2-1系统设计框图


2.2主控芯片

该作品采用了STC89C51作为控制核心,对每个模块传送过来的数据进行处理并发送。该单片机是一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。内部看门狗定时器、低电压复位和低电压检测等内部保护特性。

2.3红外测温传感器

2.3.1红外测温原理

红外测温系统是采用红外测温模块接收不同光谱,经过STC89C51单片机处理后在OLED显示模块上显示不同数字来实现的。物体或人的不同温度反应出不同的光谱,红外测温系统发射一束光到物体或人的表面,然后反射到红外测温模块中接收,其物体或人的温度的光谱经过红外测温模块处理后,将以数字信号传给单片机,再由OLED显示模块显示出来。

2.3.2 GY-906的特点

(1)应用范围广泛,适用于恒温控制、工业系统、消费类产品、温度计或任何热敏系统。

(2)体积小巧,可安装于狭小的空间范围内,进行温度测量。

(3)易集成。

(4)3V和5V电源电压。

(5)节能工作模式。

(6)车用级别标准。

2.4红外感应传感器

该传感器对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收。经过比较器电路处理之后绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平)。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点。


2.5显示装置

OLED(Organic Light-Emitting Diode)有机发光二极管又称为有机激光显示、OLED显示技术具有自发光的特性、采用非常薄的有机材料涂层和玻璃基板、当有电流通过时、这些有机材料就会发光、而且OLED显示屏幕可视角大、功耗低、OLED由于同时具备自发光、不需背光源、对比度高、厚度薄视角广、反应速度快、可用于挠曲面板、使用温度范围广、结构及制程等优异之特性、先接触的1286屏都是LCD的、需要背光、功耗较高,而OLED的功耗低、更加适合小系统、由于两者发光材料的不同、在不同的环境中、OLED的显示效果好、模块供电可以是3.3v也可以是5v、不需要修改模块电路、OLED屏具有多个控制指令、可以控制OLED的亮度、对比度、开关升压电路等指令、操作方便、功能丰富、可显示汉字、ASCII、图案等、同时为了方便应用在产品上、预留4个M3固定孔、方便用户固在机壳上。

2.6 MP3播放器

YS-M3语音播放器的特点有:

(1)触发一次播放一次。

(2)9个触发端口,直接触发播放。

(3)结合单片机IO口编码触发播放31首MP3。

(4)内部带3W功放,满足大部分应用要求。

三、系统软件设计

3.1 程序描述

程序中主要用到的知识点有:单片机定时器、红外测温传感器的I2C通信方式和温度计算、OLED的显示、延时函数的调用以及LED灯的亮灭等。其中,单片机中的定时器尤为重要,主要用于产生固定时间,也可以作为UART等外设的频率发生器。

3.2 程序设计思路

红外感应传感器一旦检测到有人靠近,红外测温模块开始采集温度数据并送至单片机进行计算,再将单片机计算出来的数据进行比较,若在正常范围值,则单片机发送一个低电平信号到MP3播放器进行播报“体温正常”且绿灯亮起。否则,播报“体温异常”且红灯亮起。同时,OLED显示屏也将从单片机得到处理完的温度数据进行显示当前检测温度,若在两秒后没人检测温度,OLED显示屏将会熄灭。此时红外感应传感器持续检测是否有人。

3.3 程序流程图

作品的程序流程图如下图3-1所示,红外感应传感器一旦检测到有人,将会发送一个低电平信号到单片机中,单片机即发出开始信号START,紧接着在总线上发出寻址信号(AddressByte),其地址信息的读/写控制位为1时,表示对GY-906进行读操作。单片机接收到GY-906的应答信号,通信建立起来,接着GY-906发送温度数据的高8位。单片机则开始一位一位的接收GY-906发出的温度数据,然后保存,完成8位数据接收后,单片机便发送一个应答信号。GY-906收到应答信号后,再发送温度数据的低8位。单片机收到并保存低8位数据后,单片机在紧随的下一个周期拉高SDA,发送不应答信号。由此单片机将得到十六位二进制数并加以处理,变成十进制的BCD码,最后通过显示屏显示出来。



             软件流程图.png

            图3-1系统程序流程图


四、系统创新

1、相对于额温枪而言,该作品采用了智能感应,实现了非接触式红外测温,可以有效地解决检测者被感染的问题。

2、在OLED显示温度的基础上,增加了智能语音播报系统,免去了人眼去获取数据的步骤。

3、在GY-906红外测温的探头上添加了菲涅尔光学透镜,增加了红外探头的测试距离,也使整个测试系统更加稳定。

五、相关调试

5.1 电前检查

任何电子电路在组装好之后,都必须要进行线路检查,以免出现短路。检查的方法就是按照一定顺序对照着电路图进行逐级检查,其中要特别注意电源是否连接正确,电源与地是否有短接,集成电路和晶体管的引脚是否连接正确,用手轻轻触动一下元器件看焊点是否焊牢等等。

5.2 通电检查

将所需电源电压数值先调试好之后,就可以接通电路电源。电源接通之后,先观察电路是否出现异常现象,例如出现冒烟、异常气味以及器件发烫等等。如果出现上述异常现象就应该立即断开电源,在确保 排除故障后才能再次接通电源。然后,测量每个集成块的电源引脚电压是否正常,确保集成电路已进行正常的通电工作。

5.3 软件调试

硬件调试完之后还要进行软件调试,就是将程序写入到单片机的存储器中来实现整个实物的设计功能。

六、结论

体温数据需高度准确,以利于医护人员及时采取防控措施。在体温筛查中,应用非接触式智能测温系统进行体温初步筛查安全、有效,测量时间短,节约时间,降低感染风险,节省工作人员劳动量等。

在此次非接触式智能测温控制系统的设计中,让我感觉到了单片机应用的广泛性,它很贴切我们的日常生活,应用无处不有,它并不是想象中的那么复杂。在设计中,要充分了解所用芯片的使用条件及输入输出的特性,这样才能避免因使用错误而多走弯路。电路设计部分应该有的精神就是广集资料。只凭借自己头脑中的知识是远远不够的。哪里出现了问题,就要翻书本,或上网查资料。当然也要开动自己的脑筋怎样使系统电路更完美。例如我的设计是非接触式智能测温系统。有非接触式测温,自然会用到红外测温传感器,每种红外测温传感器都有不同的特性和功能,你就要进行选择了。例如对红外测温传感器的选择,你就要选择你所熟悉的、所了解的。在电路设计时,应充分发挥单片机的记忆运算、判断控制能力,避免采用复杂的、稳定性较差的模拟电路。为了使微机控制系统各种硬件设备能够正常运行,有效地实现作品的相关功能,除了要设计合理的硬件电路,还必须要有高质量的软件支持,两者相辅相成,共同维持系统的正常运作。

#include "reg52.h"

#include "stdio.h"

#include "LQ12864.h"

#include "GY906.h"

#include "eepom.h"


sbit  hongwai=P1^5;                                  //红外感应传感器

sbit MP3_1 = P2^4;                                              //语音播放异常

sbit MP3_2 = P2^5;                                                  //语音播放正常

sbit LED1 = P1^2;                                                  //红色LED灯

sbit LED2 = P1^3;                                                  //绿色LED灯


float  wendu_change;

unsigned int temp_int;

unsigned int  temp ;

unsigned int ceshi ;

uint temp_[3]={0};

uint biaohao_num_[3]={0};

uchar diaplay_5s = 0;                        //读取显示

uchar flage_5s;                         //5s计时

uint zhancun;

uchar first_flage = 1;



/*


红外感应传感器 P1^5;

语音播放       P2^4/P2^5

LED            P1^2/P1^3


oled  端口定义

sbit SCL_OLED=P1^0; //串行时钟

sbit SDA_OLED=P1^1; //串行数据


//GY-906 端口定义

sbit  SCL=P2^6;// 时钟线

sbit  SDA=P2^7;// 数据线

*/




void oled_gd_diaplay()

{

        

                OLED_P16x16Ch(70,0,0);         //温

                OLED_P16x16Ch(90,0,1);        //度

                OLED_P16x16Ch(110,0,2);        //:

//                dxzm('.',70,0);                        //.

        

}


void oled_wendu()

{


        char i;

        if(temp > 0)

        {

                        if (0 == diaplay_5s)        

                        {

                                

                                        OLED_P16x16Ch(0,0,3);          // 闽

                                OLED_P16x16Ch(20,0,4);             // 南

                                        OLED_P16x16Ch(40,0,5);          // 科

                                OLED_P16x16Ch(60,0,6);             // 技

                                        OLED_P16x16Ch(80,0,7);          // 学

                                OLED_P16x16Ch(100,0,8);             // 院


                                OLED_P16x16Ch(0,4,0);              // 温

                                OLED_P16x16Ch(20,4,1);             // 度

                                OLED_P16x16Ch(40,4,2);             //  :

                                

                                        //我们要达到的体温精度是0.1,因此要有三位数

//                                dxzm(((int)(temp)/100)+48,50,0);

                                dxzm(((temp)/100)+48,60,4);          //进行显示百位        

                                dxzm(((temp)/10%10)+48,70,4); //进行显示十位

                                dxzm('.',80,4);                                  //进行显示.

                                dxzm(((temp)%10+48),90,4);          //进行显示个位

                        }

                        

                        else                                       //读取温度标志位等于 1

                        {

                                        oled_gd_diaplay();                                 

[1] [2] [3]
关键字:单片机  非接触式  智能测温系统 引用地址:单片机非接触式智能测温系统程序

上一篇:51单片机+12864液晶屏贪吃蛇
下一篇:自制BMS监控仪通过485通讯读BMS信息并显示在LCD2004上

推荐阅读

早在去年6月,苹果首席执行官库克已公开承认苹果正在研发自动驾驶系统,而目前苹果也申请了有关汽车的多项专利,最新的一项专利申请显示,苹果正在开发AR挡风玻璃系统。值得一提的是,这项专利技术允许乘客通过该AR显示系统接打FaceTime通话。今年7月,苹果申请了一项专利,涉及乘客和自动驾驶汽车的“个人行车舒适偏好”(personal comfort profiles)...
2014年和2015年,随着IBM和微软(Microsoft)等科技巨头的巨额投资,以及随之而来的大量宣传,人工智能和机器学习在人们的视野中一炮走红。弗雷斯特研究公司(Forrester Research)分析师克雷格•勒•克莱尔(Craig Le Claire)表示,如今,人工智能/ML市场似乎正在“后退”。Le Claire在一个由Automation Anywhere赞助的活动上发表讲话时指出,智能软件机...
又到了锂电池技术全面突破的时候了,这次是中美科学家联手合作,研发的新型黑鳞锂电池充电9分钟可以充入80%电量。中科大官网报道,这项研究是由中国科学技术大学季恒星教授研究组与美国加州大学洛杉矶分校、中国科学院化学研究所等机构合作的,论文已经发表在10月9日的《科学》杂志上。这次的研究使用了黑鳞作为电池材料,它是常见的白磷的同素异形体,具...
英特尔首席执行官Pat Gelsinger在接受BBC采访时表示,由于英国脱欧,该公司不再考虑将英国作为设立芯片厂的候选国,而在英国脱欧之前,该公司显然已经定下了这件事。现在,该公司正在另一个欧盟国家寻找一个地点,以投资950亿美元建立一个新的半导体工厂,以及对其在爱尔兰的现有工厂进行升级。尽管英特尔在英国脱欧之前还没有就选址做出任何确定的决定,...

史海拾趣

问答坊 | AI 解惑

企业很难阻止iPhone接入公司网络

Andrew Jaquith日前表示,企业很难阻止iPhone手机接入公司网络。因此,与其抵制iPhone,还不如做好支持准 备。 苹果iPhone手机于6月29日在美国上市,尽管销量不错,但其安全性也遭到了批评家的指责。事实上,企业担心iPhone影响企业网络安全 ...…

查看全部问答∨

介绍RFID技术前沿的一篇文章 很经典

介绍RFID技术前沿的一篇文章 很经典 …

查看全部问答∨

大竞争时代 2012年液晶面板将出现供给过剩

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 在中国,京东方科技集团(BOE Technology Group)及华星光电技术(Shenzhen China Star Optoelectronics Technology)等本土企业将从2011年下半年开始利用第7.5代(底板尺寸为1950mm×2250mm) ...…

查看全部问答∨

VirtualAlloc,分配的空间大小可以超过32MB吗?

我的开发板有128M的内存。 OS分配32MB RAM分配32MB 显存分配64MB 这样可以吗? 显存的空间需要用VirtualAlloc来做,我的bsp里是这么做的,但是它限制大小为小于32M。…

查看全部问答∨

求助:F2810 GPIO输入问题

F2810 的引脚CAP1_QEP1、CAP2_QEP2、CAP3_QEPI1作为GPIO信号输入端,我设置了:     GpioMuxRegs.GPAMUX.all = 0x00;       GpioMuxRegs.GPADIR.all = 0xFF00;       GpioMuxRegs.GPAQUAL.al ...…

查看全部问答∨

用IAR调试一段程序,出现如下状况,请问是什么意思?

用IAR调试一段程序,出现如下状况,请问是什么意思?   PS:我没设置断点   [ 本帖最后由 zzbaizhi 于 2012-2-24 14:57 编辑 ]…

查看全部问答∨

TPS61040升压时-9.1V稳压管发烫严重

各位硬件大神,出来帮我看哈呢。 -7V这路9.1V的稳压管一接上就发烫,且越来越烫。是什么原因呢,当不接稳压管和其相连的电容的时候,输出大约-20V的样子。另一路16V和10.4V输出正常。TPS61040的电感用的是工字型的100uh带屏蔽的功率电感。求分析一 ...…

查看全部问答∨

关于SD24的中断

我用的msp430afe253的芯片,之前在调SD24中断时,需要运行时暂停一下才能进中断,当时设置的时钟源为SMCLK。后来无意中将时钟源设置在MCLK,中断完全正常。然后我又将SMCLK和MCLK的时钟都是用DCO,依然SMCLK不正常,MCLK正常。然后我就搞不清楚原因 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved