首页 » 智能 » 基于单片机STM32的人体红外测温枪温度采集系统(含代码)_温度_物体

基于单片机STM32的人体红外测温枪温度采集系统(含代码)_温度_物体

落叶飘零 2024-12-11 15:48:33 0

扫一扫用手机浏览

文章目录 [+]

STM32单片机人体红外测温枪温度采集系统

学长这里给一个题目综合评分(每项满分5分)

基于单片机STM32的人体红外测温枪温度采集系统(含代码)_温度_物体 智能

难度系数:4分事情量:4分创新点:3分2 紧张器件STM32GY-906 温度传感器OLED 显示器红外热释电传感器TP4056 充电器模块18650 电池18650 电池座5 V DC-DC 升压转换器翘板开关 -15 × 21 毫米5 毫米绿色 LED5 毫米赤色 LED

工具清单:

烙铁线切割机剥线钳3 实现效果

4 设计事理

事情事理很大略,红外测温传感器MLX90614在额头与传感器之间的间隔(由红外传感器丈量)匹配设定值时读取人体温度。
传感器读数发送到 Arduino 进行处理,处理后的值显示在 0.96" OLED 显示屏上。

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

当体温正常时,绿色LED(LED1)亮,蜂鸣器鸣叫。
当体温高于 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 ----> SCLgpio3 ----> 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 ErrorCounterslaveAddress <<= 1;//2-7位表示从机地址 从机地址左移一位,把读写位空出来 do {repeat: SMBus_StopBit(); --ErrorCounter; if(!ErrorCounter) //ErrorCounter=0? { break;//如果为0就跳出do-while{}循环 } SMBus_StartBit(); if(SMBus_SendByte(slaveAddress))//发送从机地址最低位Wr=0表示接下来写命令 { gotorepeat; } if(SMBus_SendByte(command))//发送命令 { gotorepeat; } SMBus_StartBit(); if(SMBus_SendByte(slaveAddress+1))//发送从机地址+1最低位Rd=1表示接下来读数据 { gotorepeat; } 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;}

完全代码可进群免费领取。

6 末了

嵌入式物联网的学习之路非常漫长,不少人由于学习路线不对或者学习内容不足专业而错失落高薪offer。
不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。
点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!
记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料

相关文章

盱眙IT企业,数字浪潮中的璀璨明珠

随着信息技术的飞速发展,我国各地IT产业呈现出蓬勃发展的态势。在这其中,盱眙IT企业以其独特的魅力,在数字浪潮中闪耀着璀璨的光芒。...

智能 2024-12-28 阅读0 评论0