APP下载

基于Android平台的温室监控系统设计

2017-09-28赵江武高涛陈教料王彪

江苏农业科学 2017年13期
关键词:智能监控温室

赵江武+高涛+陈教料+王彪

doi:10.15889/j.issn.1002-1302.2017.13.052[HT9.]

摘要:针对温室远程监控的需要,提出一种以Android平台智能设备为终端的温室监控系统设计方案。系统由基于控制器局域网络(controller area network,CAN)总线的嵌入式子系统、温室本地服务器和Android客户端等3部分组成。基于CAN总线的嵌入式系统用于环境数据的采集和设备控制;温室本地服务器采用Java开发的监控主程序来处理、传输温室采集的数据,实现温室的本地监控;Android客户端采用基于Java开发的监控终端程序实现对温室的远程移动监控。结果表明,基于Android平台的温室监控系统能可靠地实现对温室内环境的监控。温室作业人员能够通过本系统实现对温室高效、优质调控。

关键词:温室;智能监控;Android;远程移动

中图分类号: TP277.2;S126文献标志码: A[HK]

文章编号:1002-1302(2017)13-0189-04[HS)][HT9.SS]

收稿日期:2016-04-05

基金项目:国家自然科学基金(编号:61374094)。

作者简介:赵江武(1990—),男,浙江温州人,硕士研究生,主要从事农业工程研究。E-mail:zhaogghg@126.com。

通信作者:陈教料,博士,副教授,主要从事农业工程研究。E-mail:jlchen@zjut.edu.cn。

[ZK)]

当前,随着国内温室大棚的迅速增多,为提高农作物生产效率,增加经济收入,温室大棚的自动化测量、自动化控制成为实现温室优质、高产的发展方向。为实现低耗、高产、优质的现代温室生产形式,研究对温室内环境的高效调控是非常必要的,这对温室控制技术和理论都提出了更高的要求。

随着传感器技术、计算机控制、网络通信以及嵌入式系统等技术的快速发展,融合上述高新技术的温室监控系统逐渐被应用到温室监控领域[1-3]。马增炜等设计了基于Wi-Fi网络的温室环境远程监控系统[4]。温室环境监控系统是提高温室作物产量、降低温室能耗、减少劳动力成本的关键技术,代表了温室生产的核心竞争力。随着移动互联网技术和通信技术的发展,Android平台已经成为智能手机中用户量最多的操作系统,且能提供良好的人机界面[5]。已有一些研究者将Android系统应用到温室环境的监控中,如陈美镇等利用异构网络来监控温室网关数据[6]及陈大鹏等基于Android平台设计的温室环境远程监控系统[7]等。

本研究设计一种基于Android平台的温室监控系统,该系统能实现温室环境参数的自动采集、实时显示及温室现场设备的控制,并结合Android平台的移动便携性优势,实现温室的远程移动监控。

1温室监控系统方案

本研究的温室监控系统总体上可分为3部分,即基于CAN总线的嵌入式系统、温室本地服务器和Android客户端(图1)。各部分子系统相对独立,温室本地服务器作为系统的中间部分分别与处在系统两端的嵌入式系统和Android客户端交互,依赖聚合性较低,具有良好的可扩展性。

基于CAN总线的嵌入式系统主要负责温室数据(如温度、湿度、风速、光照、土壤水分等温室信息)的采集,并对温室环境各子系统的继电器进行控制,继电器的相应动作控制着温室环境调控设备(风机、天窗、加热器、湿帘等)的启停。嵌入式系统分为4层:(1)各个温室的传感器和控制执行器的设备层,负责温室数据、作物数据的采集和温室的机构控制;(2)设备层节点的CAN接口模块与嵌入式系统连接的CAN总线层,负责将分散在温室各处的传感器和环境控制执行器与嵌入式系统进行通信;(3)嵌入式系统的现场监控层;(4)温室本地服务器的中央监控层。嵌入式系统通过局域网实现与温室群中央服务器的TCP/IP协议通信。温室环境由现场监控层嵌入式系统进行控制,也可以由温室中央监控主机进行跨级监控。

[FK(W16][TPZJW1.tif][FK)]

温室本地服务器主要负责数据的传输和处理。基于CAN总线的嵌入式系统向温室本地服务器发送采集的数据并接受服务器的控制指令。本地服务器将采集的温室数据进行存储并通过网络服务器发送至Android客户端。Android客户端通过移动网络与服务器通信,温室作业人员即可在温室监控系统的Android客户端上实现对温室的远程信息采集、数据查询、设备控制等功能。

[WTHZ]2Android客户端的设计与实现

Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑。Android系统支持触屏、音频、视频等功能,在众多嵌入式系统领域被广泛应用,如采用Android手机作为机器人操作控制器、飞行器摄像的显示端、智能家居的控制端等[8]。考虑到Android平台的普及性和Android应用人性化的人机交互界面等优点,采用具有Android平台的手机和智能平板电脑作为温室监控系统的远程终端,以实现对温室的远程移动监控。

2.1客户端设计

采用C/S模式设计温室监控系统Android客户端,通过移动网络与服务器建立连接,以实现对温室本地服务器数据库的实时读取和远程控制模块的访问。图2显示了Android客户端登录模块、主界面模块、温室环境数据模块、温室控制模块的主要程序流程。[FL)]

[FK(W25][TPZJW2.tif][FK)]

[FL(2K2]Android客户端的设计逻辑如图3所示。主要分为4个层面。

2.1.1人机交互表层人机交互表层主要负责向用户输出温室状态信息并接受用户输入的控制信息。主要包括:(1)如用户登录、温室监控数据显示、视频监控等的Activity类。(2)Actitity加载的XML布局文件,按钮对应的ButtonView和文本对应的TextView等。(3)自定义控件和重写控件包括列表ListView、彈出窗口Popwindow、自定义适配器Adapter等。endprint

2.1.2逻辑业务层逻辑业务层主要处理输入和输出的信息,处在人机交互表层和数据交换层之间,在数据交换和处理中起承上启下的作用。主要包括:(1)在后台运行的系统服务Service,主要负责收到网络通信时的事件处理。(2)负责在Activity和Service之间发送广播和通知的Broadcast。(3)对人机交互层输入控件的监听,如当用户按下按钮时,监听到输入控制信息并采取相应的逻辑操作。

2.1.3数据访问层主要负责处理用户本身操作产生的控制数据和从服务器获取的远程数据,这些数据需要在Android设备本地存储,数据量大,数据类目多。数据访问层采用关系型数据库MySQL,支持多线程,优化SQL查询方法,有效地提高查询速度。实现用户查找数据表的选择、插入、更新和删除的操作。

2.1.4通信层负责Android客户端与服务器之间的通信,主要包括:(1)Socket套接字通信方式。(2)传输控制协议(transmission control protocol,TCP)与服务器进行长连接指令操作,通过服务器和客户端之间一问一答的形式实现数据交换。(3)无连接的用户数据报协议(user datagram protocol,UDP)用于处理视频、语音等数据包。相较于TCP协议,UDP负载比较小,可以避免流量堵塞。

2.2服务器程序设计

温室本地服务器根据采集到的环境信息和植物的生长需求对环境进行调控,具有对温室数据存储、传输和调控管理功能。

服务器软件采用C/S架构,基于Java和结构化查询语言(structured query language,SQL)开发,适用于Windows XP、Windows 7等操作系统。监控数据和控制指令等数据通过本地SQL Server数据库进行存储,经服务器一同传送至Android客户端。当温室监控系统使用Android作为监测控制端时,Android客户端实时接收来自服务器的温室信息数据,刷新客户端显示。当接收到用户的控制操作时,Android客户端把控制指令和数据通过服务器发送给温室现场设备层,进行具体的温室环境控制,以实现Android端对温室的远程控制。

2.3服务器通信

Android客户端需要显示如温室内外温度、湿度等的温室状态,另外需要向温室服务器发送控制指令,这些功能的实现需要客户端与服务器之间的远程通信。本研究设计的服务器与Android客户端采用Socket通信机制。Socket的主要特点是数据丢失率低、使用简单且易于移植。在双方建立起连接后可以直接进行数据传输,在连接时可实现信息的主动推送,而不需要每次由客户端向服务器发送请求[9]。网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。IP协议对应于网络层,TCP协议对应于传输层(圖4)。而Socket则是对TCP/IP协议的封装和应用,本身并不是协议,而是一个调用接口(API)。服务器程序通过调用Socket把数据通过TCP的面向连接与客户端进行数据交互。

[FK(W8][TPZJW4.tif][FK)]

客户端进程与服务器进程之间通信的Socket的连接过程可以分为4个步骤(图5)。

服务监听:服务器端Socket()并不连接具体的客户端Socket(),而是处于等待连接、实时监控连接端口的状态。服务器在创建Socket()后,要指派监听的端口等待客户端请求,因此需要绑定端口号的操作Bind()。绑定之后,服务器处于监听状态,设置1个监听程序Listen(),等待客户机连接绑定的端口。Accept()方法用于接收客户端的数据。在没有数据进行接收时处于堵塞状态,一旦接收到客户端的连接请求Connect()后,即成功建立通信。

客户端请求:由客户端的套接字提出连接请求Connect(),要连接的目标是服务器端的Socket()。为此,客户端的Socket()必须先描述它要连接服务器的Socket(),指定服务器端Socket()的IP地址和端口地址,然后向服务器端套接字提出连接请求Connect()。

连接确认:当服务器端监听到或者接收到客户端的连接请求Connect时,响应客户端的请求执行Listen(),建立一个新的线程,把服务器端Socket()的描述发给客户端。一旦客户端确认描述,连接即建立完成。而服务器端Socket()继续处于监听状态,以接收其他客户端套接字的连接请求。

在成功建立通信后,可以通过Read()和Write()进行收发数据的读写。在服务器Read()后,进行相应的处理,把处理结果Write()给客户端,客户端Read()到服务器发送的应答数据,客户端与服务器之间即完成一次通信。继续通信则执行Write()和Read()即可,通信结束则执行Close()断开连接。

[FK(W16][TPZJW5.tif][FK)]

[WTHZ]3Android客户端开发与调试

在Windows系统下利用Eclipse+SDK(Software development kit)+ADT(Android development tools)进行温室监控系统Android客户端的开发,将开发完成生成的APK(Android package)安装到Android手机或平板电脑中。

打开应用,在登录界面(图6-a)输入用户账号、密码和服务器对应的IP地址和端口后,登录成功则界面跳转到图6-b所示的温室监控系统主界面。点击主界面下列的按钮跳转到相应的功能界面,主要的功能有温室环境监控数据的查看、温室远程控制、作物生态信息的实时查看、历史信息回顾和用户个人信息设置等功能。图6-c所示的温室状态信息为温室本地设备层各CAN节点传感器所采集的实时数据,包括室内温度、湿度、CO2浓度、室外温度、风速和光照度等。通过选择勾选节点,客户端会每隔5 min实时刷新该界面或者用户点击刷新按钮手动刷新数据。选中对应的状态数据再点击详情按钮,即会弹出各观测点的详细数据。程序接收到刷新任务,向服务器发送TCP请求,并设置新的等待进程和监听任务。当程序接受到服务的TCP应答返回时,将返回数据进行解析并存储,然后刷新对应的温室环境信息。[FL)]endprint

[FK(W17][TPZJW6.tif;S+2mm][FK)]

[FL(2K2]图6-d所示的是用户实现远程控制的温室远程控制界面,通过选择各CAN节点的开启关闭状态,进行是否远程控制的选擇。详细的控制操作通过点击控制按钮跳转到相应的控制子系统,如灌溉系统、通风系统、光照系统、加热系统、补光系统等。点击查看以往数据按钮,则会跳出历史温室内环境数据等信息。通过历史温室观察数据,用户可以更好地制定温室控制策略,以达到相应的生产指标和经济效应。

4结论

本研究搭建的基于Android平台的温室监控系统,实现了对温室内环境的本地以及远程监控,利用Android移动设备的可移动性和实时数据传输优势,避免了人工管理温室无法实时监控温室的问题。根据监控数据制定相应的温室控制策略,可以实现温室的优质高效调控。

[HS2]参考文献:

[1][ZK(#]韩华峰,杜克明,孙忠富,等. 基于ZigBee网络的温室环境远程监控系统设计与应用[J]. 农业工程学报,2009,25(7):158-163.

[2]张猛,房俊龙,韩雨. 基于ZigBee和Internet的温室群环境远程监控系统设计[J]. 农业工程学报,2013,29(增刊1):171-176.[HJ1.93mm]

[3]秦琳琳,陆林箭,石春,等. 基于物联网的温室智能监控系统设计[J]. 农业机械学报,2015,46(3):261-267.

[4]马增炜,马锦儒,李亚敏. 基于WIFI的智能温室监控系统设计[J]. 农机化研究,2011(2):154-157,162.

[5]韩剑,莫德清. 基于Android与GSM的温室大棚远程监控系统[J]. 江苏农业科学,2015,43(4):397-399.

[6]陈美镇,王纪章,李萍萍,等. 基于Android系统的温室异构网络环境监测智能网关开发[J]. 农业工程学报,2015,31(5):218-225.

[7]陈大鹏,毛罕平,左志宇. 基于Android手机的温室环境远程监控系统设计[J]. 江苏农业科学,2013,41(9):375-379.

[8]李娜,周峰. 基于Android平台软件开发方法的研究[J]. 信息通信,2015(6):38-39.

[9]倪凯,夏海波,魏建明,等. 一种移动终端远程数据访问控制方法[J]. 计算机应用与软件,2012,29(6):230-232.endprint

猜你喜欢

智能监控温室
现代温室羊肚菌栽培技术
苍松温室 苍松灌溉
苍松温室 苍松灌溉
可以避免一个温室化的地球吗?