任硕果 黄冬贵
摘 要:在农业大棚中布置合理的无线传感器节点,采集大棚内空气温湿度、土壤温湿度、光照强度和二氧化碳浓度等环境数据,通过无线中继将环境数据传输到主控机房,该文开发基于Android的大棚环境监测软件,通过4G移动通信信号实现在手机或平板电脑上远程移动访问并控制大棚内的环境指标,使农作物处于最佳生长环境,提高农作物的产量和农业生产效率。
关键词:大棚 环境监测 Android
中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2019)01(a)-00-02
农业生产中,农作物的生长环境对作物的产量起着至关重要的作用。该文开发了基于Android的大棚环境监测软件,通过4G移动通信信号,实现在手机或平板电脑上远程获取并控制大棚内的环境指标。首先在农业大棚内布置合理的无线传感器节点,采集大棚内空气温湿度、土壤温湿度、光照强度和二氧化碳浓度等环境数据,通过无线中继,将传感器采集的数据传送到主控机房,主控机房的服务器端与移动手机客户端的连接采用4G通信信号。大棚中的传感器数据不间断地发送到主控机房,手机客户端可以通过环境监测APP随时访问服务器,获取大棚内环境数据,同时手机APP还可以远程控制大棚内的无线智能插座和无线电磁阀来开启或关闭风机、加热器、遮阳网和水泵等设备,实现大棚内环境指标的智能调节,使农作物生长在最优的环境中,农产品的产量和质量得到了很大提高,同时也降低了人力、物力的投入,提高了劳动生产率。
1 设计环境监测软件的Http服务器
在环境监测软件的服务器端设计一个Http服务器,支持客户端jason格式的数据请求。只有是http post请求时,才读取请求数据,解析出协议类型、请求名称和请求body三组数据,根据协议类型和请求名称返回http响应消息。
public Response serve(IHTTPSession session)
{
String httpResp = "";
String strBody = "";
//当前是http post请求时,才读取http body
if(session.getMethod() == Method.POST){
strBody = parsebody(session);
}
//读取请求 url
String strUrl = session.getUri();
//解析出请求名称和协议类型
String actionName = "";
String actionType = "";
String tmpArray[] = strUrl.split("/");
for(int i=0; i { String str = tmpArray[i]; if(str.equals("type")){ actionType = tmpArray[i+1]; } if(str.equals("action")){ actionName = tmpArray[i+1]; } } //根据协议类型,请求名称和解析内容,返回Http响应消息 httpResp = BaseAction.disposeAction("http",actionType, actionName, strBody, context, headers.get("remote-addr").toString()); return new NanoHTTPD.Response(httpResp); } 2 設计环境监测软件客户端的请求线程 环境监测软件客户端获取传感器数据的请求或开闭受控设备的请求,是通过执行请求线程实现的, 该线程既可以执行一次,也可以循环重复执行同一个请求。 public class RequestThread extends Thread { public void run() { if(mRequest!=null && mApp!=null) { //获取协议类型、action名称和请求body String protocolType = mRequest.getProtocolType(); String actionName = mRequest.getActionName(); String requestBody = mRequest.getBody(); if(protocolType!=null && actionName!=null && requestBody!=null) { //url组装 String url = "http://"+mApp.getServerIpStr()+":"+AppConfig.HTTP_SERVER_PORT; url += "/type/"+protocolType;//设置协议类型 url += "/action/"+actionName;//设置action名称 String response = ""; response = NetUtil.sendByPost(url, requestBody);//采用http post的方式发送jason报文 //将服务器端回应的结果保存到请求对象中 mRequest.setResponseStr(response); result = RequestResult.RESULT_SUCCESS; } } } } 3 结语 该文设计开发的大棚环境监测软件实现了Android移动客户端APP随时获取主控机房服务器的环境数据,通过构建Http服务器,客户端以线程形式发送Jason格式数据请求,完成环境数据的监控和受控设备的启闭,经过实际的大棚环境测试,软件功能满足现场实际需求,软件性能达到客户的要求,适用于小范围的监测,软件已经获得软件著作权登记号,在社会生产环境监测方面具有借鉴意义和推广价值。 参考文献 [1] 秦琳琳,陆林箭,石春,等.基于物联网的温室智能监控系统设计[J].农业机械学报,2015,46(3):261-267. [2] 李慧,刘星桥,李景,等.基于物联网Android平台的水产养殖远程监控系统[J].农业工程学报,2013,29(13):175-181. [3] 李顺,冯雨谦,周晓岚.基于ZigBee无线网络的养殖场信息监测系统设计[J].陕西科技大学学报,2016(1):164-170.