您的位置 首页 新品

根据单片机和DS18B20的温度收集和剖析体系

介绍了一种温度采集、分析系统,实现了对所测温度采样,存储于数据库并进行相关分析的功能。通过80C51单片机和DS18B20温度传感器,以PC端的SQL Server 2008作为数据库,Matlalb

传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性较差、丈量温度准确率低,且还必须经专门的接口电路转化为数字信号后才干由单片机进行处理。不仅如此,大部分温度体系都短少对温度的采样存储,无法对温度进一步剖析。本文介绍了一套以个人电脑及80C51单片机为中心,运用DS18B20温度传感器进行温度采样,数据库进行温度存储,Matlab进行温度剖析的体系。该体系可对其所在环境的温度进行实时监控,一起进行温度的采样、存储和剖析,完结对特定环境下温度的了解。

1 体系整体组成

体系硬件部分首要用于温度的丈量和存储。PC端则用于测温事情的树立与存储、丈量参数的设置、温度数据的存储及温度数据的剖析。整体而言,体系中心部分分为温度监测模块、温度存储模块和温度剖析模块3部分。

温度监测模块用于温度的监测及采样,首要运用PC端程序进行测温事情的树立及采样开端时刻(时分秒)、采样完毕时刻(时分秒)、采样距离(秒)和传输方法8个采样相关参数的设置,传输方法包含直接传输和直接传输,对应温度的永久存储和暂时存储,相关参数经过串口传给单片机。然后运用80C51单片机和DS18B20温度传感器来获取当时温度,并按要求对温度进行采样,一起运用其他器材将温度及当时时刻显现到LED屏上。

温度存储模块分为暂时存储模块和永久存储模块,暂时存储模块用于将所丈量的温度数据经过I2C总线暂时存储于AT24C02芯片中,永久存储模块则将AT24C02芯片中的数据或当时丈量的温度数据经过串行口传给PC端,然后PC端程序将其存储于SQL Server数据库中。

温度剖析模块运用Matlab对所获数据进行处理。经过将数据库中的数据导入Excel表,然后调用Matlab的m文件读取Excel表中的数据,并对其剖析,完结数据处理。

体系的整体规划如图1所示。

a.jpg

2 体系硬件规划

体系硬件原理如图2所示,硬件电路图如图3所示。整个体系经过STC89C52RC单片机进行操控,8051系列单片机为1980年Intel公司推出的MCS-51系列8为高级单片机微机,而该类型单片机为8051内核芯片,内含Flash E2PROM存储器,内部程序存储空间的巨细为4 kB,内部RAM为512 Byte,价格较低,能较好地满意体系要求。DS18B20温度传感器经过单总线与单片机P1.7衔接,单总线数字温度传感器将地址线、数据线、操控线合为1根信号线,硬件开支小,为确保体系安稳性,将DS18B20的VCC端与外部电源相连。1602液晶为5 V电压驱动,可显现两行,每行16个字符,内置含128个字符的ASCII字符集字库,可满意体系信息输出的要求,1602占用单片机的P0及P2.3、P2.4、P2.5。AT24C02为E2PROM存储器,运用了快速、高效、精准的I2C接口规划技能与单片机进行通讯,时钟线与单片机P2.0相连,信号线与P2.1相连。DS1302为时刻芯片,能主动发生年、月、日、时、分、秒等时刻信息,可完结体系温度与丈量时刻的对应传输,并便利体系操控。MAX232为RS232/TTL电平转化芯片,完结下位机与PC端上位机的串口通讯,其与单片机的RXD(P3.0)和TxD(P3.1)相连。

b.jpg

3 体系软件规划

3.1 单片机程序规划

图3为程序的程序整体规划图,application为整个单片机程序的全局变量,用以区别体系中心部分和运用部分,当按下与P3.2相连的按键时,触发外部中止0,application自加1。

c.jpg

体系中心部分又分为闲暇形式和作业形式。体系处于闲暇形式时,读取DS1302的时刻信息和DS18B20的温度信息,在液晶显现屏上显现当时的日期、时刻和温度,一起运用按键可校准日期和时刻;处于作业形式时,硬件电路与PC端合作作业,完结温度的采样、存储和传输。

运用部分,单片机经过串口取得温度阈值和函数式,运用下文将叙说的公式完结相应功用。别的,单片机进行温度采样的时刻由定时器0进行准确操控。定时器1用于波特率的发生。当PC端传递数据给单片机时,将导致串口中止,参数数据传送至单片机的SBUF寄存器,然后再将数据存储于char型二维数组Parameter中,因为所需传输的参数数据共有8个,且每个参数的位数均为2位,故包含‘\0’在内共需3个char。型存储空间,然后完结采样参数设置。当单片机向PC端传递温度数据时,先传递温度的整数部分传给SBUF寄存器,再将温度的小数部分传给SBUF,然后传给PC端,此刻先用强制转化将float型的温度数据转化为int型变量,传递其整数部分,然后将float型变量乘以100并减去其整数部分,得到小数部分。

3.2 PC端程序规划

图4为数据库规划的E—R图。体系数据库中包含事情表、数据表和处理成果表。事情表存储各种事情信息,数据表存储对应时刻的温度数据及时刻数据,处理成果表存储处理成果。

d.jpg

Matlab剖析模块的首要过程为:从Excel表中获取时刻;运用datenum()函数将三维的时分秒转化成一维的实数;运用polyfit()函数拟合时刻温度的一阶函数式;运用polyv al()函数核算已知各点拟合曲线的温度值;运用plot画出原始各点和拟合曲线。

PC端但是化程序首要运用Visual C++6.0编写而成,经过串口与单片机进行数据交换,并于数据库和Matlab进行通讯,完结测温事情的树立、采样参数的设置以及数据的存储与剖析。

PC端可视化程序运用到了Microsoft CommunicationsControl控件(MSComm控件)完结了串口通讯和数据接纳,运用微软供给的一种面向对象、与言语无关的数据拜访运用编程接口 ADO组件完结与SQL Server数据库的通讯,经过Matlab引擎调用Matlab的m文件,完结数据的剖析,Matlab引擎是一组Matlab供给的接口函数(%&&&&&%ngine API函数),其选用客户机/服务器核算形式,此刻C++作为客户端呈现,担任用户接口和提出数据恳求,Matlab则归于服务器端,向客户端供给数据服务。经过以上接口及MFC函数库完结PC端的可视化程序规划。

4 体系测验及运用

体系测验选用额定功率为1 500 W的电热壶烧水进行试验测验。运用体系对1 200 ml的自来水在电热壶中的温度进行采样,取得相关数据并进行剖析,然后得到温度与时刻的函数式,然后用该函数式来核算抵达某一温度阈值的所需时刻,完结运用。

因为电热壶的功率安稳且过大,故加热时因各种原因流失的温度可忽略不计,故水所吸收的热量在单位时刻内是安稳的,经过比热容公式Q=Cm△T(其间Q为热量的改变,C为比热容,m为质量,△T为温度改变)及Q=p△t(p为功率,△t为所用时刻)可得

e.jpg

因为水的比热容为4.2×103J/(kg·℃),电热壶功率为1 500 W,水的质量约为1.2kg,代入数据可得△T=0.297△t。

可见水温与时刻应该是线性的,其系数约为0.297,即T=at+T0,其间a=0.297,T0为初始温度。

经过以上剖析,可得式(2),该公式用于运用部分核算水抵达某一温度剩余时刻的函数式

t=(T-T1)÷a (2)

其间,t为所需的时刻;T1为阈值温度;T为当时温度;a为剖析所得函数的一次项系数。

体系测验成果如图6与图7所示,由图6可知,温度与时刻呈较好的线性,与上述剖析成果共同,由图7可知,拟合曲线的系数为0.264.53,与理论值的相对误差为-10.9%,这可能与电热壶的老化等要素有关。但由试验成果可知,体系可较好地对温度进行采样、存储和剖析。

f.jpg

图8为针对体系剖析的数据进行的一个运用测验,经过式(2)可知电热壶水温至100℃还需要的时刻,从图8中可看出,当时水温为23℃,距水烧开还需380 s。

g.jpg

5 完毕语

经过试验测验,本体系可完结温度的收集、存储和剖析功用。经过该体系,可测得某一时段内固定时刻距离的温度值,并可将其存储于PC端的数据库中,当测得规则时刻内的数据后,经过体系的剖析模块,可对所测的温度数据进行必定程度的剖析,取得温度改变的走势曲线图,在热功率安稳的条件下,经过Q=Cm△t函数可取得温度与时刻的一次函数,然后对其他时段相同环境下的数据进行提早剖析。一起,该体系功用较强,操作简洁,体系较安稳,有必定的实践运用价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/286905.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部