一种简易温室控制系统的设计
2.1.2 数字量采集模块
数字量采集模块主要是对温室控制系统中需要交流电机正反转的执行设备的的运动状态进行采集,包括遮阳网,天窗,侧窗等。执行设备的运动状态通过读取行程开关的状态来获得。将强电柜中的行程开关串联在24 V电源上,通过开关光耦和分压电阻构成回路,将行程开关的状态映射到开关光耦的状态上,然后通过总线收发器读入到单片机。
2.2 开关量输出模块
开关量输出模块用于控制温室控制系统中执行设备的运动。其单元电路图如图4所示,单片机将要输出的开关量锁存到74HC573中,通过开关光耦与输出通道进行隔离,避免信号之间的相互干扰,信号经三极管的放大后驱动12V的小型继电器,从而控制执行设备执行相应动作。本文引用地址:http://www.amcfsurvey.com/article/159644.htm
2.3 时钟模块
时钟模块采用DALLAS公司生产的DS1302芯片,它是一种高性能、低功耗、带RAM的实时时钟电路,可以对年、月、日、周、时、分、秒进行计时,同时具有闰年补偿功能,工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信。
2.4 键盘及显示模块
键盘模块用于实现温室控制系统参数的设置。该模块设置了四个独立按键,键0为参数设置键,用于选择不同的参数设置。键1,键2分别为++键,和--键,用于对所设参数进行递增和递减作用。键3为↑↓键,用于选择上极限值和下极限值。显示模块用于实时显示温室控制环境中的参数。为降低温室控制系统的硬件成本,该模块选用了不带字库的HDG12864型的LCD液晶显示器。为节省I/O口的使用数量,在本系统设计中选用串行方式与单片机进行连接。
2.5 通信模块
通讯模块用于下位机与上位机之间的数据通讯,考虑到温室不同的环境和不同用户的需求,设计中采用RS232和RS485两种总线方式来实现通讯,RS232串口通讯硬件电路实现简单,只需将测控系统的串行接口与PC机的COM口相连即可,但是RS232传输速率较低,传输的距离短,只适合短距离通讯。RS485总线采用平衡发送和差分接收方式来实现通讯,与RS232相比,其最高传输速率提高到10Mbps,且传输距离往往可达到1 200 M以上,适合较远距离节点的通讯。
3 系统软件设计
系统控制软件采用模块化的程序设计思想,将系统的整体功能分为不同的模块,各个模块单独设计、编程、调试,完成之后进行系统总的联调。本系统程序均采用C语言来进行编写。整体上软件程序主要完成信号采集运算、实时监控、显示、通信、参数设定、声光报警等功能,主要包括主程序,系统初始化子程序,温室参数采集子程序,时钟子程序,报警子程序,按键扫描子程序,LED显示子程序,数据控制处理子程序,数据存储子程序和串口中断服务程序等模块。主程序控制流程如图5所示。
3.1 温室参数采集子程序
温室数据采集系统的前向通道中,输入信号均含有种种噪声和干扰,为了对温室环境参数进行准确的测量与控制,在软件设计中采用去极值平均滤波法来去除噪声和干扰。对每个传感器采用10次,去除最大值和最小值,对剩余8次采样数据进行求平均,即得到有效的采样值。
3.2 数据存储子程序
对由温室控制系统所采集的各种数据信息的分析和处理是一个重要的环节,因此必须设计数据存储程序。在软件设计中,每隔十分钟就对温室所采集到的温室环境参数(温度、湿度、光照度和二氧化碳浓度)及执行机构的状态进行存储,在存储器中分别占用1,1,2,2,1个字节。同时为了能够清晰确定所采集数据的时刻,也对时间进行存储,这里只存储日,时,分,在存储器中各自占用1个字节。STC89C55单片机内部的EEPROM共有58个扇区,每个扇区可存储512个字节。因此单片机可存储大约58x512/10x24x(60/10)≈20天的数据。
3.3 数据控制处理子程序
由于温室内作物对于环境参数变化往往不是很敏感,而且从系统的成本和通用性来考虑,本系统采用简单的阈值控制算法。即开始时系统会根据不同作物所处的最适宜环境来预设参数的阈值(上下限值),然后系统通过传感器来对环境参数进行数据采集,当所采集到的环境参数不在阈值范围内时,系统就会控制相应的执行机构来改变温室的环境参数,直到参数回到阈值范围内。
4 系统的仿真与调试
为了验证温室控制系统设计的可行性,在Proteus的ISIS7 Profession软件环境下绘制出仿真电路原理图。采用电流源来分别仿真一个光照度和一个CO2传感器。由于Proteus自带的元件库中没有STC系列单片机,在仿真过程中STC89C55BD+用AT89C55来代替,前者的性能优于后者,一旦仿真电路能够实现,则实际电路更容易成功。将编写的程序在Keil μVision3集成开发环境上编译调试,生成相应的HEX文件。通过相关设置,实现Proteus和Keil的联合仿真。对系统的功能进行测试,以温度控制为例,将温度阚值上下限分别设定为15℃和25℃,当温室温度低于设定阈值下限时,蜂鸣器响,热风炉风机开始工作。温度高于阈值上限时,蜂鸣器响,天窗打开,湿帘风机和湿帘水泵开始工作,而当温度处在阈值上下限之间范围时,上述机构都停止工作。当用按键改变温度的阈值上下限时,也具有相同的仿真结果。对系统仿真调试成功后,用PROTEL设计印制电路板,经过元器件的焊接、电路板的硬件调试、温室硬件系统的搭建和程序下载等环节,便可进行温室控制系统的整体调试。
5 结论
文中以STC89C55单片机为核心,设计了一种低成本的简易温室控制系统,该系统可以对温室环境中的温度、湿度、光照度和CO2浓度等各项参数进行实时准确的检测、采集。并可以根据预设的参数来调节和控制温室环境,以满足不同植物的生长需求。经测试运行证明该系统具有工作可靠,性能稳定和操作简单等特点,同时系统采用高性能,低成本的元器件,造价低廉,符合广大农业用户的消费水平,具有良好的推广应用价值。
评论