基于单片机和DS18B20的温度采集和分析系统
理结果表存储处理结果。

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提供的接口函数(ICngine API函数),其采用客户机/服务器计算模式,此时C++作为客户端出现,负责用户接口和提出数据请求,Matlab则属于服务器端,向客户端提供数据服务。通过以上接口及MFC函数库完成PC端的可视化程序设计。
4 系统测试及应用
系统测试采用额定功率为1 500 W的电热壶烧水进行实验测试。利用系统对1 200 ml的自来水在电热壶中的温度进行采样,获得相关数据并进行分析,从而得到温度与时间的函数式,然后用该函数式来计算到达某一温度阈值的所需时间,完成应用。
由于电热壶的功率恒定且过大,故加热时因各种原因散失的温度可忽略不计,故水所吸收的热量在单位时间内是恒定的,通过比热容公式Q=Cm△T(其中Q为热量的变化,C为比热容,m为质量,△T为温度变化)及Q=p△t(p为功率,△t为所用时间)可得
由于水的比热容为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%,这可能与电热壶的老化等因素有关。但由实验结果可知,系统可较好地对温度进行采样、存储和分析。

图8为针对系统分析的数据进行的一个应用测试,通过式(2)可知电热壶水温至100℃还需要的时间,从图8中可看出,当前水温为23℃,距水烧开还需380 s。

5 结束语
经过实验测试,本系统可完成温度的采集、存储和分析功能。通过该系统,可测得某一时段内固定时间间隔的温度值,并可将其存储于PC端的数据库中,当测得规定时间内的数据后,通过系统的分析模块,可对所测的温度数据进行一定程度的分析,获得温度变化的走势曲线图,在热功率恒定的条件下,通过Q=Cm△t函数可获得温度与时间的一次函数,从而对其他时段相同环境下的数据进行提前分析。同时,该系统功能较强,操作简便,系统较稳定,有一定的实际应用价值。
- 自学单片机心得体会(06-17)
- 基于霍尔传感器的直流电机转速测量系统设计(11-14)
- 基于8051F单片机的数字音频信号源的幅度控制(12-01)
- 动态参数检测与虚拟仪器综合系统设计(11-26)
- 基于C8051F005单片机的小电阻测试仪(01-05)
- 基于MSP430F149的阻抗测量系统设计(01-15)
