物联网平台开发浅析和实战(二)

简介: 物联网平台使用教程,包括云产品流转和服务端订阅。

1、前言

内容:物联网平台消息流转,包括云产品流转和服务端订阅 官网地址
时长:建议学习时长整体50分钟,理论40分钟,实战10分钟
代码:设备端demo、服务端demo
约定:${productKey}、${deviceName}是占位符,意思是设备自己的 productKey 和 deviceName
导航:上一课 下一课待续

上节课程遗留了一些问题
• 设备通过物联网平台上报了消息,那么消息如何展示到我的网页上呢?
• 设备只能往自己的topic发送消息,那么设备A如何发送消息给设备B呢?
以上场景可以使用我们的规则引擎来解决。

2、规则引擎是什么、能干什么

规则引擎是物联网平台的一个重要功能组件,包含云产品流转和服务端订阅两个主要功能。云产品流转是物联网平台把收到的消息流转到阿里云的云产品,包括把消息流转回物联网平台(消息从一个Topic流转到另一个Topic)。服务端订阅是物联网平台把设备上报的消息直接推送到用户的业务服务器。如果说物联网平台是设备数据上云的重要门户,那么规则引擎就是数据进门后云游世界的摆渡车。
image.png

3、云产品流转

3.1、消息展示到网页

正常情况下用户有自己的业务系统,业务系统从数据库获取到数据然后展示到网页。这个过程是大家都熟悉的。那么设备上报的数据如何展示到已有的业务系统网页呢?可以通过规则引擎把设备上报的数据流转到阿里云数据库RDS,然后业务系统从数据库获取数据展示到网页。这个就是规则引擎云产品流转的能力。对业务系统而言,基本没有改变任何逻辑,就是换了个数据源。

本例将完成如下步骤,涉及的demo代码包通过课程【前言】提供的链接下载即可。开发环境的搭建不再赘述,是普通 maven 工程。
设备端代码:com.aliyun.alink.demo.devicesdk.chapter02.DeviceA
• 创建一个规则,名为:一个Hello规则
• 创建一个动作,流转到RDS
• 启动规则
• 使用设备端SDK让设备 device_0 上线并发送消息给物联网平台
• 规则引擎将消息流转到阿里云RDS存储

2.1.1、创建规则

创建规则 标清.gif

2.1.2、创建动作

本例数据库表为 tbl_rule_to_rds,已经创建好,表结构如下
image.png
创建动作,官网文档:https://help.aliyun.com/document_detail/42736.html
rds动作 标清.gif

2.1.3、启动规则

规则启动 普通.gif

2.1.4、设备上报

还记得上一节课设备消息上报的demo么,类似的,启动:com.aliyun.alink.demo.devicesdk.chapter02.DeviceA,填写设备device_0的三元组信息后直接启动。设备端调用publish接口上报消息,本例发送的topic=/${productKey}/${deviceName}/user/update,消息内容为 {"content":"hello iot"}。
几个关键的对应关系:
• 设备上报的消息格式为json,创建规则时“数据格式”选择为JSON。
• 设备上报的topic=/${productKey}/${deviceName}/user/update,创建规则时 sql 配置的 topic=/${productKey}/+/user/update。
• 数据库表格字段为messgeContent,创建动作时“键”填写为messgeContent。
• 设备上报的消息内容为{"content":"hello iot"},创建动作时“键”对应的“值”填写为${content}。

2.1.5、结果展示

日志服务能够看到数据从设备到云,再通过规则引擎到rds。
traceId=0a3027ec15993912862926564d098c
image.png
数据库查询可以看到上面发送的消息,hello iot 已经插入到数据库表中。
image.png

3.2、设备A发送消息给设备B

设备只能订阅自己的topic,也只能给自己的topic发送消息。那么设备A的消息想要发送给设备B,该怎么办?可以通过规则引擎把设备A上报的数据流转到设备B。这个也是规则引擎云产品流转的能力,只是这个流转是物联网平台流转到物联网平台,消息从一个Topic流转到另一个Topic。
本例将完成如下步骤,涉及的demo代码包通过课程【前言】提供的链接下载即可。开发环境的搭建不再赘述,是普通 maven 工程。
设备端代码:com.aliyun.alink.demo.devicesdk.chapter02.DeviceA 和 com.aliyun.alink.demo.devicesdk.chapter02.DeviceB
• 创建一个设备,名为:device_1
• 在同样的规则下,再创建一个动作,流转到另一个Topic
• 使用设备端SDK让设备 device_1 上线
• 使用设备端SDK让设备 device_0 上线并发送消息给物联网平台

3.2.1、创建动作

沿用上面的规则,我们增加一个动作。规则不用重新启动。
repub动作 普通.gif

3.2.2、设备B准备

启动:com.aliyun.alink.demo.devicesdk.chapter02.DeviceB,填写设备 device_1 的三元组信息后直接启动。
设备需要订阅/${productKey}/${deviceName}/user/get。

3.2.3、设备A上报

启动:com.aliyun.alink.demo.devicesdk.chapter02.DeviceA,填写设备 device_0 的三元组信息后直接启动。设备上报的topic是 /${productKey}/${deviceName}/user/update,设备上报的消息是 {"content":"hello iot"}。
几个关键的对应关系:
• 设备上报的消息格式为json,创建规则时“数据格式”选择为JSON。
• 设备上报的topic=/${productKey}/${deviceName}/user/update,创建规则时 sql 配置的 topic=/${productKey}/+/user/update。
• 流转到另一个topic=/${productKey}/${deviceName}/user/get,设备B需要提前订阅好这个topic。

3.2.4、结果展示

日志服务能够看到消息从设备device_0到物联网平台,再通过规则引擎republish,从物联网平台到了另一个设备device_1。
traceId=0a3032ac15993925119167862d3bc9
image.png
同时,device_1 是可以收到物联网平台转发的消息的。
image.png

3.3、云产品流转高阶能力

云产品流转还有许多高阶能力,这里就不一一讲述了。
• 函数,官网文档:https://help.aliyun.com/document_detail/30555.html
• 容灾,官网文档:https://help.aliyun.com/document_detail/42733.html

4、服务端订阅

服务端可以直接订阅产品下所有类型的消息:设备上报消息、设备状态变化通知、设备生命周期变更、物模型历史数据上报、固件升级状态通知。配置服务端订阅后,物联网平台会将产品下所有设备的已订阅类型的消息转发至您的服务器。
image.png
本例将完成如下步骤,涉及的demo代码包通过课程【前言】提供的链接下载即可。开发环境的搭建不再赘述,是普通 maven 工程。
设备端代码:com.aliyun.alink.demo.devicesdk.chapter02.DeviceA
服务端代码:com.aliyun.alink.demo.openapi.chapter02.AmqpJavaClientDemo
• 创建一个服务端订阅
• 启动服务端订阅客户端
• 使用设备端SDK让设备 device_0 上线并发送消息给物联网平台
• 服务端订阅客户端可以接收到消息

4.1、创建服务端订阅

官网文档:https://help.aliyun.com/document_detail/142376.html
服务端订阅 普通.gif

4.2、启动服务端订阅客户端

启动:com.aliyun.alink.demo.openapi.chapter02.AmqpJavaClientDemo,填写必要信息。

4.3、设备上报消息

启动:com.aliyun.alink.demo.devicesdk.chapter02.DeviceA,填写设备 device_0 的三元组信息后直接启动。
设备上报的topic是 /${productKey}/${deviceName}/user/update
设备上报的消息是 {"content":"hello iot"}

4.4、结果展示

服务端订阅客户端可以接收到设备上线、设备上报、设备离线三条消息。
image.png

5、云产品流转 vs 服务端订阅

image.png

6、总结

上节课讲解了设备消息的上报(绿色线路),本节课讲解了用户业务系统如何获取到设备上报的消息(蓝色线路云产品流转、黄色线路服务端订阅),业务系统获取到设备消息后就可以进行数据的处理和展示。
image.png

7、后续

目前为止,对用户设备和业务系统来说,物联网平台就是一个消息的中转站,但事实上物联网平台远不止消息中转站的功能,下节课将讲解物联网平台的高阶能力 -- 设备管理。

8、思考题

规则引擎是否可以流转 Open API 下发的消息?服务端订阅呢?

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
7月前
|
人工智能 物联网 Android开发
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
396 92
|
7月前
|
人工智能 物联网 Android开发
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
241 23
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
|
7月前
|
存储 人工智能 物联网
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
283 14
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
|
7月前
|
人工智能 物联网 编译器
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
233 11
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
|
7月前
|
人工智能 前端开发 物联网
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
191 0
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
|
8月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
774 1
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
12月前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
449 1
|
传感器 Rust 物联网
通义灵码在物联网项目中的实战应用
通义灵码在物联网项目中的实战应用
331 0

热门文章

最新文章

相关产品

  • 物联网平台