㈠ Android开发在物联网系统中怎么去用

移动便携设备,手机、平板是Android系统,在最底层传感器是检测模块。收集到的数据通过zigbee 发送给协调器,协调器给网关,最后到服务器,然后Android将服务器的数据外部调用(归根结底,还是与服务器的通信)。这时候用到的就是Web Service,而手机端就是客户端。完成这个调用,首先要在服务器端部署Web Service,之后再在客户端书写代码,访问接口,调用数据。把这个思路理清,接下来再去做,而我在这里首先将客户端的代码书写,服务器端在下一篇中给出详细的说明。

一、准备工作

1.SDK中并没有Web Service的类库,这就需要第三方类库调用,就是koasp2,简单的说,你得先导入一个jar包。完成之后如下图。

2.部署服务器端首先需要Tomcat,这是下一篇中才会用到的,我在这儿只是先把它准备好,客户端的简单调用用不到它。http://jingyan..com/article/86f4a73e5be03237d65269ef.html这是tomcat的安装教程,过程很详细;之后,http://www.hu.com/question/22893032这是将tomcat导入到ADT环境下的eclipse的教程,它的下载过程还是比较虐心的。

二、接下来就是代码的编写过程(注:这是客户端的)

1.首先还是Manifest,给它一个网络访问权限

2.书写xml布局文件(还是因为自己做得界面太丑,不粘了)

3.书写Activity。新建一个类(这只是代码示例,需要写的就是这些,可以传多个参数),

public class CommonWebService {

// 所调用的WebService的终端

public static String endpoint = "http://192.168.1.21:8080/hello/hellowordPort";

// 所调用的WebService的地址

public static String ip = "192.168.1.21";

// 所调用的WebService的命名空间

public static String namespace = "http://abcde/";

// 所调用的WebService中的方法

public static final String Infusion_METHOD = "MygetInfusion";

public void show_Infusion() {

new Thread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

// 定义命名空间

String nameSpace = "http://abcde/";

// 定义调用方法名称

String methodName = "query_Infusion";

// endPoint以及soapAction

String endPoint = "http://192.168.1.21:8080/hello/hellowordPort";

String soapAction = "http://abcde/openlamp";

// 指定WebService的命名空间和调用方法

SoapObject soapObject = new SoapObject(nameSpace, methodName);

// 生成调用WebService方法调用的soap信息,并且指定Soap版本

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);

envelope.bodyOut = soapObject;

//并不是dotnet开发的Web Service

envelope.dotNet = false;

// 输出

envelope.setOutputSoapObject(soapObject);

// 定义一个HttpTransportSE对象

HttpTransportSE transport = new HttpTransportSE(endPoint);

try {

transport.call(soapAction, envelope);

// transport.call(null, envelope);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (XmlPullParserException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 获取返回的数据

SoapObject object = (SoapObject) envelope.bodyIn;

// 获取返回的结果

String result = null;

result = object.getProperty(0).toString();

Message message = handler_shuye.obtainMessage();

message.obj = result;

handler_shuye.sendMessage(message);

}

}).start();

}

public static String reslut_shuye;

private static Handler handler_shuye = new Handler() {

@Override

public void handleMessage(android.os.Message msg) {

// 将WebService得到的结果返回给TextView

reslut_shuye = msg.obj.toString();

};

};

}

4.在上述的代码中,需要注意的几点,你调用Web Service,你得先弄明白四个值:命名空间、调用的方法名称、EndPoint、SOAP Action。因为服务器端是自己部署,wsdl就要自己写,自己会部署服务器端了,这四个值也就一幕了然了。

㈡ 农业物联网系统之智能控制功能有哪些

1.温室环境实时监控
(1) 通过电脑或者手机远程查看温室的实时环境数据,包括空气温度、空气湿度、土壤温度、土壤湿度、光照度、二氧化碳浓度、氧气浓度等。远程实时查看温室视频监控视频,并可以保存录像文件,防止农作物被盗等状况出现。
(2) 温室环境报警记录及时提醒,用户可直接处理报警,系统记录处理信息,可以远程控制温室设备。
(3) 远程、自动化控制温室内环境设备,提高工作效率,如自动灌溉系统、风机、侧窗、顶窗等。
(4) 用户可以直观查看温室环境数据的实时曲线图,及时掌握温室农作物生长环境。

2 智能报警系统

(1) 系统可以灵活的设置各个温室不同环境参数的上下阀值。一旦超出阀值,系统可以根据配置,通过手机短信、系统消息等方式提醒相应管理者。
(2) 报警提醒内容可根据模板灵活设置,根据不同客户需求可以设置不同的提醒内容,最大程度满足客户个性化需求。
(3) 可以根据报警记录查看关联的温室设备,更加及时、快速远程控制温室设备,高效处理温室环境问题。
(4) 可及时发现不正常状态设备,通过短信或系统消息及时提醒管理者,保证系统稳定运行。

3 远程自动控制
(1) 系统通过先进的远程工业自动化控制技术,让用户足不出户远程控制温室设备。
(2) 可以自定义规则,让整个温室设备随环境参数变化 自动控制,比如当土壤湿度过低时,温室灌溉系统自动开始浇水。
(3) 提供手机客户端,客户可以通过手机在任意地点远程控制温室的所有设备。

4 历史数据分析

(1) 系统可以通过不同条件组合查询和对比历史环境数据。
(2) 支持列表和图表两种不同方式查看,用户可以更直观看到历史数据曲线。
(3) 与农业生产数据建立统一的数据模型,系统通过数据挖掘等技术可以分析更适合农作物生长、最能提高农作物产量的环境参数,辅助决策。

5 视频监控
(1) 视频采集。
(2) 视频存储。
(3) 视频检索及播放。

6 农产品安全溯源

7 农业知识库

(1) 知识采集。
(2) 知识检索及共享

8 手机客户端
(1) 用户可以通过文朗润诚-农业温室智能监控系统手机客户端,随时随地查看自己负责温室的环境参数。
(2) 用户可以使用手机端及时接受、查看温室环境报警信息。
(3) 通过手机端,用户可以远程自动控制温室环境设备,如自动灌溉系统、风机、顶窗等。