0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >健康医疗 > 基于STM32红外非接触式额温枪的设计 MLX90614额温枪(原理图+PCB+程序+BOM)

基于STM32红外非接触式额温枪的设计 MLX90614额温枪(原理图+PCB+程序+BOM)

来源: 电路城
2021-11-23
类别:健康医疗
eye 30
文章创建人 拍明

原标题:基于STM32红外非接触式额温枪的设计 MLX90614额温枪(原理图+PCB+程序+BOM)

基于STM32红外非接触式额温枪的设计:MLX90614额温枪原理图、PCB、程序与BOM详解

随着公共卫生需求的增长,非接触式红外测温技术因其高效、安全的特性被广泛应用于医疗、安防、工业检测等领域。本文以STM32F103C8T6微控制器为核心,结合MLX90614红外传感器,设计一款具备高精度、低功耗、易操作的额温枪,并详细阐述其硬件选型、电路设计、软件架构及BOM清单。

image.png

一、系统总体架构与功能需求

1.1 系统架构

额温枪的核心模块包括:

  • STM32F103C8T6微控制器:负责数据采集、处理及外围设备控制。

  • MLX90614红外传感器:测量目标物体表面温度。

  • OLED显示屏:实时显示温度值及状态信息。

  • 蓝牙HC-05模块:实现无线数据传输。

  • 蜂鸣器与按键:提供报警提示及参数设置功能。

  • 电源管理模块:采用18650锂电池供电,通过IP5306升压芯片实现3.3V/5V双电压输出。

1.2 功能需求

  • 测温范围:-40℃~+85℃,精度±0.5℃(人体测温模式)。

  • 响应时间:≤150ms。

  • 报警功能:支持三段温度区报警(绿、蓝、红区),可自定义阈值。

  • 数据传输:通过蓝牙模块将温度数据上传至手机APP。

  • 用户交互:按键设置温度上限值,OLED显示实时温度及状态。

二、核心元器件选型与功能解析

2.1 主控芯片:STM32F103C8T6

  • 选型理由

    • 资源丰富:内置512KB Flash、64KB RAM,支持I2C、SPI、UART等多种外设接口。

    • 低功耗:支持待机、睡眠等多种低功耗模式,延长电池续航时间。

    • 开发便捷:STM32CubeIDE提供完善的库函数支持,缩短开发周期。

  • 功能作用

    • 通过I2C接口读取MLX90614的温度数据。

    • 控制OLED显示屏刷新温度值及状态信息。

    • 处理按键输入,实现温度阈值设置及报警逻辑。

    • 通过蓝牙模块实现数据无线传输。

2.2 红外传感器:MLX90614

  • 选型理由

    • 高精度:内置17位ADC及DSP单元,测温精度±0.5℃。

    • 非接触式:避免交叉感染,适用于公共场所。

    • 低功耗:典型工作电流≤1.1mA,支持SMBus/PWM双输出模式。

  • 功能作用

    • 通过红外热电堆探测器测量目标物体表面温度。

    • 将模拟信号转换为数字信号,通过I2C接口传输至STM32。

    • 支持出厂校准,简化用户校准流程。

2.3 显示屏:0.96寸OLED

  • 选型理由

    • 高对比度:自发光特性,无需背光,适合户外强光环境。

    • 低功耗:典型工作电流≤20mA,延长电池续航时间。

    • 接口简单:支持I2C/SPI接口,与STM32兼容性良好。

  • 功能作用

    • 实时显示温度值、温度阈值及状态信息(如报警、蓝牙连接状态)。

    • 支持自定义显示内容,提升用户体验。

2.4 蓝牙模块:HC-05

  • 选型理由

    • 兼容性强:支持AT指令集,便于配置参数。

    • 传输距离远:空旷环境下传输距离可达10米。

    • 功耗低:典型工作电流≤30mA,适合手持设备。

  • 功能作用

    • 将温度数据无线传输至手机APP,实现远程监控。

    • 支持双向通信,接收手机APP发送的控制指令。

2.5 电源管理模块:IP5306升压芯片

  • 选型理由

    • 高效率:转换效率≥90%,减少能量损耗。

    • 多电压输出:支持3.3V/5V双电压输出,兼容STM32及外围设备。

    • 保护功能:内置过流、过压、短路保护,提升系统可靠性。

  • 功能作用

    • 将18650锂电池电压升压至3.3V/5V,为系统供电。

    • 监测电池电量,通过OLED显示屏显示剩余电量。

2.6 蜂鸣器与按键

  • 蜂鸣器

    • 选型理由:采用无源蜂鸣器,支持PWM调频,实现不同报警音调。

    • 功能作用:温度超过阈值时发出报警声,提示用户。

  • 按键

    • 选型理由:采用轻触开关,寿命长、响应快。

    • 功能作用:设置温度阈值、切换显示模式及开关蓝牙功能。

三、硬件电路设计

3.1 MLX90614与STM32的I2C接口电路

MLX90614通过SMBus(类I2C)协议与STM32通信,电路设计需注意:

  • 上拉电阻:SCL/SDA线需串联4.7kΩ上拉电阻,确保信号稳定性。

  • 滤波电容:在VCC与GND之间并联0.1μF陶瓷电容,滤除高频噪声。

  • ESD保护:在接口处添加TVS二极管,防止静电损坏。

3.2 OLED显示屏接口电路

OLED采用I2C接口,电路设计需注意:

  • 电平匹配:STM32的I2C接口电压为3.3V,与OLED兼容。

  • 背光控制:通过PWM信号调节背光亮度,降低功耗。

3.3 蓝牙模块接口电路

HC-05模块通过UART接口与STM32通信,电路设计需注意:

  • 电平转换:若STM32工作电压为3.3V,需确保HC-05的逻辑电平与之匹配。

  • 天线设计:采用PCB天线,减少体积并提升传输效率。

3.4 电源管理电路

IP5306升压芯片电路设计需注意:

  • 输入滤波:在锂电池输入端并联10μF电解电容,滤除低频噪声。

  • 输出滤波:在3.3V/5V输出端并联0.1μF陶瓷电容,提升电源稳定性。

  • 电池保护:集成过充、过放保护电路,延长电池寿命。

四、软件架构与程序实现

4.1 软件架构

软件采用模块化设计,主要模块包括:

  • 初始化模块:配置STM32的时钟、I/O端口、I2C/UART接口。

  • MLX90614驱动模块:实现温度数据读取及转换。

  • OLED显示模块:实现温度值及状态信息的实时显示。

  • 蓝牙通信模块:实现温度数据的无线传输。

  • 按键处理模块:实现温度阈值设置及功能切换。

  • 报警逻辑模块:实现温度超限报警功能。

4.2 关键程序实现

4.2.1 MLX90614初始化与数据读取

#include "stm32f10x.h"
#include "mlx90614.h"

void MLX90614_Init(I2C_HandleTypeDef *hi2c) {
// 初始化I2C接口
hi2c->Instance = I2C1;
hi2c->Init.ClockSpeed = 100000;
hi2c->Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c->Init.OwnAddress1 = 0;
hi2c->Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c->Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c->Init.OwnAddress2 = 0;
hi2c->Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c->Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
HAL_I2C_Init(hi2c);
}

float MLX90614_ReadTemperature(I2C_HandleTypeDef *hi2c) {
uint8_t reg_addr = 0x07; // 物体温度寄存器地址
uint8_t data[2];
HAL_I2C_Mem_Read(hi2c, MLX90614_ADDR, reg_addr, I2C_MEMADD_SIZE_8BIT, data, 2, HAL_MAX_DELAY);
int16_t temp_raw = (data[0] << 8) | data[1];
float temp = temp_raw * 0.02 - 273.15; // 转换为摄氏度
return temp;
}

4.2.2 OLED显示驱动

#include "oled.h"

void OLED_Init(void) {
// 初始化OLED硬件接口
// ...
}

void OLED_DisplayTemperature(float temp) {
char buf[16];
sprintf(buf, "Temp: %.1fC", temp);
OLED_ShowString(0, 0, buf, 16); // 在OLED第一行显示温度
}

4.2.3 蓝牙通信驱动

#include "bluetooth.h"

void Bluetooth_Init(void) {
// 初始化蓝牙模块
// ...
}

void Bluetooth_SendTemperature(float temp) {
char buf[16];
sprintf(buf, "TEMP:%.1f ", temp);
HAL_UART_Transmit(&huart1, (uint8_t *)buf, strlen(buf), HAL_MAX_DELAY);
}

4.2.4 报警逻辑

#include "buzzer.h"

void Check_Temperature(float temp) {
if (temp >= 38.5) {
Buzzer_Beep(10); // 连续鸣响10次
} else if (temp >= 37.5) {
Buzzer_Beep(5); // 连续鸣响5次
}
}

五、PCB设计与优化

5.1 PCB布局要点

  • 信号完整性:将MLX90614的I2C信号线与高速信号线隔离,减少干扰。

  • 电源分层:采用双层板设计,顶层为信号层,底层为电源层,提升电源稳定性。

  • 散热设计:在STM32及IP5306芯片下方铺设大面积铜皮,提升散热效率。

5.2 抗干扰设计

  • EMI滤波:在电源输入端添加磁珠及电容,滤除高频噪声。

  • 接地处理:采用单点接地,减少地环路干扰。

  • 屏蔽设计:在蓝牙模块周围添加屏蔽罩,减少辐射干扰。

六、BOM清单与成本分析

6.1 BOM清单


序号元器件名称型号数量作用
1STM32F103C8T6STM32F103C8T61主控芯片
2MLX90614MLX906141红外测温传感器
3OLED显示屏0.96寸I2C接口1温度显示
4蓝牙模块HC-051无线数据传输
5升压芯片IP53061电源管理
618650锂电池186501供电
7无源蜂鸣器5V无源蜂鸣器1报警提示
8轻触开关6×6轻触开关3按键输入
9电阻4.7kΩ(0603封装)4I2C上拉电阻
10电容0.1μF(0603封装)10滤波电容
11TVS二极管SMAJ5.0A2ESD保护


6.2 成本分析

  • 核心元器件成本:STM32F103C8T6(¥8)、MLX90614(¥15)、OLED显示屏(¥5)、蓝牙模块(¥10)、IP5306(¥3),总计约¥41。

  • 辅助元器件成本:电阻、电容、TVS二极管等总计约¥5。

  • 总成本:约¥46(不含外壳及电池)。

七、测试与验证

7.1 功能测试

  • 测温精度测试:使用标准水银体温计对比,误差≤±0.5℃。

  • 响应时间测试:从按键触发到显示温度值,时间≤150ms。

  • 报警功能测试:温度超过阈值时,蜂鸣器正常鸣响。

7.2 环境适应性测试

  • 温度测试:在-20℃~+50℃环境下,测温精度及响应时间符合要求。

  • 湿度测试:在相对湿度90%环境下,系统正常工作。

八、总结与展望

本文设计了一款基于STM32与MLX90614的非接触式额温枪,具备高精度、低功耗、易操作的特点。通过模块化设计及优化,系统在测温精度、响应时间及可靠性方面均达到预期目标。未来可进一步优化以下方面:

  • 提升测温速度:采用更高性能的微控制器,缩短数据处理时间。

  • 增加多模式功能:支持物体测温、环境测温等多种模式。

  • 优化用户体验:增加语音播报、触摸屏等功能,提升操作便捷性。

通过本文的设计与实践,可为非接触式红外测温设备的开发提供参考,推动公共卫生技术的进步。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: MLX90614 额温枪

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告