0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于阿里云MQTT物联网平台视频监控(上)

wang123a ? 来源:wang123a ? 作者:wang123a ? 2023-04-18 16:58 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.项目介绍

本项目基于物联量平台远程的视频监控项目,通过MQTT协议实现两个设备间的数据上报与订阅。通过这个项目来演示,两个MQTT设备如何互相订阅,进行消息流转。在阿里云服务器上创建2个设备,分为为设备A和设备B;设备A负责采集本地摄像头画面上传,设备B负责接收设备A上传的数据然后解析显示出来。在阿里云服务器上需要配置云产品流转,让设备A的数据上传后自动发送给设备B。这样就完成了视频画面数据的流转。不过因为阿里云的最大数据限制,每次最大发送10240字节的数据。

1.1 硬件平台

操作系统:Ubuntu18.04
硬件设备:电脑自带或USB免驱摄像头(V4L2框架)
服务器:阿里云物联网平台(基于MQTT协议)
图像渲染:GTK2.0

1.2 开发流程

设备A:获取摄像头的数据–>缩放成240*320–>编码成JPEG格式—>base64-编码–>组合成MQTT报文–>发布到服务器。
??设备B:订阅设备A上传的数据–>base64解码–>解码JPEG数据格式–>GTK图像渲染。

2.MQTT协议介绍

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件?。

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。由IBM在1999年发布。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。如:机器与机器(M2M通信和物联网(IoT)。其在通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

2.1 MQTT特点

本协议运行在 TCP/IP,或其它提供了有序、可靠、双向连接的网络连接上。MQTT属于应用层协议,它有以下特点:

使用发布/订阅消息模式,提供了一对多的消息分发和应用之间的解耦。
消息传输不需要知道负载内容。
提供三种等级的服务质量: .

QS0:“最多一次”,尽操作环境所能提供的最大努力分发消息。消息可能会丢失。
例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久之后会再次发送。

QS1:“至少一次”,保证消息可以到达,但是可能会重复。

QS2:“仅一次”,保证消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。很小的传输消耗和协议数据交换,最大限度减少网络流量。

在MQTT连接建立时,客户端需要通过TCP连接到MQTT服务器,并进行握手协商,包括协议版本、客户端标识符、遗嘱消息、 QoS级别等信息,以确保双方能够正确地交换数据。一旦握手成功,客户端和服务器之间就建立了一个持久化的TCP连接,可以随时进行消息传输。
由于TCP协议本身已经提供了一定程度的可靠性保证,因此MQTT协议只需要在TCP的基础上实现发布/订阅机制、 QoS级别控制、保留消息等特性即可,从而使得它成为一种轻量级且高效的物联网通信协议。

2.2 MQTT协议数据量限制

MQTT协议本身没有限制数据包的大小,但是它需要遵循底层传输协议(TCP/IP)的限制和约束。在实际应用中,MQTT协议能够传输的有效数据量是受多种因素影响的,如网络带宽、QoS级别、MQTT消息头部信息等。一般来说,在默认情况下,MQTT协议对于单个消息的有效载荷有一个限制,即不超过256MB。这个限制主要由MQTT协议的消息长度字段决定,该字段的最大值是4字节,因此最大能表示2^32-1个字节的消息长度,即约为4GB。然而,在实际应用中,由于网络带宽和设备性能等方面的限制,很难实现传输如此巨大的消息。

另外,需要注意的是,如果使用较高级别的QoS,如“至少一次”或“恰好一次”,则MQTT协议会对每条消息进行确认和重传,这可能会导致更多的网络流量和延迟。因此,在选择QoS级别时,需要根据应用场景和网络环境的实际情况进行优化和调整,以充分利用MQTT协议的特点和优势。

3.阿里云物联网平台搭建

3.1 搭建阿里云物联网平台

pYYBAGQ-W_SAPjbeAAQ7eHrqr1I288.png

pYYBAGQ-XAGACeKYAAKT-nocKoc938.png

2.创建产品

poYBAGQ-XCeAd-4JAANg-xYWjx8853.png

3.功能定义, 添加自 定义功能, 发布上线。

pYYBAGQ-XFyAeUKgAAG_x4DzTec019.png

poYBAGQ-XHCADSmtAAK38UAfZg0160.png

4.添加设备

pYYBAGQ-XKGAMuM6AANYUJkxDfo978.png

poYBAGQ-XLSAW52QAAIMhJnF6sw454.png

3.2 设备登录

MQTT 连接阿里云需要三个参数: 客户端 id、 用户名、 密码。 此信息可直接在设备中获取。

pYYBAGQ-XOGAE3quAAM28oREewk712.png

3.3 消息订阅与消息发布

Topic 是消息发布( Pub) 者和订阅( Sub) 者之间的传输中介。 设备可通过 Topic 实现消息的发送和接收, 从而实现服务端与设备端的通信。 为方便海量设备基于 Topic 进行通信,简化授权操作, 物联网平台定义了产品 Topic 类和设备 Topic。

poYBAGQ-XQuAMNyFAAP7Kf8UJHQ944.png

3.4 数据上报格式

MQTT 上报数据格式为 JSON 格式。 内容格式如下:

发布主题: "/sys/{产品 ID}/{设备名 }/thing/service/property/set"
数据内容格式: {"method":"thing.event.property.post","params":{"image":"hello,world"}}

poYBAGQ-XVSATle4AAD_Latnntw782.png

设备端订阅消息内容:

订阅主题: "/sys/{产品 ID}/{设备名 }/thing/event/property/post"

pYYBAGQ-XcqADEPhAAFDNckvwxs927.png



审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2933

    文章

    46462

    浏览量

    395547
  • 服务器
    +关注

    关注

    13

    文章

    9859

    浏览量

    88421
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1409

    浏览量

    81531
  • MQTT
    +关注

    关注

    5

    文章

    697

    浏览量

    23856
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    阿里设备的模型数据里面始终没有值是哪里的问题?

    如上图,不知道讲清楚没有。 IG502自定义TOPIC 发到阿里没问题。采用阿里模型
    发表于 08-05 06:43

    第二十二章 W55MH32 MQTT&Aliyun示例

    本文讲解了如何在 W55MH32?芯片实现 MQTT?协议并连接阿里平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处
    的头像 发表于 07-24 14:17 ?283次阅读
    第二十二章 W55MH32 <b class='flag-5'>MQTT</b>&amp;Aliyun示例

    工业智能网关与MQTT联网平台的关系

    工业智能网关与 MQTT 联网平台联网架构中
    的头像 发表于 03-21 09:44 ?483次阅读

    《DNESP32S3使用指南-IDF版_V1.6》第五十五章 基于MQTT协议连接阿里服务器

    进行相应的修改。55.4 下载验证程序下载成功后,打开阿里平台联网平台设备管理,可以看到此
    发表于 03-18 09:22

    MQTT联网平台有哪些?有哪些功能?

    (IoT)。关于MQTT联网平台及其功能,可以归纳如下: MQTT
    的头像 发表于 03-15 14:23 ?905次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>平台</b>有哪些?有哪些功能?

    工业智能网关通过MQTT协议对接工业联网平台

    、传感器、工业机器人、数控机床等设备。不仅具备数据采集与协议解析能力,还支持5G/4G/WIFI/以太网等联网方式。此外,支持通过MQTT+ JSON报文对接到通博联、企业私有
    的头像 发表于 02-26 17:07 ?600次阅读
    工业智能网关通过<b class='flag-5'>MQTT</b>协议对接工业<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>云</b><b class='flag-5'>平台</b>

    Tuya联网平台阿里版:助力客户打造融合开放的专属平台

    在2024年9月的云栖大会上,涂鸦智能与阿里联合发布了Tuya联网平台阿里
    的头像 发表于 01-03 17:32 ?926次阅读
    Tuya<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>平台</b><b class='flag-5'>阿里</b><b class='flag-5'>云</b>版:助力客户打造融合开放的专属<b class='flag-5'>物</b>联<b class='flag-5'>平台</b>

    采用华为 Flexus 服务器 X 实例部署 MQTT 服务器完成设备

    一、前言 1.1 开发需求 这篇文章讲解: 采用华为最新推出的 Flexus 服务器 X 实例 EMQX 服务器,搭建 MQTT 服务器,完成设备
    的头像 发表于 12-26 18:12 ?641次阅读
    采用华为<b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X 实例部署 <b class='flag-5'>MQTT</b> 服务器完成设备<b class='flag-5'>上</b><b class='flag-5'>云</b>

    esp8266连接阿里平台mqtt连接超时

    esp8266nodemcu在使用arduino.ide连接阿里平台的时候,wifi配置正常但连接不mqtt,显示报错如下: Attem
    发表于 10-26 21:39

    MQTT网关接入工业联网平台解析

    MQTT网关 能够连接不同类型的工业联设备,实现设备之间的数据传输和控制。它不仅能够将来自不同设备的多种通信协议(如Modbus、PLC、数控机床等)统一转换为MQTT格式,便于与
    的头像 发表于 10-16 16:31 ?763次阅读

    MQTT调试助手中文版(联网开发必备)

    MQTT调试助手中文版(联网开发必备)。?支持模拟设备链接各种MQTT服务器、 ?阿里
    发表于 10-12 14:23 ?9次下载

    MQTT联网平台有什么功能

    随着联网(IoT)技术的迅猛发展,MQTT(Message Queuing Telemetry Transport)联网
    的头像 发表于 10-09 14:15 ?785次阅读

    使用API Post测试阿里联网平台动态注册

    使用API Post测试阿里联网平台动态注册
    的头像 发表于 10-05 19:08 ?933次阅读
    使用API Post测试<b class='flag-5'>阿里</b><b class='flag-5'>云</b><b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>平台</b>动态注册

    MQTT智能网关接入联网平台:实现高效连接与数据交互

    连接设备和联网平台的关键桥梁,在数据采集、传输和控制中发挥着至关重要的作用。本文将详细介绍MQTT智能网关如何接入
    的头像 发表于 09-27 17:04 ?782次阅读

    MQTT联网平台和网关有什么功能

    MQTT联网平台和网关作为联网架构中的关键组成部分,承载着多种核心功能,为设备间的通信和数
    的头像 发表于 08-22 14:19 ?754次阅读