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

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

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

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


AIoT 企业物联网平台实战03

 

内容介绍:

一、物联网平台的回顾

二、异步下行和同步下行

三、广播消息和设备影子


一、物联网平台的回顾

1、通用方案:

企业自身的设备端可以 MQTT 协议接入到云上的互联网平台上的云产品,云产品会把数据实时的推送到云上的其他云产品上(数据库、那消息队列以及实时计算),也可以实时推送到企业购买的服务器上。

象形的电路或者在外表控制台上发送一条配置信息或者是比充电宝的弹出一个充电宝或者是共享单车怎么开锁指令,通过联网平台推送到指定的充电宝机柜或者是单车上面的过程群。

 image.png


二、异步下行和同步下行

image.png

1、MQTT 协议详解:

最底层是以太网的报文,最顶端上边是企业自己的业务的报文,整个过程从上到下,当业务系统采集到业务数据后,首先把业务数据打包到 MQTT 协议报文里,SDK 会把 MQTT 报文再封装到 TCP 的报文里,TCP 转到网络层会有 IP 的转换成 IP 的报文,整个 TCP 的数据会变成 IP 报文的一部分,最终到以太网物理电路层传输会转化成以太网的报文传输出去。

设备端传递到阿里云的物联网平台,物联网平台会反向的解出来,解到 MQTT 报文,最终物联网平台可以通过规则引擎的流转,把客户的业务报文直接流转到数据库、消息队列里去。

如果使用阿里云物联网平台的设备端 SDK,感知到的就只有业务报文,云上业务系统拿到的是业务报文,不需要感知中间的网络打包的过程。

image.png

这是数据下行的场景,web 或者 APP 发一条指令,通过HTTP的方式发到后台的业务上,调用阿里云提供的 API,open API,(同样提供了多语言的 SDK),通过API 调用,就把指定发到了物联网平台,物联网平台会查找到对应的设备的链接,通过这条长连接把数据推送到订阅的设备上。

2、下行数据步骤:

①设备订阅 Topic A

②云端业务系统通过 Pub API给指定设备发送消息

③LoT 平台收到 Pub API 请求,给设备 publish Topic A 消息

④设备通过 MOTT 监听到指定 Topic A 的消息

web 或者 app 发送指令通过HTTP的方式发到后台的业务上server,这时候是调用阿里云 API,也叫 open API,这里提供了多语言的 sdk,比如说是在用 JAVA 或者php,Python nodjs 都可以,都有对应的 API 的 sdk,通过调用就把指定发到了物联网平台,互联网平台会查找到对应的设备的链接,通过这条 mqtt 连接,把数据推送到订阅的设备上,首先是设备端和云平台建立一个 MQTT 强链接,这里设备首先要订个 Topic,就是这个设备会关心哪些 topic,如果没有订阅,有这样的消息过来的时候,物联网平台就不会推送到 Topic 上,所以首先设备会订阅 Topic A,有了这样订阅后,云端的业务系统就可以通过 pub API 给 Topic A 这个主题发送消息,接下来你调用 API 的时候,物联网平台会收到业务系统推过来的这 API 调用请求,互联网平台会把这一条 HTTP 的请求业务请求转化成 MQTT 通讯的 Topic,转化成 Topic A,然后 publish 到设备端,那这个 publish 过程中是可以设置 QOS 的,QOS 等于零就代表平台会尽量的推送一次,但并不会保证设备一定会收到,如果设置 QOS 等于一,就代表是希望设备一定要收到的,那物联网平台会尽量保障消息的出达,当你的设备在线的时候,物联网平台会先把这个消息存储下来,然后给设备推消息,设备端收到了消息之后,他会回复 PUB ac k,确认设备收到了这样一条消息,同样也有可能由于网络原因导致设备端没有收到这条消息或者是设备端回复PUB ac k 在网络过程中丢失了,那物联网平台会在一定的时间内发现没有收到 PUB ac k,会重复的推送刚刚这条消息给到设备端,一直到设备端回复了 PUB ac k,还有一个情况就是设备当前不在线,这时候物联网平台同样会把这个消息存下来,等设备上线之后,物联网平台会第一时间把这个消息推送到设备上,同样设备也可以做选择,通过参数来告知联网平台是否要推用这种不在线的消息,如果设置成 true,就是要把前面的清理掉,在不在线的调节也不需要发送了,那如果是 folse,就是还要保持原来的绘画,就意味着我不在线的时候收到的消息也需要补偿回来。

3、实战

(1)、首先来到物联网平台,来到控制台,找到设备模拟器,选择自己一台设备,通过启动模拟器的方式让设备上线。

image.png

(2)、设备要接收指令,首先要订阅 topic,设备会发送订阅的请求到互联网平台,再物联网平台的设备的情里,可以看到设备的已订阅列表里已经有 topic,说明订阅成功。 image.png

(3)、发布的消息:可以通过控制台给设备主题发送一条消息,选择 Qs1,点击确定,就可以看到发送的消息。image.png

(4)、模拟器的效果:收到了一条消息以及消息的内容。

(5)、日志服务消息发送过程:调用 API 给设备发消息,同样云端会给设备下行一个消息,因为是 QS 等于一的,所以我们还可以看到设备端回复了 PUB ac k,这个是 MQTT 报文里的消息 ID。

image.png

找到阿里云物联网平台,以下图片做参考做填写

image.png

调用成功后可以在模拟器上看到收到了 topic,在日志中也可以看到Pub的日志,平台发送了 Pub,设备端回复了 Pub ack。

以上是通过 API 调用的方式来下行的过程。

同时在线的 API 也展示了各种语言完整的示例代码,方便云端做开发。

image.png

4、匹配异步响应的结果:

image.png

(1)、服务端:APP 发送了一条指令到服务器,服务器要做的是把这个指令保存,通过 pub 接口把指令再发给物联网平台,互联网平台会把消息推送到设备上,设备收到了消息,执行了对应的动作之后,他会托 MQTT 发送一条响应,这条响应会通过配置的规则引擎把这个响应推送给业务服务器,业务服器通过进到内部来查询,来匹配当前的响反应和哪一个请求是相关的,匹配上后会把结果存取过来。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
网络协议 API C#
C# 中模拟 POST 和 GET 请求的原理与实践
【1月更文挑战第4天】在现代网络应用中,HTTP请求是客户端与服务器交互的基础。其中,GET和POST是最常用的两种请求方法。本文将介绍如何使用C#语言模拟这两种请求,并解释其背后的工作原理。我们将利用.NET框架中的HttpClient类来发送请求,并处理服务器的响应。通过本文,读者将能够理解HTTP请求的基本构成,学会在C#中编写代码来模拟这些请求,进而在开发过程中实现与Web服务的交互。
|
移动开发 Dart 前端开发
从架构到源码:一文了解Flutter渲染机制
Flutter从本质上来讲还是一个UI框架,它解决的是一套代码在多端渲染的问题。在渲染管线的设计上更加精简,加上自建渲染引擎,相比ReactNative、Weex以及WebView等方案,具有更好的性能体验。本文将从架构和源码的角度详细分析Flutter渲染机制的设计与实现。较长,同学们可收藏后再看。
8527 1
从架构到源码:一文了解Flutter渲染机制
|
JavaScript
Vue 使用 mockjs (返回数据、get、post 请求)
Vue 使用 mockjs (返回数据、get、post 请求)
596 0
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
724 0
|
传感器 网络协议 物联网
STM32+ESP8266+MQTT协议连接阿里云物联网平台
STM32+ESP8266+MQTT协议连接阿里云物联网平台
15363 4
STM32+ESP8266+MQTT协议连接阿里云物联网平台
|
存储 机器学习/深度学习 人工智能
二维码生成原理和解码原理
二维码(Quick Response Code,简称QR码)是一种广泛使用的二维条形码技术。二维码能有效地存储和传递信息,广泛应用于商品追溯、支付、广告等多个领域。二维码的主要特点是信息存储量大、读取速度快、容错能力强等。
3401 2
|
消息中间件 监控 Kafka
4.RabbitMQ 与 Kafka 的区别?
4.RabbitMQ 与 Kafka 的区别?
603 0
|
小程序
手把手教程:设备二维码怎么生成?
本文将介绍如何生成设备二维码,帮助企业实现设备的高效管理。
916 1
|
前端开发 API Android开发
10 大 APP 开发方案比较
本文首发于微信公众号“前端徐徐”,深入剖析了当前最受欢迎的十种APP开发方案,包括传统的iOS和Android开发、跨平台的React Native和Flutter、现代化的CapacitorJS和PWA等,旨在帮助开发者在众多选择中找到最适合的开发路径。通过详细分析每种方案的优缺点及适用场景,文章提供了详尽的比较和实用建议,助力高效、优质的APP开发。
3779 0
10 大 APP 开发方案比较
|
机器学习/深度学习 算法 数据挖掘
技术视界|多模态说话人开源项目3D-Speaker
技术视界|多模态说话人开源项目3D-Speaker

相关产品

  • 物联网平台