AIoT 企业物联网平台实战03|学习笔记(二)

简介: 快速学习AIoT 企业物联网平台实战03

开发者学堂课程【阿里云 AIoT 物联网开发实战快速学习 AIoT 企业物联网平台实战03学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/754/detail/13231


AIoT 企业物联网平台实战03


2)、APP 端:轮巡查询业务服器,开机指令处理的结果是怎么样的,如果结果一致,可以直接告诉 APP 端的用户已经开机。

3)、RRPC 的调用方式:APP 同样送开机指令到业务系统,业务系统调用RRPC的接口,需要传递等待的超时时间,指令调用到物联网平台后,物联网平台并不会立刻给业务系统返回结果,而是把消息先推送到设备端,等待设备端的回复,设备端回复后,物联网平台会自动的匹配和前面的请求的关系,然后把最终状态返回到业务系统。

这个业务系统是通过一条 HTTP 的调用,直接在 response 里拿到了设备的响应结果,可以实时的通过 ApI 的方式给到消费端,消费者也能实时的感知设备的状态。

 

下图是背后的技术实践,如图:

image.png

业务服务器发起 RRPC API 调用,这里允许客户来传递超时时间是1~8秒,互联网平台收到这条请求之后并不会直接返回结果,而是给设备发送 MQTT 的报文,topic 上会携带 ID,设备收到 topic 消息后会做业务处理,处理后会响应 requestIDrespond ID,这两个 ID 要保持一致,互联网平台会匹配这两个 ID,匹配后会给业务服务器返回 HTTP response,可能是超时,也有可能是设备返回业务的结果。

交互的核心就是保持一致。

在真实的设备运行中会替换成具体的 id,设备回复的也需要回复这个 ID

 image.png

5、调用示例:

1)设备端模拟代码:

const mqtt require('aliyun-iot-mqtt');

//设备属性

const options ={

productKey:"a1HDWBEeHRa", deviceName:"7rmjmujquyh",

deviceSecret:"d19e5469ae45cfaadad48f5443bc6356" regionId:"cn-shanghai"};

//建立连接

const client mqtt.getAliyunIotMgttClient(options); client.subscribe(*/sys/${options.productKey}/${options.deviceName}/rrpc/request/+`)

client.on('message', function(topic, message) {if(topic.index0f(`/sys/${options.productKev}/${options.deviceName}/rrpc/request/`)>-1)

//接收并处理业务系统RRPC指令 handleRrpc(topic, message)

})

function handleRrpc(topic, message){

topic =topic.replace("/request/',"/response/');

console.log("topic=" topic)

console.log("payload="+ message)

//响应RRPC指令 payload自定义

const payloadJson ={bizCode:0};// 0 成功,400 充电失败client.publish(topic,JSoN.stringify(payloadJson));

}

2)设备端调用过程:

//2.构建RRPC 请求 const params ={

ProductKey:"a1HDWBEeHRa" DeviceName:"7rmjmujquyh",

RequestBase64Byte: new Buffer(JSON.stringify(payload)).toString("base64"), Timeout:B000};

co(function*() {

//3.发起API调用 try {

const response=yield client.request('Rrpc'params);

console.log(JSON.stringify(response));

console.log(response.RrpcCode);

if(response.RrpcCode=="SUCCESS"){

var resultJSON =new Buffer(response.PayloadBase64Byte, "base64').toString();

console.log("RRPC SUCCESS =-===>",JSON.stringify(JSON.parse(resultJSON)));}

} catch (err){

console.log("RRPC ERROR =--==>",JSON.stringify(err.data));

}

});

运行效果如下图:

image.png

首先启动设备,他会和云平台建立链接,通过云端的API发送指令,发送出去后,云端也实时的给设备端响应了结果。

设备端收到了 topic 以及业务的报文

整个过程就是一个同步过程,如果是异步调用,是没有业务报文的。业务报文需要新的匹配。

 

三、广播消息和设备影子

1、广播消息

很多智能门锁接入到互联网平台,可能要周期性的来更新,门锁配置或者是批量的修改初始密码。

pub broadcast 广播的 API,通过广播 API,可以通过一个 API 调用触达几十万的设备,面向的是当前在线的全量设备。

image.png

调用方式:参数设置好后,调用广播的 API,广播 API 会直接把消息发送到全量设备上,瞬间触达几十万在线设备。

广播限制:只给当前在线的设备,比如说全部在线的门锁或者是全部在线的充电宝机柜,但是很多时候有一些配置目的是送达到量设备,但并不太关心设备当前是在线还是离线,只需要平台能把这个信息触达就可以了,如果是在线,就及时收到,如果不在线,下次上线的时候,这个信息给到他也可以的,这种场景更多的是配置的全量的配置参数的更新,针对产量的一些配置的更新,提供了设备影子的这样功能。

2、设备影子

通过设备影子服务端可以调用影子的 API,把配置信息直接写入到设备在云端的影子上,是否在线影响不大,只要数据成功的写到影子上,设备影子会和设备做这种实时的通讯,离线设备上线后及时的同步信息。

比如说灯的颜色,灯的亮度的值会实时同步给刚刚开开启的电灯,设备开启后它会把进行同步下来,然后直接把颜色调整成红色或者是亮度值80%的亮度,同样设备影子还有一个特点是他只缓存最后一条指令,比如说灯,当前的灯不在线,云端给灯推送了一条信息,要调整成红色、亮度50%,过了一秒钟云端又改变了想法,要调整成绿色、亮度80%,过了一段时间又调整了一下规则,改成紫色亮度20%,这时候当灯在这此刻上线的时候,灯收到的是紫色20%的配置参数,前面的配置过程是被影子给默置掉了,看到的灯就直接是紫色20%红色50%,又变成绿色了80%,又变成紫色20%,看到的结果,就是最终的这个影子的结果。

 image.png

在控制台上,每一个设备上面也会有设备影子,整个设备影子的 jason 分几部分,状态包含两种,一种是云端的期望值,二是设备的真实情况的上报。以及原数据、期望值是在什么时间设置的,以及整个影子的版本。

同时我们的 SDK 也已经把影子做了完整的封装,只需要调用更新影子或者是获取影子的 API

image.png

 

也可以来看一下 update shadow 更新影子的操作,更新的内容,哪个设备更新影子?以及获取影子的数据的,调用就会返回它的影子数据。

 

以上就是整个物联网平台开发涉及到的主链路上报,采集以及控制指令的下行。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
物联网 Java Linux
一文读懂物联网 MQTT 协议之实战篇
一文读懂物联网 MQTT 协议之实战篇
385 1
|
7月前
|
传感器 物联网 5G
物联网(AIOT)--下一个技术风口
我们现在身边越来越多的硬件设备正在被嵌入芯片、软件,从而实现更多的功能和更紧密的联系。 物联网其实是借助互联网的力量,实现万物互联。
179 0
|
消息中间件 传感器 监控
IoT企业物联网平台,数据服务开发实战
IoT企业物联网平台开发实战
434 0
|
19天前
|
传感器 Rust 物联网
通义灵码在物联网项目中的实战应用
通义灵码在物联网项目中的实战应用
30 0
|
4月前
|
人工智能 网络协议 物联网
AIoT智能物联网平台技术架构
AIoT智能物联网平台的技术架构从终端设备到物联网平台可分为边缘侧网关、接入网关层、基础设施层、中台层和应用层。
201 14
|
3月前
|
传感器 安全 物联网
物联网安全实战:保护你的智能设备免受攻击
【9月更文挑战第3天】物联网安全是一项复杂而艰巨的任务,需要我们共同努力来应对。通过采取上述实战措施,我们可以有效保护智能设备免受攻击,保障用户的数据隐私和网络安全。在未来的物联网发展中,我们将继续面临新的安全挑战和威胁,但只要我们保持警惕和不断创新,就一定能够构建一个更加安全、可靠的物联网生态系统。
|
4月前
|
人工智能 自动驾驶 算法
AIoT(人工智能物联网)技术的发展前景
【8月更文挑战第1天】AIoT技术作为人工智能与物联网的深度融合产物,正展现出广阔的发展前景。随着技术的不断进步和市场需求的持续增长,AIoT技术将在更多领域和场景发挥重要作用,推动社会向更加智能化、高效化的方向发展。
|
5月前
|
安全 物联网 区块链
云端防御:云计算时代的网络安全策略与实战《未来已来:探索区块链、物联网与虚拟现实的融合革新》
【7月更文挑战第31天】在数字化转型的浪潮中,云计算已成为推动企业增长的核心动力。然而,随着数据和应用逐渐迁移到云端,网络安全问题也愈发严峻。本文将探讨云计算环境中的安全挑战,并提出相应的防御策略。通过分析云服务模型、安全威胁及信息安全技术的应用,结合代码示例,本文旨在为读者提供一套实用的云端安全防护方案。
49 1
|
7月前
|
传感器 物联网 Android开发
【Android App】物联网中指南针、计步器、感光器、陀螺仪的讲解及实战演示(附源码 超详细必看)
【Android App】物联网中指南针、计步器、感光器、陀螺仪的讲解及实战演示(附源码 超详细必看)
181 1
|
7月前
|
传感器 人工智能 自动驾驶
【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)
【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)
351 0

热门文章

最新文章

相关产品

  • 物联网平台