温室生产作为高效、高科技含量的大规模生产方式已经成为世界农业的发展趋势。温室设施的自动监测和控制技术可以为农作物创造良好的生长环境,节约人力成本,提高农作物的产量,因此需要开发与温室相关的自动化技术,以降低运行成本、提高效率、实现环境的精确控制。我国目前的温室没施综合监测水平不高,控制能力比较差,带有综合环境自动调节的高科技温室主要从国外引进。笔者开发了以S3C2 440为核心的嵌入式环境监测系统可以完成温室环境参数的监测和收集,同时通过输出机构实时控制温室环境以达到温室监测和控制智能化的目的,具有精度高,智能控制等优点。
软件工程领域最重要的、具有划时代意义成果之一的就是统一建模语言UML(Unified Modeling Language)的出现。开发系统可以借助UML的CASE工具来完成从软件的分析、设计、实现到测试的一系列软件工程过程,大大提高了软件开发的复用性和效率,降低了软件开发过程中的返工率。文中采用了UML方法来设计一个软硬件都要考虑的温室环境监测系统,从而体现了UML强大的表达能力,该系统用UML表达清晰、严谨、易于实现。
1 温室环境监测系统组成
系统主要架构如图1所示,系统由上位机、下位机和执行结构组成。上位机为PC机可以处理下位机传送的温室环境参数同时可以给下位机发出指令。下位机是以SamsungS3C2440为主控制器,资源丰富功能强大,其主频为400MHZ,最高可达533MHZ,内存为64MSDRAM,数据总线32 bit,S3C2440还支持以太网卡,很容易实现网络功能。其他主要部件有温湿度传感器SHT11,光照传感器TSI2561和CO2传感器NAP-21ACO2液晶显示模块等基本部件。输出执行结构包括循环风机、喷水系统、内外遮阳电机等。
1.1 传感器电路
1.1.1 温湿度传感器
SHT11温湿度传感器采用SMD(LCC)表面贴片封装,由于将传感器与电路部分结合在一起,因此传感器具有比其它类型的湿度传感器优越的多的性能。传感器可直接通过I2C总线与ARM连接,减少电路硬件成本,简化电路。系统中为了同时测量温室内的温湿度值,将各SHT11的SCK先接到S3C2440的同一个I/O口,而DATA线则分别接到不同的I/O上。
1.1. 2 CO2浓度监测和光强度监测
CO2浓度监测采用NEMOTO公司生产的NAP-21ACO2传感器,NAP-21A输出线性好,有较好的长期稳定性与极好的重复性及精度。该传感器是一种热传导式CO2传感器,在不同浓度的CO2气体中其阻值与CO2的浓度成线性关系,传感器通过放大器连接。光强测量选用TAOS公司的TSI25 61光强度传感器,该传感器具有数字式输出端口和标准I2C总线接口,测量的照度范围为1~70 000lx,功耗仅为0.75mW。TS1256具有高速、低功耗、宽量程、可编程配置的特点。可以设置光强度上、下阈值,控制执行结构的遮阳板。
1.2 输出执行结构
系统的执行机构包括循环风机、喷水系统、内外遮阳电机等。利用微控制器输出高低电平,控制开关。当温室内的温度、湿度、CO2等各个环境参数,通过无线数据采集系统采集到微控制器并显示出来,再由有线通讯模块传送到上位机系统,与数据库进行比对,得出适合该种作物的环境参数,上位机通过通讯模块发送信息到下位机,下位机再根据各个信息发出执行命令控制执行机构。当然也可以直接通过下位机发出执行命令控制执行结构,注意下位机执行输出机构只在特殊情况下使用。具体部署图如图1所示。
带阴影的是处理器,处理器处理温室环境信息,发送到执行装置,不带阴影的是执行装置,分别执行相关命令。
2 UML静态建模
2.1 用例图
用例图(Use Case Diagram)就是角色、用例以及它们之间的关系构成的图。是对系统功能的陈述。改图说明用例模型中的关系,如图2所示。
本系统中,远端管理员通过上位机可以查看历史数据,设置环境参数,设定温湿度阈值,光照阈值,CO2阈值,发送命令到下位机。下位机可以根据上位机发送的阈值控制执行机构,下位机通过传感器收集温室环境的信息,下位机可以把信息传送给上位机。本地管理员也可以通过下位机的显示模块直接控制执行结构。
2.2 类 图
类图来描述系统静态的对象结构及其相互关系。从用例图(图2)中可分解出一些类,并将这些类之间的结构描述出来。类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系,用于描述系统结构化设计。
本系统中,两个管理类是远程管理员(Remote-admin)和本地管理员(Local-admin)对上位机类(The host computer)和下位机类(Lower machine)操作.下位机类对传感器类(Sensor)、执行机构类(Run)和显示模块类(Show)进行操作。远程管理类操作就是login;本地管理类的操作login;上位机类操作是:inquiry,set,send,receive,summit;下位机类操作是:set-show,send,receive,set-run;传感器类属性是:seneor_id,操作是:temperature_measure,humidity_measure,light_measure,CO2_measure,等操作;显示模块类是操作是:
displayr;执行机构类属性是:manchine_id,操作是:set-light,set-wind,set-humidity,系统类图如图3所示。
3 UML动态建模
3.1 状态图
状态图(State Diagram)是描述一个实体基于事件反应的状态行为,显示该实体如何根据当前所处状态对不同的时间做出反应的。
本系统中:)下位机从各个传感器读取数据,显示到显示模块:2)可以通过下位机根据读取的数据直接设定执行机构,执行输出;3)下位机把接受的数据传送给上位机,上位机根据历史数据做出判断得到适合该作物的环境参数,发送给下位机;4)下位机接收上位机传送来的数据,显示到显示模块:5)下位机根据接受的数据发出命令,设定执行结构,执行输出。
系统状态图如图4所示。
3.2 序列图
UML序列图(Sequence Diagram)一般用于确认和丰富一个环境的逻辑。一个使用情境就是系统潜在的使用方式的描述,就是它的名称所要描述的,其逻辑可能是一个用例的一部分,或是一条备选路线;可能是一个贯穿单个用例的完成流程,也可能包含几个用例中的流程。系统序列图如图5所示。
本系统的序列图对应的信息:1)传感器读取温室内温湿度、光照、CO2参数值;2)下位机接受传感器数据,并显示到显示模块;3)下位机可以直接设置执行机构;4)下位机发送数据到上位机,上位机做出判断送出设定值;5)下位机接受上位机发送的设定值,显示到显示模块;6)下位机根据设定值发送命令执行输出机构,调整温室环境。
4 结论
该系统以S3C2440为核心,采用UML方法,设计了一个智能的温室环境监测系统。实际应用表明该系统具有控制参数设定方便、控制精度高、稳定性好、人机界面友好等特点,有着极高的性价比和可行性。