基于 STM32F030 的无线电子温度计(上)

60 多年过去了,尽管辉光管已经停产,有很多工程师仍然对它情有独钟。我用 8 块液晶显示屏制作了一个拟辉光管时钟,感受复古元素的美感,表达对过去经典的敬意。

这个项目缘起我家娃生病时,总是不愿意量体温。传统的水银温度计测量温度慢,孩子总是问“好了没?”,等得着急了就把温度计拿出来了,功亏一篑,父母更是崩溃。所以我就希望有一个便宜好用、测量精准、测量速度快的温度计。作为一名工程师的我决定自己做一款。“你的温度,我来守护”,这是我的初心。

打开网易新闻 查看更多图片

应用场景和主要功能

温度计应用场景如下。

● 解决儿童生病时不愿意配合量体温的问题。

● 适用于儿童体温需要实时监测的情况。

● 适用于儿童睡觉时测量体温。

主要功能如下。

● 精度高,误差小于 0.1℃。

● 带有显示屏。

● 支持蓝牙传输,支持 BLE 和

SPP,既可以连接手机,也可以连接

计算机。

● 运行时间长,可以连续使用12h 以上。

● 使用便捷,不需要经常拿出来看温度,可直接通过手机或计算机接收温度和电量提示。

● 可以 DIY 设置报警功能,方便看护儿童时实时了解体温情况。

总体设计

本 设 计 使 用 3.7V 锂 电 池 为 系统 供 电, 经 LDO 降 压 到 3.3V 后 给MCU供电,MCU与OLED显示电路、锂电池充放电电路、温度传感器电路、蓝牙传输电路进行连接,无线温度计系统框架如图 1 所示。

打开网易新闻 查看更多图片

图 1 无线温度计系统框架

硬件设计

这样一个功能丰富的无线温度计是如何设计出来的呢,接下来我将逐一介绍每个模块。

电源

在电源的选用上,该系统选用3.7V 可 充 电 锂 电 池, 通 过 TP4057芯 片 进 行 充 电, 后 经 过 LDO 芯 片XC6220B331MR-G 将 电 压 转 为3.3V,给 MCU 和外围元器件供电。为什么要选用 TP4057 这个芯片

呢?因为这个芯片具有如下特点。

● 封装小,节省空间。

● 充电快,最大充电电流可配置为 1A。

● 价格足够便宜。

这 里 要 注 意 LDO 的 选 择, 一定要选择具有超低压差的,因为锂电 池 随 着 工 作 的 时 间, 供 电 电 压会 从 4.1V 慢 慢 降 低, 直 到 供 电 不足,导致系统无法工作。这是选择XC6220B331MR-G 这 个 芯 片 的 原因,即使是 20mV 的压降,也可以提供 100mA 的电流,对于这个系统供电电流足够使用。

我们对电源进行详细分析。首先是系统充电接口,本项目通过 USB Type-C 接 口 充 电,USB Type-C接口电路如图 2 所示。

打开网易新闻 查看更多图片

图 2 USB Type-C 接口电路

然后通过 USB Type-C 接口给TP5057 芯片供电,充电电路如图 3所 示。LED1 和 LED2 是 系 统 充 电状态指示灯,当系统充电时,LED1灭,LED2 亮;当系统充电完成时,LED1 亮,LED2 灭。电阻 R3 作为充电电流限制电阻,最大充电电流限制为 500mA,可以根据系统需求更改此阻值。

打开网易新闻 查看更多图片

图 3 充电电路

最后是电源的其他部分,系统开关、锂电池及电量检测电路如图 4所示。

打开网易新闻 查看更多图片

图 4 系统开关、锂电池及电量检测电路

VT1、VD1 和电阻 R4 构成了电源选通网络,工作具体原理如下。

● 当 USB Type-C 接 入 时,VCCIN 约 为 5V 输 入 电 压, 此 时VT1 不导通,BAT 无法通过 VT1 输出到 VOUT,但 VD1 工作并导通,VCCIN 经过 VD1 输出到 VOUT。

● 当 USB Type-C 没有接入时,VCCIN 由电阻 R4 下拉接 GND,使VCCIN 为低电平,VT1 进行工作并导通,BAT 通过 VT1 输出到 VOUT。注意此时 VD1 可以防止 VOUT 反向输入给 VCCIN。

锂 电 池 通 过 电 阻 R11、R13、R12 和电容 C17 进行电量采集,BAT经过电阻 R11 和 R12 分压,ADC 采集的电压为 BAT 的一半。为什么要进行分压呢?原因是锂电池最高电压可以达到 4.2V,若不进行分压,则超过MCU 的 ADC 测量范围(0~3.3V)。

H7 为电池的排针接口,SW1 为系统供电开关。

系统的大部分元器件工作电压不超过 3.3V,为了保护元器件和确保元器件能正常工作,需要将工作电压转为 3.3V,转换电路如图 5 所示。

打开网易新闻 查看更多图片

图 5 LDO 转 3.3V 电路

主控

系统主控采用STM32F030C8,我选择该芯片的原因如下。

● 功 耗 低、ARM Cortex-M0内核。

● 便宜 , 降低成本。

● 外设丰富,足够本项目使用。

STM32F030C8 属于 STM32F030x4/x6/x8/xC 系 列, 该 系 列 芯片集成了以 48MHz 频率运行的高性能 32 位 RISC 内 核、 高 速 嵌 入 式存 储器(256KB 的闪存和 32 KB 的SRAM)以及增强型外部设备和 I/O。所有元器件均提供标准通信接口、1 个 12 位 ADC、7 个通用 16 位定时器和 1 个高级控制 PWM 定时器。STM32F030x4/x6/x8/xC 系列芯片工作温度为-40~+85°C,电源电压为 2.4~3.6V。该系列微控制器包括 4 种不同封装的元器件,从 20 个引脚到 64 个引脚。这些特性使STM32F030x4/x6/x8/xC 系 列 芯片适用于广泛的应用,如手持设备、A/V 接 收 器 和数字电视机、游戏和GPS平台、逆变器、打印机、扫描仪、报警系统和可视对讲机等。

本项目中该主控实现以下功能。

● ADC 采 集, 即 检 测 锂 电 池电量。

● 串口通信,控制蓝牙芯片,进行数据发送。

● I 2 C 通信,进行温度传感器的配置和初始化,最重要的是读取温度。

● I2C 通信,控制显示屏,显示电量、蓝牙连接状态、测量时长等。

● 其他可扩展功能。MCU 主控电路如图 6 所示。

打开网易新闻 查看更多图片

图 6 MCU 主控电路

蓝牙

本项目蓝牙部分采用KT6368A,这是一款支持蓝牙双模的纯数据芯片,选择这款芯片最大的原因是成本低、使用简单、生产简单,大大降低了开发难度。该芯片同时支持 SPP 和 BLE ,但是只能任选其中一个协议使用。蓝牙电路如图 7 所示。

打开网易新闻 查看更多图片

图 7 蓝牙电路

图 7 中, 电 阻 R6、R8 串 联 可以 防 止 漏 电, 避 免 异 常 情 况 发 生。LED 指示蓝牙连接状态。需要注意:

KT6368A 芯片开机需要初始化外部设备,其瞬间电流比较大,可达 25mA,时间维持 300ms,之后就进入 5mA 工作状态。芯片上电后,会自动校准时间,程序中需要设置延时后处理。

显示屏

显 示 屏 用 的 是 国 产 汉 昇 0.91英 寸 OLED 模 块, 具 体 型 号 为HS91L02W2C01。该显示屏分辨率为 128 像素 ×32 像素,主控芯片为SSD1306,接口类型为 I2C。整体尺寸如 8 图所示。

打开网易新闻 查看更多图片

图 8 显示屏尺寸

为什么选择这个模块呢?首先是价格便宜,其次是尺寸合适,刚好可以 显 示 4 行, 能 满 足 需 求。该 模 块通过 I2C 接口与 MCU 连接,模块已 内 置 电 阻, 因 此 OLED_SDA 和OLED_SCK 网络不需要添加上拉电阻。显示屏与 MCU 连接电路如图 9所示。

打开网易新闻 查看更多图片

图 9 显示屏与 MCU 连接电路

温度传感器

为了验证效果,我选择了两款温度传感器,这两款传感器精度高且便宜,非常具有性价比。下面简单介绍一下。

第一种是 T117 传感器,具有超低温测温(-103℃)功能,测温精度为 ±0.1℃,使用 I2C 和单总线数字输出,测温速度最快为 2.2ms,支持4路I2C 通信地址;超低功耗(电流为2μA),宽电压供电 1.8~5.5V,大小为 2mm×2mm×0.75mm,DFN-6L封装,内置 112bit EEPROM。其广泛应用于智能穿戴设备、体温计、动物体温检测设备、医疗电子设备、热表 /气表 / 水表等。

第 二 种 是 MTS4 传 感 器, 其 采用 I2C 协 议 数 字 输 出, 可 同 时 兼 容数字单总线,测温精度为 ±0.1℃,测 温 速 度 可 配 置 为 15.3ms、8.5ms、5.2ms、2.2ms, 具 有 超低 功 耗( 电 流 为 3.1μA), 大 小 为1.6mm×1.2mm×0.55mm,DFN-4L封装,内置 112bit EEPROM,广泛应用于小型的智能穿戴设备、电子体温计、动物体温检测设备、医疗电子设备、冷链物流设备、热表 / 气表 / 水表等。

需要注意的是这两款传感器都是 DFN 封装,手工焊接需要一定技巧和经验。两款温度传感器电路如图 10 所示。

打开网易新闻 查看更多图片

图 10 两款温度传感器电路

本 项 目 分 别 焊 接 了 T117 和MTS4 传感器。经测试,两种传感器性能基本一致,建议使用 T117 传感器,一是该传感器价格稍微便宜,二是手工焊接相对容易。

原理图及PCB设计

原理图设计

1. 工程创建

本项目采用嘉立创 EDA 专业版软件进行设计。在设计原理图前,需要创建工程文件夹,文件夹归属可以是个人,也可以是团队。如果使用的是学校教育版,需要在教育版工作区内创建工程并保存到对应的班级里。创建工程文件夹后,系统会自动生成一张图纸,需要手动保存到工程内,按照图纸内容修改文件名称。工程创建参考如图 11 所示。

打开网易新闻 查看更多图片

图 11 工程创建参考

2. 元器件选型

前文对电路方案进行了描述,下面就可以在嘉立创 EDA 上设计电路了。在放置元器件时,我们会遇到一个元器件有不同封装的情况,比如一个 LED,有的需要 2 个引脚插到板子里焊接,有的可以直接贴到板子上焊接,而且大小间距各有不同。如图 12所示,在设计电路时我们要考虑:需要什么规格的元器件、它在实验室里有没有、是否可以买得到、选用的封装能不能焊接等问题。

打开网易新闻 查看更多图片

图 12 LED 符号与封装

在选择元器件时可以在嘉立创EDA 的 基 础 库 中 选 择 需 要 的 元 器件,基础库的每个元器件都可以选择不同的封装。如果你对元器件封装不熟悉,可以在元器件库中直接对所需元器件进行搜索,例如将搜索引擎改为“立创商城”,在里面输入“电容1μF”, 进 行 搜 索, 在 类 目 下 选 择“0805”后单击“应用筛选”(见图13)。在搜索出来的结果内找到自己所需的元器件,单击元器件就可以放到原理图进行设计了。

打开网易新闻 查看更多图片

图 13 元器件库查找元器件

立创商城里元器件都有唯一的商品编号,使用时可以将这个编号复制到元器件库中进行搜索,例如该项目中主控 STM32F030C8T6 这款芯片的商品编号是 C23922,在元器件库中输入编号,类型选择“符号”,库别选择“立创商城”,单击“搜索”,就可以在里面看到搜索结果(见图 14)。

打开网易新闻 查看更多图片

图 14 指定商品编号搜索元器件

PCB设计

1. 边框外形

设计完原理图就可以设计 PCB了。我 使 用 嘉 立 创 EDA 里 的 边框 层 进 行 设 计, 边 框 大 小 控 制 在10cm×10cm 之内,这样可以免费打样,而且这个大小在本项目中是足够的。使用绘图工具中的直线和圆弧工具设计,也可以充分利用栅格辅助我们更加精准地设计外框。无线电子温度计边框外形如图 15 所示。

打开网易新闻 查看更多图片

图 15 无线电子温度计边框外形

2. PCB布局

PCB 边框外形确定,就可以进行元器件布局了。结合温度计的特点,将传感器摆放在最左侧,开关与蓝牙摆在上方,USB Type-C 充电接口摆放在最右侧,主控芯片放在中间的位置。原理图转 PCB 后的元器件布局是无法直接使用的,需要手动把元器件摆放在合适的位置。元器件布局时可以在嘉立创 EDA 菜单栏中选择“工具”→“布局传递”,能快速对元器件分类布局。

元器件布局需要考虑以下事项。

● 按电路模块布局,每个电路的核心元器件和外围元器件尽量集中。

● 按电路功能布局,特殊元器件布局时周边不能放置其他元器件,避免干扰等。

● 按元器件特性布局,输入 / 输出接口放到 PCB 边缘,方便操作。本项目 PCB 元器件布局如图 16所示。

打开网易新闻 查看更多图片

图 16 无线电子温度计 PCB 元器件布局

3. PCB走线

完成元器件布局就完成了 PCB整个设计的大部分工作,接下来是在PCB 走线时进行细节调整。PCB 走线需要注意的事项很多,有很多设计要点,我们需要在设计中不断积累经验,提升自己的能力。

● 电源及信号线走线需按照电流流向,严格按照原理图设计布局,即使都连接了,没有报错,也要考虑先后顺序。

● 在设计 PCB 走线时,要注意线宽设置,电源线应比信号线稍微粗一些。电源线的载流要满足项目功耗需求,例如本项目电源线宽 0.5mm即可满足需求。线宽不能设置得过细,应考虑工厂生产工艺。

● 在实际走线过程中,导线应优先走直线,横平竖直,可以通过调整元器件布局使两个点间的连线最短,如果无法保持直线,应优先使用135°钝角或者圆弧走线,保持设计美观。

本项目的 PCB 采用 4 层设计,各层设计如图 17~ 图 20 所示。3D 外壳设计和软件设计将在下一期进行介绍。

打开网易新闻 查看更多图片

图 17 PCB 顶层

打开网易新闻 查看更多图片

图 18 PCB 地层

打开网易新闻 查看更多图片

图 19 PCB 电源层

打开网易新闻 查看更多图片

图 20 PCB 底层