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



审核编辑黄宇

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

    关注

    2900

    文章

    43949

    浏览量

    369729
  • 服务器
    +关注

    关注

    12

    文章

    8921

    浏览量

    85030
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1342

    浏览量

    78902
  • MQTT
    +关注

    关注

    5

    文章

    645

    浏览量

    22385
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    MQTT联网平台有什么功能

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

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

    使用API Post测试阿里联网平台动态注册
    的头像 发表于 10-05 19:08 146次阅读
    使用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>动态注册

    钡铼Modbus转MQTT网关BL100支持一键对接阿里平台

    RTU串口设备一键对接阿里 ,为工业自动化与远程监控提供了高效、可靠的解决方案! 一、BL100网关概述 BL100是钡铼技术专门针对MQTT协议
    的头像 发表于 07-29 17:37 308次阅读
    钡铼Modbus转<b class='flag-5'>MQTT</b>网关BL100支持一键对接<b class='flag-5'>阿里</b><b class='flag-5'>云</b><b class='flag-5'>平台</b>

    联网平台是什么

    、通讯传输、组态、监测、视频监控等一体化的智慧联网平台
    的头像 发表于 07-25 16:51 570次阅读

    MQTT联网平台是什么

    。这种平台允许设备通过MQTT协议与其他设备及云端服务进行通信,实现数据的上传和下载,从而支持各种联网应用和服务。 MQTT
    的头像 发表于 07-18 14:22 454次阅读

    MQTT联网平台是什么

    及可视化等功能,为连接到互联网的物理设备提供支持和服务。 结合这两个概念,MQTT联网平台
    的头像 发表于 06-25 15:32 496次阅读

    STM32、ESP8266与MQTT连接阿里联网的串口通信异常解析

    STM32、ESP8266与MQTT协议连接阿里联网平台时常见的串口通信异常介绍 在构建物
    的头像 发表于 04-19 17:19 1304次阅读

    MQTT联网平台是什么?MQTT联网平台的功能

    ,易于实现,因此广泛应用于受限的环境,如机器与机器的通信(M2M)以及物联网环境(IoT)。 MQTT联网平台通过提供一种标准化的协议和
    的头像 发表于 04-01 10:20 635次阅读

    MQTT联网平台实现设备连接与安全加密

    平台可以实现快速、可靠的通信,实现实时监控、数据采集和远程控制等功能,为企业提供了全新的工作模式和优化方案。 通博联提供工业智能网关接入MQTT
    的头像 发表于 03-19 10:25 553次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>平台</b>实现设备连接与安全加密

    组态监控联网平台有什么功能

    实现智能化管理与数字化升级。 数之能推出的组态监控联网平台具备接入PLC、仪器仪表、工业机器人、数控机床等设备数据采集能力,内置丰富组态
    的头像 发表于 03-14 15:44 482次阅读
    <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网关快速对接工业联网平台

    实现功能:实现PLC、仪器仪表、数控机床、工业机器人等各种设备快速接入MQTT工艺联网平台,手机端和电脑端可以随时随地查看组态工艺,远程
    的头像 发表于 02-29 17:15 665次阅读
    通过<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>

    MQTT联网平台是什么?MQTT联网平台的功能有哪些

    ,易于实现,因此广泛应用于受限的环境,如机器与机器的通信(M2M)以及物联网环境(IoT)。 MQTT联网平台通过提供一种标准化的协议和
    的头像 发表于 01-24 09:23 1048次阅读

    【ELF 1开发板试用】+ 8.1 MQTT开发——连接阿里【项目复现】

    MQTT开发——连接阿里【项目复现】 本文基于文档中提供的项目教程,复现ELF 1连接阿里
    发表于 12-15 22:00