3.4 湿度线性补偿和温度补偿
通过数据总线DATA输出的数字量湿度值称为相对湿度值,呈现一定的非线性,需要进行线性补偿,修正公式如下。
(1)
其中RH1为经过线性补偿后的湿度值, 、 、 为线性补偿系数,SO为相对湿度测量值(精度为8位时, = 4、 =0.648、 = 7.2 )。
另外,温度对湿度的影响也必须充分考虑,因为测试参考温度为25 ,而实际应用中温度是变量,所以对线性补偿后的湿度再进行温度补偿很有必要,温度补偿公式如下。
(2)
其中 为经过线性补偿和湿度补偿后的湿度值,T为实际温度( ), 和 为温度补偿系数( =0.01, =0.00128)。
4. 下载与调试
4.1 软件下载
4.1.1 USB转串口驱动安装
本设计采用C语言编程,在uVision4环境下编译,如果是其他版本uVision,只需将所有.c和.h文件拷贝至新建项目,重新编译即可。当编译生成.hex文件后,就可以下载并进行调试了。
打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(Prolific USB-to-Serial Comm Port(COMX)。X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装,记住括号里的COM口号。
4.1.2 下载程序
打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序,具体运行界面如图13所示。
图13 下载软件界面
正确选择MCU 类型,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps,并打开正确的.hex数据文件。点击“Download/下载”按纽,待窗口依次出现的提示结束后,按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片,将程序写进单片机。下载完成后程序自动运行,或重上电后程序正常运行[10]。
4.2 硬件调试
本设计的最终硬件调试电路如图14所示,考虑到系统的便携性,PCB板采用双层板。启动系统时,液晶显示一个欢迎界面,第一行是“Welcome to T&H”,第二行是“Control System” ,等待两秒后,进入温湿度显示界面,显示器可显示当前温湿度值以及通过按键设置的阈值。本次调试时,通过按键的设置,将温度的阈值设置为16摄氏度到20摄氏度,湿度的阈值设置为45%至50%。调试时的室温是24摄氏度,湿度为47%,由于温度高于阈值,高温指示灯亮,此时继电器动作,小电机开始运转。只要监测的温度和湿度中的一个参数越出阈值,都会带动小电机工作。本设计中测量湿度会呈现一定的非线性,而且会受到温度的影响,因此湿度显示数值和真实值会有些出入,但是误差很小,在日常应用中,基本可以忽略。若想得到十分准确的湿度值,要对湿度进行线性补偿和温度补偿,这可以通过公式1和2计算求得。
5. 总结
综合考虑系统精度、效率以及经济性要求三方面因素,本文设计了基于STC89C52的温湿度测控系统,选用性价比高的数字式传感器,实现对温湿度自动监测和相应控制功能。针对温室中不同作物,可以通过设定相应温湿度的阈值。当系统检测到温湿度有任何一个参数越过阈值时,立即启动报警,并通过控制模块对执行机构进行相应控制。为了便于系统的调试、移植及修改,本设计采用模块化设计,其中包括主程序模块、数据采集与显示模块、温湿度参数设置模块、执行机构控制模块、报警模块等。该系统通过硬件电路设计及软件编程,能够实现对温室中温湿度的实时监控,控制模块采用STC89C52单片机与继电器控制电机来实现温湿度调节。与传统测试系统该系统相比具有结构简单、体积小、成本低、通用性好、易于实现等特点。本系统也存在一些不足,比如由于温湿度的相互影响,温湿度的测量值和真实值会存在稍许偏差,可以采取软件补偿和解耦来调整温湿度值。另外,本系统现在只能监控温湿度两个环境因子,希望进过改进可以测量光线、二氧化碳等更多的环境因子。 STC89C52单片机温室在线监控系统设计+流程图(7):http://www.751com.cn/zidonghua/lunwen_1916.html