移动便携设备,手机、平板是Android系统,在最底层传感器是检测模块。收集到的数据通过zigbee 发送给协调器,协调器给网关,最后到服务器,然后Android将服务器的数据外部调用(归根结底,还是与服务器的通信)。这时候用到的就是Web Service,而手机端就是客户端。完成这个调用,首先要在服务器端部署Web Service,之后再在客户端书写代码,访问接口,调用数据。把这个思路理清,接下来再去做,而我在这里首先将客户端的代码书写,服务器端在下一篇中给出详细的说明。
一、准备工作
1.SDK中并没有Web Service的类库,这就需要第三方类库调用,就是koasp2,简单的说,你得先导入一个jar包。完成之后如下图。
2.部署服务器端首先需要Tomcat,这是下一篇中才会用到的,我在这儿只是先把它准备好,客户端的简单调用用不到它。http://jingyan.baidu.com/article/86f4a73e5be03237d65269ef.html这是tomcat的安装教程,过程很详细;之后,http://www.zhihu.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就要自己写,自己会部署服务器端了,这四个值也就一幕了然了。
在本文中,我们将向您展示如何使用阿里云IoT平台轻松将Android Things连接到您的物联网(IoT)网络,我们将为该项目构造一个示例:功能性甲醛和温度传感器。有些人可能不了解Android Things,简单来说, 它就是让开发者可以使用Android开发工具开发嵌入式设备 。
项目设备清单
NXP i.MX7D
设备接线图
在设置硬件之后,是时候在阿里云IoT平台上配置软件了。
首先,导航到物联网控制台并激活阿里云IoT。创建高级产品并添加产品属性定义:
Android Things设备开发
1、使用Android Studio创建Android Things项目,并授予网络权限
2、将“eclipse.paho.mqtt”存储库添加到gradle
3、通过I2C读取DHT12数据
4、通过UART获取Ze08CH2O数据
5、创建阿里云IoT连接并报告数据
设备启动后,您可以在阿里云IoT控制台上查看设备的实时数据, 设备管理 - >运行状态 。
此项目在GIT上的地址是:https://dzone.com/articles/integrating-android-things-with-alibaba-cloud-iot,有兴趣的朋友可以试试。
物联网是学物联网概论、物联网硬件基础、无线传感网应用技术、RFID 应用技术、M2M 应用技术、物联网应用软件开发、Android 移动开发等。
主要学:离散数学、程序设计、数据结构、计算机组成、计算机网络、 *** 作系统、数据库系统、物联网通信技术、RFID原理及应用、传感器原理及应用、物联网中间件设计、嵌入式系统与设计、物联网控制原理与技术等。
物联网工程专业是一门普通高等学校本科专业,属于计算机类专业,基本修业年限为四年,授予工学学士学位。
该专业要求掌握数学和其他相关的自然科学基础知识以及和物联网相关的计算机、通信和传感的基本理论、基本知识、基本技能和基本方法,培养能够系统地掌握物联网的相关理论、方法和技能,具备通信技术、网络技术、传感技术等信息领域宽广的专业知识的高级工程技术人才。
就业前景
物联网是继计算机、互联网和移动通信之后的又一次信息产业的革命性发展,目前被正式列为国家重点发展的战略性新兴产业之一。物联网产业具有产业链长、涉及多个产业群的特点,其应用范围几乎覆盖了各行各业。物联网专业是教育部允许高校增设新专业后,高校申请最多的学校,这也说明了国家对物联网经济的重视和人才培养的迫切性。
物联网工程专业毕业生能在政府管理部门、科学研究机构、设计院、咨询公司、建筑工程公司、物业及能源管理、建筑节能设备及产品制造生产企业等单位从事建筑节能的研究、设计、施工、运行、监测与管理工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)