电科毕设 基于STM32的人体红外测温枪温度采集系统


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目

基于STM32的人体红外测温枪温度采集系统

大家可用于 课程设计 或 毕业设计

🧿 毕设项目分享:见文末!

2 主要器件

  • STM32

  • GY-906 温度传感器

  • OLED 显示器

  • 红外热释电传感器

  • TP4056 充电器模块

  • 18650 电池

  • 18650 电池座

  • 5 V DC-DC 升压转换器

  • 翘板开关 -15 × 21 毫米

  • 5 毫米绿色 LED

  • 5 毫米红色 LED

工具清单:

  • 烙铁

  • 线切割机

  • 剥线钳

3 实现效果

在这里插入图片描述

4 设计原理

在这里插入图片描述
工作原理很简单,红外测温传感器MLX90614在额头与传感器之间的距离(由红外传感器测量)匹配设定值时读取人体温度。传感器读数发送到 Arduino 进行处理,处理后的值显示在 0.96" OLED 显示屏上。

除了 OLED 显示屏外,还使用了两个 LED 和一个蜂鸣器来指示输出。

  1. 当体温正常时,绿色LED(LED1)亮,蜂鸣器鸣叫。

  2. 当体温高于 104 华氏度时,红色 LED ( LED2 ) 会亮起,蜂鸣器会发出较长时间的哔哔声。

MLX90614 红外温度传感器

MLX90614 是一款用于非接触式温度测量的红外测温仪,能够测量 -70 至 380°C 之间的温度。该传感器采用红外敏感热电堆探测器芯片和信号调节ASIC集成在一个芯片中。它基于 Stefan-Boltzmann 定律工作,该定律指出所有物体都会发射 IR 能量,并且该能量的强度将与该物体的温度成正比。传感器中的传感单元测量目标物体发射了多少红外能量,计算单元使用 17 位内置 ADC 将其转换为温度值,并通过 I2C 通信协议输出数据。

传感器测量物体温度和环境温度以校准物体温度值。MLX 90614 传感器可以读取 -40 到 125 ˚C(-40 到 257 °F)范围内的环境温度和 -70 到 380 ˚C(-94 到 716 °F)范围内的物体温度。

红外测温仪与 Arduino 的连接非常简单,因为它像许多其他组件一样使用 I2C 通信接口。
MLX90614 温度计有 4 个引脚:VIN、GND、SCL 和 SDA。

连接应如下所示:

stm32–> MLX 90614

5V —> VIN
地 --> 地
gpio2 ----> SCL
gpio3 ----> SDA

其他器件就不展示了

最后接线如下:
在这里插入图片描述

5 部分实现代码

读取温度代码

u16 SMBus_ReadMemory(u8 slaveAddress, u8 command)
{
    u16 data;
    u8 Pec;	
    u8 DataL=0;
    u8 DataH=0;	
    u8 arr[6];
    u8 PecReg;
    u8 ErrorCounter;
    ErrorCounter=0x00;// Initialising of ErrorCounter
	slaveAddress <<= 1;	//2-7位表示从机地址 从机地址左移一位,把读写位空出来	
    do
    {
repeat:
        SMBus_StopBit();
        --ErrorCounter;	
        if(!ErrorCounter) //ErrorCounter=0?
        {
            break;	//如果为0就跳出do-while{}循环
        }
        SMBus_StartBit();
        if(SMBus_SendByte(slaveAddress))//发送从机地址最低位Wr=0表示接下来写命令
        {
            goto	repeat; 
        }
        if(SMBus_SendByte(command))//发送命令
        {
            goto	repeat;
        }
        SMBus_StartBit();
        if(SMBus_SendByte(slaveAddress+1))	//发送从机地址+1最低位Rd=1表示接下来读数据
        {
            goto	repeat; 
        }
        DataL = SMBus_ReceiveByte(ACK);	//读低位数据保存到DataL 
        DataH = SMBus_ReceiveByte(ACK); //读高位数据保存到DataH
        Pec = SMBus_ReceiveByte(NACK);	//读校验数据保存到Pec  
        SMBus_StopBit();
        arr[5] = slaveAddress;	
        arr[4] = command;
        arr[3] = slaveAddress+1;
        arr[2] = DataL;	
        arr[1] = DataH;	
        arr[0] = 0;	
        PecReg=PEC_Calculation(arr);//Calculate CRC 数据校验
    }
    while(PecReg != Pec);
	data = (DataH<<8) | DataL;
    return data;
}

🧿 毕设项目分享:见文末!

**项目分享: ** https://blog.csdn.net/m0_984093

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言: 是德科技(NYSE:KEYS)是全球领先的电子测量公司,通过在无线、模块化和软件解决方案等领域的不断创新,为您提供全新的测量体验。是德科技专注于测量技术,旨在帮助科学家、研究人员和工程师精准和充满信心地应对最严苛的测量挑战。 越来越多的工程师开始选择是德科技示波器,因为它们能够帮助您: 利用屡获殊荣的示波器执行测试,从而加速将您的产品推向市场。这些示波器可以提供最快的更新速率、最深的存储器、独特的电容触摸屏,以及最广泛的示波器软件选件 利用可以信赖的测量生产出性能最高的产品。这些测量由具有业界领先信号完整性的示波器和最广泛的示波器探头提供 通过在一台主机中集成多种仪器以及轻松进行升级,实现最低的拥有成本 同时本文重点介绍了基于单片机STM32控制、Android显示的便携式数字示波器的毕业设计 数字示波器毕业设计概述: 基于单片机STM32控制的、并在Android上进行显示的便携式数字示波器。STM32单片机是一款性价比非常之高的处理器,最高时钟可达72M,完全能满足本设计的要求。采用Android设备作为显示平台,是本设计最大的一个特点。本设计的基本思路是,由单片机对ADC采样到的数据进行处理,再通过蓝牙把波形数据发送到Android设备上进行显示。同时由于Android设备都采用触摸屏,因此示波器的参数可以很方便的通过触摸屏进行设置。本设计采用Android设备取代液晶屏,并使用蓝牙进行数据传输,充分利用了Android设备的硬件资源。 由于A/D转换器的输入范围一般都比较小(低于2Vpp),不可能直接测量几十伏甚至是几百伏的信号。而且由于A/D转换器的分辨率有限,对于幅值很低的信号测量误差将会很大甚至是无法测量。所以在输入级必须要设计一个程控放大电路,以现实对信号进行不失真的处理,而后再送至A/D数模转换器,以达到A/D数模转换器的输入要求。基于本设计便携小巧的宗旨,和电路复杂度的考虑,本设计使用专用PGA芯片AD603,可以通过MCU来控制AD603的基准,进而实现不同放大倍数的调节。该电路优点是控制比较简单,且增益调节范围大,外围电路简单。缺点是成本稍微偏高。 AD603它是美国ADI公司的专利产品,是一个低噪、90MHz带宽增益可调的集成运放,如增益用分贝表示,则增益与控制电压成线性关系,压摆率为275V/μs。管脚间的连接方式决定了可编程的增益范围,增益在-11~+30dB时的带宽为90Mhz,增益在+9~+41dB时具有9MHz带宽,改变管脚间的连接电阻,可使增益处在上述范围内。该集成电路可应用于射频自动增益放大器、视频增益控制、A/D转换量程扩展和信号测量系统。 AD603封装引脚图: Android示波器电路原理图 电路城语:此资料为卖家免费分享,不提供技术支持,请大家使用前验证资料的正确性!如涉及版权问题,请联系管理员删除! 附件包含以下资料:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值