孙万麟
(昌吉学院 物理系,新疆昌吉,831100)
随着计算机技术的飞速发展,工农业现代化控制技术应用越来越普及,尤其是众多学者研制各种各样监控装置对工农业现场数据进行实时采集、监控已经成为热潮。比如炼钢厂,人们研究对熔炉里的温度进行实时采集、监控,以确保生产的安全和钢材的质量;水库,人们研究对水位进行实时采集、监控,以确保处于安全水位;温室大棚,人们研究对温湿度等环境参数进行实时监控,以确保蔬菜在适宜环境生长等[1-3]。近年来,许多学者都先借助虚拟仪器技术对各类数据采集监控系统进行设计及仿真,然后在进行调试、制作,以减少元器件浪费,降低成本。目前,应用最为广泛的仿真软件当属Proteus和LabVIEW,Proteus软件是仿真单片机及其外围器件的最佳工具,而LabVIEW软件则以其友好美观的用户界面深受众多学者的喜爱,如今将多种软件联合仿真已经成为当下主流[4-6],已有许多学者将Proteus和LabVIEW联合起来进行各类控制系统设计及其仿真,并且有好多高校已建立虚拟实验室进行辅助实践教学[7-10]。鉴于此,本文采用Proteus软件作为下位机数据采集及控制平台,LabVIEW软件作为上位机数据监控平台,联合利用LabVIEW和Proteus各自优势设计及其仿真一个以单片机作为主控器的温室大棚温湿度测控系统。
本系统主要由两大模块构成,分别是以AT89C51单片机为主控器的数据采集模块和LabVIEW为主控制的数据监控模块,首先通过DHT11传感器进行实时采集温湿度数据,因DHT11能直接以数字量输出,故不需要A/D转换模块。紧接着单片机对采集温湿度数据进行处理及传输,并将采集数据在LCD液晶屏上显示,同时单片机将采集数据通过虚拟串口传输给LabVIEW进行实时监控,并配置报警指示灯进行实时提醒,指示灯为绿色表示正常,指示灯为红色表示异常,该系统构成框架如图1所示。
图1 系统框架图
依据图1系统构成框架,采用Proteus软件绘制数据采集电路图,该电路以通用型AT89C51单片机作为主控器,并配有时钟电路、RC复位电路、DHT11温湿度传感器、LCD液晶显示、排阻RP1、串行端口通信模块以及虚拟串行端口显示模块等构成,其电路图如图2所示,该电路主要功能是实现对温湿度数据实时采集并在LCD屏上显示,同时将采集数据发送至虚拟串口。
图2 系统电路图
LabVIEW前面板用来绘制用户监控界面(人机交互界面),前面板控件选板上提供了各种各样的控件,可以方便快捷地创建用户界面。本文利用各控件所设置LabVIEW前面板监控界面如图3所示,主要实现对温湿度数据的实时显示,并设置超越阈值范围指示灯具有报警提示功能。还有,增设错误输出控件,可以对系统运行状态进行监控,也可根据错误提示,对系统进行相应调整,比如设置直观显示温湿度波形曲线和温度计、湿度计,方便实时对出现问题及时记录。除此之外,设置了系统参数,比如温湿度上下限、串行通信参数配置等。
图3 监控界面图
LabVIEW后面板用来实现前面板功能程序框图,也可理解为LabVIEW软件编程界面,后面板采用连线将各个控件连接在一起,实现对前面板各个控件进行控制,并根据需求还可以添加想要的参数。本文依据图3所实现系统监控界面功能所对应的程序框图如图4所示。
图4 程序框图
本文采用C语言编写温湿度测控系统源程序,其中主程序是上位机LabVIEW与下位机单片机之间相互通信,其设计流程如图5所示[11~13]。
图5 上下位机通信流程图
主程序部分代码如下[13~16]:
本文选取大白菜蔬菜温室大棚作为研究对象,依据大白菜最佳生长温度在20℃~30℃,最佳生长湿度在75%~80%,因此设置温度上限为30℃,下限为20℃,湿度上限为80%,下限为75%。同时将虚拟串口参数如串口号、波特率数据位等必须与LabVIEW中COMPIM控件VISA参数值设置一致,才能实现正常通信。采用KeilC51软件进行系统源程序调试、编译,并生成对应的hex文件,并将其加载至AT89C51单片机中。参数设置好,Protues正常运行后,运行LabVIEW,并打开串口调试助手,LabVIEW和Protues两个软件将通过连通状态的虚拟串口COM1和COM2进行数据传送,温湿度传感器会将采集到的数据通过虚拟串口传送给上位机。
(1)若某时刻系统DHT11传感器采集温度(RH)为25℃,湿度(TH)为76%,Proteus仿真结果如图6所示,LabVIEW监控界面数据如图7所示。
图6 Proteus运行图
图7 监控运行结果
在图6中,LCD液晶屏显示系统温湿度,System(系统):TH(湿度):76、RH(温度):25,即此刻DHT11传感器采集温度值为25℃,湿度值为76%,则温湿度均在阈值范围内。由图7监控界面直观看到,温度值为25℃,湿度值为76%,且报警指示灯是绿灯点亮,进一步表明此刻温度值和湿度值都是正常状态。比较图6和图7,LabVIEW监控界面与LCD屏显示数据一致,误差为零,表明上位机LabVIEW与下位机单片机正常通信。
(2)若某时刻系统DHT11传感器采集RH为25℃,TH为81%,Proteus仿真结果如图8所示,LabVIEW监控界面数据如图9所示。
图8 Proteus运行图
图9 监控运行结果
在图8中,LCD液晶屏显示系统温湿度,System:TH:81、RH:25,即此刻DHT11传感器采集温度值为25℃,湿度值为81%,即温度在阈值范围内,但湿度超出阈值范围。由图9监控界面直观看到,温度值为25℃,湿度值为81%,且报警指示灯是红灯点亮,表示此刻数据是异常状态,其实就是DHT11传感器采集的实际湿度超过了上限。比较图8和图9,LabVIEW监控界面与LCD屏显示数据一致,误差为零,表明上位机LabVIEW与下位机单片机是正常通信,但报警指示灯红灯点亮,说明此时是异常状态,提醒用户及时检修电路。
本文联合LabVIEW和Proteus各自优势,以单片机作为主控器,设计及其仿真了一个温室大棚温湿度测控系统。采用Proteus软件设计数据采集电路,采用LabVIEW软件设计用户监控界面,将下位机采集数据通过虚拟串口发送到上位机进行实时监控。仿真表明,上位机LabVIEW与下位机单片机正常通信,证实本系统设计正确、可行,为类似其他单片机控制系统的设计提供一些借鉴。