基于STM32的温度采集系统设计

摘 要

本论文主要是为了利用编程软件和硬件来设计并实现STM32单片机对环境温度的信号采集。本文中利用STM32单片机来完成毕业设计,并且主要目的就是完成温度的采集,有一点需要注意的是,温度采集是自动化必须掌握的检测技术,也是一项十分有实用的技术。本文利用STM32的一种微型处理器来当主控的CPU,通过使用一个独立的数据采集模块采集数据,在这个基础上实现了智能化的温度数据采取、然后还有传输、处理和显示等功能。并商讨了该怎么提高系统的速度、性能和拓展性。数据采集是获取信号对象信息的过程。然而本文的设计是一个在ARM Cortex-M3处理器的基础上的一项数据采集系统,并且在此基础上实现了对当前场景的温度信号的一种实时跟踪性质的采集。这次毕业设计的主要目的是提供可行性方法来进行可以实施的后续研究。

关键词:嵌入式系统;ARM;DS18B20温度传感器;STM32;温度采集;数据的处理。

1 整体系统设计

1.1 系统方案设计

第一个方案:需要使用模拟分立的元件,例如电容、电感、晶体管等非线性元件,观察采集的温度和显示的具体效果,这个方案的设计十分的好理解,特别简单,并且它的操作也不是特别的难,还有个好处,就是它的价格是非常合适的。缺点就是如果用分立的元件,会造成它的分散性特别的大,对集成数字化是十分不好,而且最后测量之后,会存在很大的误差的,所以这个方案的可行性不太好,尽量不用。
第二个方案:选用PC机作为本次设计的主控机。利用温度传感器来选用温度的信号,通过信号放大器之后,再送到A/D转换芯片中,然后再一次的经过拥有单片机的检测系统来进行下一步的解析和处理,然后再利用通信线路到PC机的上面,在PC的上面也可以通过对温度信号来进行很多的解析和处理的方式,所以这个方案简单来说还是不错的。
在这里插入图片描述

图1.1方案二的框图
如上图所述,如果用这个方案的话,那么这个技术相对来讲是比较成熟的,发展的时间也是最长的,而且将温度信息上传到PC机,然后再利用PC机的数据处理能力和良好的辅助软件,就可以从多角度、多需求的方向来分析处理这个温度数据,但是这个在工业上基本上是不会运用的。因为PC机的价格的因素,所以这个方案还是不合适的。
第三个方案:现在有很多客观需求来促进STM32单片机的设计的整体改进。因为造价高的问题,还有就是物理的尺寸方面是受到很多的限制的,所以这个嵌入式系统的存储器的内存和储存量是有限的。
另外,嵌入式的系统它的价格一般来讲是挺敏感的,所以使用速度通常情况下不是很高,成本相对来说也不是很高的。从现在的情况看系统的关键问题并不是在于简单的处理器的速度,而是有效率的系统性能和功能。
根据上面写的这三种方案的一些简单的介绍,本次毕业论文系统设计选择第三个方案,这次的毕业设计是用STM32的嵌入式数据解析和显示装置。这一次的系统设计选用的是“STM32核心控制模块+温度采集模块”来完成所需要的功能的。

2 硬件设计

2.1 STM32单片机

2.1.1 STM32单片机介绍

STM32这种微型的控制器,它是这个整体温度控制系统的一个核心的部分。因为对温度控制器具有较高的要求,如果执行的速度越快的话,控制的准确度就会越高,稳定性也很高它的灵敏度也会很高,因此必须得选出一种既便宜又实惠而且性能也高的一个单片机。ARM Cortex-M3的架构是可以体现出STM32增强型的单片机高性能、低功耗和经济实用的要求。并且它们选择的是THUMB-2指令集,这个指令带来的优势和效果可以变得更强。
STM32单片机选择2.0~3.6V的供电电压来使用。这个可以在-40℃~85℃的温度环境下工作。最高的工作频率是72MHz。它的引脚如下图2.1。
在这里插入图片描述

图2.1 STM32F103引脚分布图

3 软件设计

系统的单片机代码使用的C语言编写,以Keil uVision5软件为开发环境。这样的话这个系统的软件就会实现应该有的功能:
(1)通过LCD来显示出这个温度的数值;
(2)利用对温度的数值和报警的设置数值的了解,把两者对比了一下,如果超过温度上下限,这个警报器就会响。

3.1 总程序流程图

在这里插入图片描述

图3.1主程序流程图
由上面程序图就可以看出,接通电源后LCD1602的液晶显示器初始化和系统的最原始化,从而使STM32进入一个相对应的状态和模式。采集当前环境的温度,显示出温度数值,通过按键设置温度的上下限,如果当前温度没超出设置的温度上下限时程序运行结束,如果温度超出温度的上下限,蜂鸣器就会报警。

4 系统调试

4.1 系统硬件调试

本设计基于电路图理论,根据电路图制作硬件电路。硬件电路的调试主要包括以下几个方面:检查是否有漏焊、误焊、短路、断路等,启动后检查电路是否能正常工作。看有没有漏焊,同时要看需要连接的线路有没有都连上,特别要注意电源线和地线的连接。
程序下载成功后,给板子通电之后发现温度在自己设置的阈值之外,但是蜂鸣器没有报警,检查后发现蜂鸣器焊点没有焊接好,经过处理后蜂鸣器正常工作。
当温度超过最大值时如图4.1所示:
在这里插入图片描述

图4.1 温度超过最大值

当温度低于最小值的时如图4.2所示:
在这里插入图片描述

图4.2 温度低于最小值

4.2 系统软件调试

本设计是基于单片机控制,利用单片机的主程序完成对温度的采集,使用的是STM32系列,这个系列的单片机应用非常广泛,编译语言以C语言为主。本次设计以Keil μVision 5软件进行编写。
Keil μVision 5使用的基本方法,首先本软件上没有STM32单片机的数据,所以我在Keil官网上下载了我所需要的STM32F1xx_DFP.2.3.0直接加载到我的软件上。其次需要建立一个新的项目,选择使我所选择的单片机类型,可以编写一个新的文件,编写完程序后进行编译,编译就是检测程序是否有错误和警告,警告不会影响程序的运行。在编译程序之后,生成.HEX文件。程序写入控制芯片STM32F103C8T6后,接通电源,电源指示灯亮,系统启动。当显示器出现温度时,说明系统开始工作。

5 结 论

通过以上分析本篇论文是针对提高温度采集的效率,节省时间并更精确的反应出当前温度和超出阈值范围报警的采集系统。
本论文设计的重点在于STM32单片机和DS18B20温度传感器的系统应用。其主要对单片机的最小系统进行相应的设计和选择适合的温度传感器从而使得温度采集系统更为完备,一般来说,温度传感器收集到当前温度数据,通过数据线传递给单片机,以单片机的外部中断形式获取输出信号,并用显示器显示出当前温度。一方面能够展现出当前的温度另一方面当温度超过阈值系统就会报警。
在硬件调试方面,由于采用的STM32单片机内部自带很多工作元件。外围元件不是很多,所以调试不太难。对各电子元件也无特别要求。只需要多次反复尝试,避免出错就可以。
在软件调试时,发现一些程序只有满足条件才被执行,所以令单步调试难度加大,这时选用程序调试汇总的断点设置,使调试能完整进行。再者碰到编写时忘记切换输入法,有中文标点符号程序编译出现错误,一一改进后完成调试。
本次设计经过了硬件和软件的测试,各部分均达到了预期功能:实现了温度采集,以及警示作用。该系统操作简单,可靠性高,灵敏度高等优点。应用本设计产品,可提高温度采集的效率,使我们的生活变得更加的方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值