
0 引言
近几十年来,随着计算机及相关技术飞速发展,应用领域不断扩展。在国内技术水平相对落后的农业领域,计算机技术的应用也从无到有、从少到多有了长足进步;其中智能温室控制技术的应用便是较典型的例子。而人工环境的控制是温室农业的关键技术之一。目前国内智能温室控制系统普遍成本较高,且经济效益较差,研究实用性的温室结构和管理模式己成为一个重要的发展趋势,因此在满足控制要求的同时,研究设计经济型的控制方法和智能系统显得尤其迫切。
本文设计了一种基于CAN 总线的温室智能控制系统,目的在于寻求一种合理的结构,以提高温室控制系统的可靠性以及智能化程度。通过选用性价比较高的温度、湿度及光照度传感器实现对温室环境因子的精确测量与准确控制,针对不同参数,可以通过键盘手动输入预设值,通过单片机控制相应的执行器件,操作简单、使用灵活,并可运行。同时由CAN总线实现各个节点的数据接收和指令传递,通过主控制器的串行口完成上位机的辅助管理。
1 系统总体设计方案
1.1 温室系统的组成
温室系统主要包括智能控制系统、加湿系统、通风系统、遮阳系统及加热系统五部分。智能控制系统是温室的控制核心,通过数据采集模块收集温室内的各环境参数并将监测结果实时显示在微控制器及计算机屏幕上,同时对各参数进行实时控制和调节,满足作物生长需要。加湿系统的主要功能是确保室内作物生长所需的水分;当温室内温度偏高时,通风系统可降低室内温度;遮阳系统用来保证室内光照强度;供暖系统主要是保证作物生长在最适合的温度环境下。
1.2 控制方案设计
本文在综合考虑系统的测量精度,效率以及成本等多方面要求之后,选取温室内温度、湿度和光照度作为主要被控制量,以天窗/侧窗、风机、遮阳网、加热加湿装置等执行机构作为输出控制。智能温室控制系统总体结构如所示。
由可知,主控制器是整个系统的中心,负责接收各个分站节点发来的数据,并将总线上的数据发送给上位机。上位机仅作为辅助功能,记录各分站节点的环境参数,便于工作人员实时监控前端工作数据情况,在发生意外时能及时处理。同时主控制器也可以接收上位机上的指令。本方案主控制器选用的是以ARM Cortex-M3 为内核的STM32F107 互联型系列处理器[1],主频为72MHz。其中内部集成有CAN 控制器,符合CAN 规范CAN2.0A 和CAN2.0B,通过CAN 总线与带CAN 总线接口的分站节点通信,构成智能温室测控系统。本设计的分站为整个控制系统的核心,以STM32F103VBT6 增强型系列处理器为智能控制器[2],由信号采集、智能控制、数据显示、键盘中断、数据通信、执行机构等模块组成。控制器通过传感器将温室内的温度、湿度及光照度等环境因子转换成相应的电信号,经过滤波电路后送入单片机,实现对信号的采样。采集后的信号与预先设定的数值进行比较,当温室内环境因子指数超出预先设定值时,启动执行机构。分站也可以接受主控制器上的指令对各个模块进行控制。系统在控制策略上采用上下限控制[3]。可根据室内温度、湿度和光照度等参数的变化,按照预先设定的阀值,实现对天窗/侧窗、风机、加湿加热装置的智能控制,温室的气候环境,以满足作物生长的需要。同时分站能够脱离主控制器及上位机,实现高效的工作。
2 智能温室控制系统硬件设计
2.1 数据采集
本系统中考虑的环境因子有3 个:温度、湿度和光照度。温度检测选用Dallas 公司生产的单线式数字温度传感器DS18B20,该器件耐磨、耐碰,体积小,使用方便,适合于恶劣环境下的现场温度测量。采用直接数字化输出,只有3 个引脚(即电源VDD、地线GND、数据线DQ),且自带A/D 直接输出数字量,不需要外部元件。现场温度直接以“单总线”的数字方式传输,用符号扩展的16 位数字量方式串行输出,大大提高了系统的抗干扰性。该电路测量温度范围为-55~+125℃,精度为0.5℃,用9bit 数字量表示温度,每次将温度转换成数字量需200ms。其测温电路如图2。
对湿度的测量采用Honeywell 公司生产的HIH-4000 集成湿度传感器。该传感器采用热固聚酯电容式传感头,同时内部集成了信号处理功能,因此可完成将相对湿度值变换成电容值,再将电容值转换成线性电压输出的任务。根据HIH-4000 的特性,输出电压与湿度的典型配合关系曲线如所示,本系统只需对输出电压进行A/D 采集即可获得湿度值,而STM32 自带了A/D 功能所以无需再搭建外围电路。其湿度测量电路如所示。
光照度的测量采用ROHM 数字型输出环境光亮度/光强传感器BH1750FVI。此传感器内置了高精度的16bitA/D 转换器,无需外部器件,对于暗处到室外有着宽广的照度范围,其测量范围为1~65535 lx,可通过寄存器设定来选择1lx 或4lx 的步进来进行测定。另外,可以直接输出照度值,不需要在微型控制器侧演算处理读取值等。BH1750FVI 采用I2C 总线连接,最低支持1.8V 供电电压,精度±20%,且内置50Hz/60Hz 光噪声去除功能。根据BH1750FVI 的特性,器件内部结构如图5 所示,本系统通过STM32 自带的I2C 接口实现了光照度的采集。其照度测量电路如所示。
2.2 人机交互界面设计
环境参量及输出状态可由液晶显示器YM128R 和上位机显示,而对参数预设值及输出控制则可由键盘和上位机软件设置。本设计中的ZY128D 是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128 × 全点阵液晶显示器组成。可完成图形显示,也可显示8 ×4 个(16×16 点阵)汉字,EL 背光源100VC,400Hz。本设计利用STM32F103 自带的SPI接口实现对液晶显示器的串行数据连接,通过三根信号线即可完成LCD 的显示控制。其中PE15 为串行的片选信号,PC12 为串行的数据口,PC10 为串行的同步时钟。电路如图7 所示。
2.3 通讯接口设计
通信接口电路主要包括两部分:主控机与上位机的串行通信电路、主控机与分站之间的CAN 总线通信。通过CAN 总线将各个分站节点数据发送至主控机同时接受主控机对各个节点的控制。而串行通信是将总线的上数据经主控机上传至上位机平台,进行现场监测,并接受上位机的控制指令。本设计的CAN 接口电路如所示。
3 温室系统软件设计
3.1 系统软件设计
温室智能控制系统的软件主要包括两个部分:第一部分为以单片机为核心的主控机和分站监控管理及通信程序。主控机主要完成对各个节点的数据上传及控制,而分站主要完成对各环境参量的采集处理、显示、修改、输出量控制及CAN 总线通信[4],保证分站正常运行。分站部分总程序如图9 所示,输出量控制程序如图10 所示。第二部分为上位机管理。上位机利用可视化语言VB6.0 编制[5],重点放在对智能控制器的辅助管理。
3.2 CAN 总线通信设计
CAN 总线属于总线式串行通信网络,可以多主方式工作,方便构成多机控制系统,网络上的任意节点均可向其他节点发送信息;节点信息按系统实时性分成不同的优先级;CAN总线采用短帧结构,通过报文滤波实现点对点、组成或全局广播几种数据传送方式[6][7]。系统中使用的CAN 协议以CAN 帧的结构为基础,基于主从式网络结构,采用标准帧格式,支持CAN2. 0A 技术规范。
CAN 总线通讯软件设计包括CAN 总线的初始化、报文发送和报文接收3 个模块。系统只有在复位模式下才能对CAN 控制器进行初始化。CAN 报文接收程序如图11 所示,发送程序如所示。
4 调式与实验
通过对本设计系统的调试和模拟实验[8],当设定温度、湿度、光照度等环境因子分别为25℃、80%RH、35000lx 的情况下,实测结果分别是:24.7℃、79.3%RH、35751lx,测量误差在监控范围内,较好地达到了设计要求。
5 结论
目前计算机技术发展迅速, 单片机嵌入式开发前景光明。同时单片机经济实用、开发简便,因而在工业控制、农业自动化、家电智能化等领域占据了广泛的市场。本文根据温室环境的特点,对基于单片机的温室智能控制系统进行了硬件电路设计,并根据作物环境要求进行了软件设计,实现了对温室环境因子的智能控制。系统在实验过程中运行稳定,效果良好,但仍需要在智能化方面加以改进。
