欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式
一项目简介
温度报警在生活、工业以及农业上都具有广泛的用途,比如生活上设置一个温度报警功能,可以转换为对火灾的监控;工业上锅炉对温度报警功能,实现对锅炉异常监控等,所以高可靠高精度温度报警控制系统的设计具有重要意义。
本文设计以温度报警和控制功能为核心的温度控制系统,首先实现对实现该功能的要素进行分析,设计系统方案,选择确定以DS18B20传感器来实现温度的检测功能,采用ARM单片机接受传感器检测到的温度数据后,与设定的温度上限范围,温度下限范围进行比较,自动识别温度是否异常,如果识别到温度异常,设计蜂鸣器和LED进行报警,实现温度报警功能,同时采用继电器调节升温和降温功能,使得温度维持在给定范围内;通过分析各个模块的特点,对嵌入式温度控制系统的硬件电路做了详细的分析,对软件算法进行详细的分析,最后对实物制作,完成了以温度控制为核心的嵌入式温度控制系统的实物焊接与制作,设计出一款温度控制系统,其中系统工作稳定,检测灵敏度高,实现对温度的检测、显示以及控制。
二、嵌入式温度控制系统方案设计
2.1总体方框图
以温度控制功能为核心的报警系统,通过满足系统要求的传感器检测温度,单片机读取传感器检测温度值后,对该温度值显示,同时与设定温度上限和下限比较后,判断是否存在温度异常,对蜂鸣器和继电器进行控制,系统框图如图2-1所示。
图2-1 系统框图
2.2温度模块选择介绍
生活中经常被应用在各种电器里面的能够感测温度信号的探测器主要有三类,分别是定温式探测器、差温式探测器和差定温式探测器。定温式探测器从本质上来讲就是相当于一款温度传感器,当所测温度升高到与开始设置的温度值一样时,那么就会响应并且发出报警声。经常被用来作为温度探测器里面关键元件的主要有以下几类:铂丝、熔点较小的合金、热敏电阻以及双金属板和双金属管。
方案一:选择模拟集成温度传感器,原因是它由硅半导体集成化这种工艺来制造的,所以习惯性的也把它叫做硅传感器或者是单片集成温度传感器。比较常见的此类产品为AD590。AD590属于温度-电流传感器,其主要的功能是可以有效改善系统抵抗外界因素干扰的能力,但仅仅依靠它并不能完成任务还要借助于相应的放大以及A/D转换电路,实现起来需要连接比较复杂的电路,使用集成电路能够有效减少它的增益偏差,但是却很难实现。
方案二:选择数字单片机智能温度传感器,它里面主要含有五个模块,分别是A/D转换模块、传感器模块、处理模块、存储模块以及电路模块。我们常见的此类产品为DS18B20传感器。DS18B20传感器是由美国一家公司所制造出来的一类线式温度传感器,它最高可测量125摄氏度最低能够测量零下55摄氏度,并且具有很高的分辨率,它的结果是以16位数字量方式来对外传输,它既可以从寄生电源处获得电能,也能够从远端处获得电能。它还能够同时连接到中央处理器的一条传输线上,所以中央处理器只需要一个通信接口就能够从DS18B20传感器处获得信息,基本不怎么占用CPU的接线端口,而且实现起来并不困难,外接电路也极易实现。
通过上述两个方案的比较,因为方案二所使用的DS18B20传感器能把所有模块都放置在同一芯片上,方便与单片机连接,DS18B20传感器所用到的技术相比第一种方案里的AD590要更加的先进,因此本文将选择使用DS18B20传感器,DS18B20温度传感器工作原理如图2-2所示。
图2-2 工作原理
如上图2-2中所示,首先低温度系数晶振将脉冲信号传输给计数器1,而高温度系数晶振的脉冲信号则会向计数器2方向传输。除此之外还有几个我们看不见的计数器藏在DS18B20传感器中,当芯片处于运动状态的时候,就会开始计量低温度系数晶振产生了多少脉冲信号从而转换成温度值以此来完成温度的测量工作,而高温度系数晶振则代表了计数器什么时候开始工作。
2.3显示模块
采用LCD1602实现对温度数据的显示,LCD1602的基本功能是显示非汉字,比如字母、数字内容显示,内部结构主要是有一些常见的多个5X7点阵位按照一定的规律构成,若干个点阵位可以实现对若干个字符的显示,因为LCD1602可以实现两行的显示操作,所以在内部增加了每个点阵位之间以及两个行之间的点距,实现对位与位之间的隔开,上下两行之间的隔开显示,正是因为点阵点距的作用,使得LCD1602不具备显示图像以及连续显示汉字的功能,LCD1602包括16个与外部连接和传递信息的引脚,LCD1602如图2-3所示。
图2-3 LCD1602
2.4单片机模块
以STM32为核心来实现对温度数据的读取,对数码管的控制,对状态指示LED灯进行设置,该模块相比较传统8位单片机基本在各种嵌入式控制系统中都能满足使用要求,该核心模块的内核是基于ARM的Coxtex-M3的32位处理器,在一些高级别和高性能的使用场景时极其受欢迎。该单片机性能非常明显,有以下几点:价格与传统的51单片机几乎相当,外设和内部处理器应有尽有,上百种型号和规格,最大的特点是通信、AD模块等外设都是相对独立的,可以分别进行控制开关,因此工作时功耗超低。
三、嵌入式温度控制系统的硬件设计
3.1硬件总体框图
本文系统硬件包括单片机控制电路,温度检测电路,显示电路,按键控制电路以及温度控制电路,硬件总体框图如图3-1所示。
图3-1 硬件总体框图
DS18B20传感器电路:将温度数据传送给单片机,实现对温度的检测。
三个按键电路:实现对温度调节界限的上限和下限调节。
显示电路:采用LCD1602对检测的实时温度值和设置的界限值实时显示。
升温和降温继电器:采用两路继电器实现对加热片和风扇驱动,实现升温和降温。
报警电路:采用蜂鸣器当温度出现异常时,进行报警。
单片机控制电路:接受传感器和按键电路的信息,对继电器以及报警和显示电路驱动。
3.2单片机控制电路
本文选择的是基于ARM的STM32F103做为温度控制系统的核心,与一般的MCU单片机一样,也包括复位电路,晶振电路以及电源电路等,其中STM32最小系统有三种有比单片机多的时钟模块,有PLL锁相环,高速外部时钟等,采用32.768kHz的高速外部时钟来实现低功耗操作,采用外部8M晶振与外部晶振配合起来使用,内部电路所产生的时钟频率大小就刚好是单片机需要的大小。
在STM32的复位所对应的引脚一端各连接一个电阻和极性电容时,那么就可以实现单片机的复位功能,当电平保持两个时钟周期时才是完成了复位功能。复位电路分成了两个部分,分别是按键复位和上电复位,单片机主控电路如图3-2所示。
图3-2 单片机主控电路
3.3温度检测电路
温度检测电路如图3-3所示,对于DS18B20传感器的每个控制指令在DS18B20开发时都以规定好,单片机作为主控设备,必须通过对传感器发送指令才能实现温度数据的读取,比如当单片机的控制引脚输出0X44指令给DQ引脚时,就时温度启动转换指令开始,当单片机给DQ引脚输0xBE时,就代表对单片机准备对内部转换后的温度数据进行读取,再按照流程时序和约定指令时序进行温度的检测。单片机的PA0引脚与DQ引脚连接后,须发出一个480us的信号寻找DS18B20传感器的存在,因此单片机输出一个持续时间为480us的信号输出给DQ引脚,在DQ引脚接受到信号后,会对该信号做出一定的反应表示DS18B20传感器准备好正常工作,在寻找脉冲结束后,该引脚会被拉高,等待DS18B2O发出存在脉冲,寻找脉冲结束后不超过60us, DS18B20传感器会产生一个低电平信号,存在脉冲持续时间为60到240微秒之间,单片机如果读取到该存在脉冲,那么就代表着温度传感器和单片机之间的数据通信模式以及协议达成,可以为下一步传送温度数据做准备,如果在工作时引脚出现断路故障或者寻找脉冲时间不足,DS18B20传感器不会与单片机数据通信。
前面两个步骤是单片机和DS18B20传感器为发送数据所作的准备,接着就是对ROM进行控制指令的发送,主要是对传感器的ROM进行操作,发出一个8位数的指令,该步骤在总线上只有一个传感器时可以省略,主要通过每个传感器特定的ID号来实现对总线上不同的传感器进行识别,紧接着发送对ROM操作的指令实现一共有8条相关的指令,按照顺序进行发送,是单片机对传感器控制的关键,主要包括读写数据,复制数据,温度转换开启,值复制以及模式切换,每一步都需按照规定的时序进行;然后执行对数据的读取,DS18B20传感器自温度转换接受后,按照读时序,将温度数据进行读取,最后将采集到的数据转化成实际温度。
图3-3 温度检测电路
3.4 LCD显示电路
在本文设计的温度控制系统中,采用LCD显示值,第一排显示实时温度值,第二排显示温度的上限和下限值,LCD1602液晶屏电路如图3-4所示。
图3-4 LCD1602液晶屏电路设计
PB口控制LCD的DB0数据口,PA1到PA2控制RS/RW/E引脚,按照下图时序,对通过对应指令显示,对LCD控制,时序图如图3-5所示。
图3-5 时序图
3.5按键电路设计
按键电路如图3-6所示,参数调节功能,设计有三个按键引脚。
图3-6 按键电路
KEY1控制是否进入设置引脚,KEY2和KEY3分别控制加和减操作。
3.6灯光提示电路
温度出现异常时都会有声音和对应的LED提示进行报警,灯光提示电路如图3-7所示。
图3-7 灯光提示电路
PA6引脚作为本系统分配控制报警的引脚,温度异常时,引脚PA6会被被置高驱动Q1使它导通,缘蜂鸣器同样也会导通发生;PA7和PB8分别实现对绿灯和蓝灯控制,代表温度过低和温度过高。
3.7温度控制电路
当温度出现低于下限异常时,使加热片工作,升温;当温度出现高于上限异常时,使风扇工作,降温;温度控制电路如图3-8所示。
图3-8 温度控制电路
PB14和PB15分别实现对温度过低和温度过高控制,同时对继电器也实现控制,当出现异常后,单片机分配的控制引脚输出一个高电平信号,电阻R5和R8限流后,Q1与Q2导通,VCC通过LED和继电器线圈以及Q1和Q2形成回路,线圈得电负载导通开始工作。
3.8硬件总体电路
整个系统以STM32为核心,通过读取DS18B20温度传感器的检测数据后,在内部对数据进行判断,对LCD显示控制的同时,也对继电器电路进行控制调节温度,总体硬件布线图如图3-9所示。
图3-9 总体硬件布线图
四、嵌入式温度控制系统软件设计
4.1主程序设计
在开发软件时,基本上都使用C语言和汇编语言来完成设计任务。在使用汇编语言来开发软件系统时,里面所包含的机器指令主要通过文字助记来表达,这种表达也是与机器码最接近的一个。它在执行程序时有突出的优点,效率很高,不会占用很多的存储空间,但是也有很多缺点,比如兼容性比较差,不能适用于多种不同的CPU。C语言则比汇编语言所具有的优点更多,它不仅融合了汇编语言的优势同时还具备计算机高级语言的特点,兼容性较高,比较容易读写,可以直接控制硬件动作,修改和扩充系统功能时也比较方便,更加迎合人们的想法。
从以上两种编程语言的对比可知,C语言更适合用来编写本系统的软件程序,所以本系统所有的软件部分都使用C语言来完成。将系统的软件首先按照需要实现的功能划分为几个彼此独立的部分,然后再依据每个部分要完成的具体动作来完成各个子程序的编写工作,通过不停调用各个子程序实现系统程序的循环运行,以此就可以达到各司其职的目的。上述已经提到单片机一般采用汇编和C语言来进行编写程序。这两种语言相比较而言,C语言更加的方便被使用,并且也更容易被读写和移植,在开发代码方面也表现得更加突出,所以现在一般编程都会优先选择C语言。
主程序先设置定时模块初始化、LCD模块,再设置显示设置,在显示模块设置显示位置,显示温度上限值,温度下限值以及实时温度值,然后进入while控制的循环,实时读取温度值,按键值以及对温度进行比较,实现报警,设置等功能,主程序流程图如图4-1所示。
图4-1 主程序流程图
为了提高系统运行效率,300ms实现对温度数据进行读取,然后调用不同的子函数,实现具体功能,其中子函数有显示子函数,按键子函数以及报警子函数。
4.2显示子程序设计
显示子程序主要是单片机对LCD的一个指令控制模式,如首先依个复位过程,分别通过延时15ms,5ms,5ms后通过指令38H实现忙信号检测,通过该指令实现模式的设置,通过08H指令实现关闭显示等操作,显示程序流程图如图4-2所示。
图4-2 显示程序流程图
4.3温度读取子程序设计
温度读取子函数流程图如图4-3所示。
图4-3 温度读取子函数流程图
根据DS18B20传感器的工作流程,按照顺序实现对温度数据的采集后,传送给单片机实现温度数据采集。
4.4报警子程序设计
检测到温度值后,与设定的t_high 和t_low比较,进行报警和指示,报警子函数流程图如图4-4所示。
图4-4 报警子函数流程图
五. 总结
利用传感器技术和单片机技术,以实现温度报警为出发点,来设计整个系统,选择DS18B20高精度数字式温度传感器实现对温度的检测,检测到温度异常后,就会通过灯光和声音指示报警,本文完成的工作以及得到的总结如下:
1.以温度报警功能为基础,围绕温度的检测、显示、报警等方面展开工作,实现检测0到+125摄氏度的温度范围。
2.研究单片机与DS18B20传感器之间的通信时序,单片机按照DS18B20传感器的工作时序,来精确的采集温度数据。
3.采用显示、蜂鸣器以及LED灯实现温度的显示功能和核心的温度异常报警功能。
4.围绕单片机及外围电路,传感器及外围电路以及报警等电路的研究,设计各部分硬件电路和软件算法,实现对嵌入式温度控制系统的实物验证。
设计出来的嵌入式温度控制系统,实物通过调试,实现以温度报警为主要功能的温度检测报警系统,因受时间和能力条件的限制,系统还能做的更加完善,比如通常温度和湿度不分家,可以增加湿度的报警功能,同时该系统不具有对温度远程检测和对温度远程控制的功能,因此功能相对单一,如果能在系统中增加保湿和去湿功能以及无线发送数据到监控端实现远程监控,那么系统将会得到非常大的升级。
六. 目 录
内 容 摘 要 I
第1章 选题依据 2
1.1 前言 2
1.2 防盗报警系统在国内外的发展 2
1.3 防盗报警器的发展前景与趋势 3
1.4 设计任务与要求 3
第2章 系统方案设计 5
2.1 系统总体设计思路 5
2.2 系统方案设计 5
2.3 传感器简介 6
2.3.1 热释电红外传感器简介 6
2.3.2 热释电红外传感器电路图 7
2.3.3 被动式热释电红外探头的工作原理及特性 8
2.4 MQ2烟雾传感器简介 8
2.5 51系列单片机的内部组成 12
2.4.1 STC89C52单片机的内部组成 13
2.4.2 STC89C52单片机引脚及功能 14
2.6 SIM900A短信模块简介 15
2.6.1 GSM模块接口设计 18
第3章 硬件电路设计 20
3.1 电源电路设计 20
3.2 红外探测信号输入电路 21
3.3 时钟电路的设计 24
3.4 复位电路的设计 24
3.5 烟雾检测电路设计 25
3.5.1 传感器选型 25
3.5.2 LM393简介 25
第4章 软件设计 28
4.1 软件的程序实现 28
4.2 主程序工作流程图 28
4.3 中断服务程序工作流程图 30
4.4 报警电路流程图 31
4.5 信号采集电路流程图 32
第5章 结论与展望 34
致 谢 35
参考文献 36
附录A 主要源程序代码 37
附录B 电路总体原理图 43