阿里云物联网平台总结

基于物模型开发设备步骤:
· 获取设备的身份认证信息。
· 当设备已经获取到IP地址之后,调用SDK提供的API将设备连接到物联网平台并进行认证。
· 当设备连接到阿里云物联网平台并通过认证后,调用SDK提供的API将设备属性的最新数据上报云端。
· 当设备的属性发生变化时,调用SDK提供的API将设备属性的最新数值上报云端。
· 向SDK注册服务处理函数,对收到的服务进行处理。
· 编写设备连接异常断开时的异常处理。

谈一谈我对物联网平台的了解:
首先设备连接进入物联网平台。怎么连接呢,可以WiFi接入,可以以太网接入。、可以网关接入等等。然后开发者设计将三元组等信息保存到每个设备上,当设备上电后,将这些信息从指定位置读取出来传递给SDK。连接可以使用动态注册LinkKit.getInstance().deviceRegister(),(来自于官方文档)
也可以使用LinkKit.getInstance().init()。(来自于iotx-Demo)

SDK是怎么获取设备属性的呢?

1、设备属性上报的话,可以直接使用
LinkKit.getInstance().getDeviceThing().thingPropertyPost()语句。

2、设置设备属性,可以使用DefaultAcsClient创建客户端对象,然后使用getAcsResponse方法来设置设备属性,response = client.getAcsResponse(request);对象。request参数是 SetDevicePropertyRequest对象。

3、设备端上报事件

 LinkKit.getInstance().getDeviceThing().thingEventPost( identifyID,  params, new IPublishResourceListener() {

            public void onSuccess(String s, Object o) {
                // 属性上报成功
                ALog.i(TAG, "上报成功 onSuccess() called with: s = [" + s + "], o = [" + o + "]");
            }

            public void onError(String s, AError aError) {
                // 属性上报失败
                ALog.i(TAG, "上报失败onError() called with: s = [" + s + "], aError = [" + JSON.toJSONString(aError) + "]");
            }
        });

4、执行服务
InvokeThingServiceRequest

InvokeThingServiceRequest request = new InvokeThingServiceRequest();
response = client.getAcsResponse(request);

整个方法如下:

public static InvokeThingServiceResponse.Data InvokeThingService(String IotId, String ProductKey, String DeviceName,
                                                                     String Identifier, String Args) {
        InvokeThingServiceResponse response =null;
        InvokeThingServiceRequest request = new InvokeThingServiceRequest();
        request.setArgs(Args);
        request.setDeviceName(DeviceName);
        request.setIotId(IotId);
        request.setIdentifier(Identifier);
        request.setProductKey(ProductKey);

        try {
            response = client.getAcsResponse(request);

            if (response.getSuccess() != null && response.getSuccess()) {
                LogUtil.print("服务执行成功");
                LogUtil.print(JSON.toJSONString(response));
            } else {
                LogUtil.print("服务执行失败");
                LogUtil.error(JSON.toJSONString(response));
            }
            return response.getData();

        } catch (ClientException e) {
            e.printStackTrace();
            LogUtil.error("服务执行失败!" + JSON.toJSONString(response));
        }
        return null;
    }

通信方式概述一定要看
物联网平台流转数据到服务器
在这里插入图片描述
服务器远程控制设备
在这里插入图片描述物联网平台通信理解:
从上面两个图可以看到,我们有物联网通信包括设备、云平台、企业服务器,主要这三个部分。
设备需要和云平台建立连接。
设备属性上报流程:
1、设备中应该有个文件存储现在设备信息,比如空调中应该有一个文件存储空调现在的温度、湿度、风力等级这些信息。
2、设备端SDK可以使用文件输入流或者读取properties文件获取设备目前运行信息。
3、接下来,设备端SDK可以使用thingPropertyPost方法上报设备属性给云平台。
4、云平台支持多种设备数据流转(设计服务端订阅、消费组)。

设备事件上报类似,使用的方法是thingEventPost方法。

设置设备属性:
1、企业服务器直接调用setDevicePtoperty方法通知云平台。
2、物联网平台接收到设置设备属性请求后,发送设置设备属性请求给设备。
3、设备端SDK收到请求之后,就设置设备属性。

服务端调用设备服务类似于设置设备属性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值