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



审核编辑黄宇

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

    关注

    2869

    文章

    41622

    浏览量

    358381
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82518
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1271

    浏览量

    78297
  • MQTT
    +关注

    关注

    5

    文章

    537

    浏览量

    21976
收藏 人收藏

    评论

    相关推荐

    基于机智联网平台的智能垃圾回收箱与控制系统研究

    在后台远程监控设备的运行情况,在设备出现问题时及时处理。另外,智能垃圾回收箱作为一种回收设备,要对箱中的回收实时监控,防止可回收被盗走。监控
    发表于 04-09 17:25

    蓝蜂联网网关助力您快速实现MQTT平台对接

    联网MQTT
    蓝蜂物联网
    发布于 :2024年03月04日 15:55:35

    【ELF 1开发板试用】+ 8.2 MQTT开发——连接腾讯【原创】

    MQTT开发——连接腾讯 前文我们基于文档中提供的项目教程,复现ELF 1连接阿里联网
    发表于 12-15 23:10

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

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

    MQTT联网网关怎么选?什么是MQTT网关?

    联网MQTT
    蓝蜂物联网
    发布于 :2023年11月13日 17:29:47

    不使用平台的情况下怎样才能实现温度的远程监测?

    现在好多的联网技术都可以实现很多种远程监测的功能,但是基本都是使用了平台的情况下实现,但是不使用
    发表于 11-09 06:43

    如何采用mqtt协议实现联网模块消息推送?

    如何采用mqtt协议实现联网模块消息推送
    发表于 11-03 06:55

    MQTT网关支持对接各大平台#联网 #plc #工业平台 #mqtt

    网关MQTT
    蓝蜂物联网
    发布于 :2023年10月18日 09:09:42

    阿里联网平台简介

    设备管理12提供完整的设备生命周期管理功能,支持设备注册、功能定义、脚本解析、在线调试、远程配置、固件升级、远程维护、实时监控、分组管理、设备删除。提供设备模型,简化应用开发。提供设备上下线变更
    发表于 09-11 08:28

    阿里联网平台基础概念讲解

    产品 设备的集合,通常指一组具有相同功能的设备。联网平台为每个产品颁发全局唯一的ProductKey。每个产品下可以有成千上万的设备。 设备 归属于某个产品下的具体设备。
    发表于 09-11 07:41

    STM32通过NB-IoT连接阿里IOT平台

    NB-IoT技术介绍 整体框架结构 • 硬件连接注意事项 • DEMO运行效果 • 在阿里联网平台创建并配置产品 • 在
    发表于 09-11 07:04

    浅谈工业联网平台

    工业互联网平台 工业互联网平台的本质是在传统平台的基础
    发表于 08-10 15:45

    视频教程】紫光同创PDS软件开发平台视频教程之IP使用及仿真

    视频教程】紫光同创PDS软件开发平台视频教程之IP使用及仿真~
    发表于 06-13 15:06

    基于机智联网平台的智能种树小车

    过程的信息传递、发送命令等,联网机智模块可以实时上报种植数据至平台。制作了装置模型样机,试验测试结果表明:该装置完成一棵树的种植时间需
    发表于 05-31 19:38

    【开源】4G+GPS+温湿度接入Mqtt服务教程

    天翼(Ctwing),OneNet,阿里等作为设备 Mqtt 接入的,这里我们以天翼云中的 Mqt
    发表于 05-31 12:27