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

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

3天内不再提示

【技术分享】以利尔达MB960/860模组为例,教你快速接入MQTT协议(上)

利尔达科技集团 2022-02-14 09:49 次阅读

LIERDA

随着 5G 时代的来临,万物互联的伟大构想正在成为现实。2021年全球智能物联网处于爆发式增长通道,设备数量超过250亿台。海量的设备接入和设备管理对网络带宽、通信协议以及平台服务架构都带来了很大挑战。

物联网通信协议作为联通物与物的桥梁,在整个架构中起着关键作用。本文将以利尔达MB960/860模组为例,介绍如何接入云平台MQTT协议搭建系统,帮助大家快速上手。

MQTT介绍

MQTT是一种基于发布/订阅模式实现一对多通信的协议。它可为深度嵌入式设备提供物联网的规模和连接性,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山

bc5b4250-8cf3-11ec-9d5f-dac502259ad0.png

MQTT由3种身份构成,分别是中介代理(broker)、发布者(publisher)和订阅者(subscriber)。消息的发布者和订阅者是客户端,中介代理是服务器,消息的发布者同时可以是订阅者。

bc66f578-8cf3-11ec-9d5f-dac502259ad0.png

作为一种轻量级的二进制协议,MQTT协议与传统HTTP相比具有一个明显的优势:数据包开销较小,数据包开销小就意味着更容易进行网络传输。还有一个优势就是MQTT在客户端容易实现,且具易用性,非常适合在蜂窝物联网等资源有限的设备实现。

MQTT 重要概念

1、MQTT client
当我们讨论关于客户端的概念时,一般指的就是MQTT Client,包含publisher和subscriber。之所以有发布者和订阅者这个概念,其实是一种相对的概念,就是指当前客户端是在发布消息还是在接收消息,发布和订阅的功能也可以由同一个 MQTT Client 实现。

MQTT 客户端是指运行 MQTT 库并通过网络连接到 MQTT broker 的任何设备,这些设备可以从微控制器到成熟的服务器。基本上任何使用 TCP/IP 协议使用 MQTT 设备的都可以称之为MQTT Client。MQTT 协议的客户端实现非常简单直接。易于实施是MQTT非常适合小型设备的原因之一。MQTT客户端库可用于多种编程语言,例如AndroidArduino、C、C++C#、Go、iOSJava、JavaScript 和 .NET。

2、MQTT broker
与 MQTT client 对应的就是 MQTT broker,broker 是任何发布/订阅机构的核心,根据实现的不同,代理可以处理多达数百万连接的 MQTT client。

broker 负责接收所有消息,过滤消息,确定是哪个 client 订阅了每条消息,并将消息发送给对应的 client,broker 还负责保存会话数据,这些数据包括订阅的和错过的消息。broker 还负责客户端的身份验证和授权。

3、MQTT Connection
MQTT 是基于 TCP/IP 协议基础之上的,所以 MQTT 的 client 和 broker 都需要 TCP/IP 协议的支持。

MQTT的连接总是在client和broker之间进行,client和 client之间并不会相互连接。如果要发起连接的话,那么 client就会向broker发起CONNECT消息,代理会使用 CONNACK消息和状态码进行响应。一旦client和 broker的连接建立后,broker就会使客户端的连接一直处于打开状态,直到client发出断开命令或者连接中断。

bc954536-8cf3-11ec-9d5f-dac502259ad0.png

MQTT基于主题(Topic)消息路由

1、主题(Topic)

MQTT协议基于主题(Topic)进行消息路由,主题(Topic)类似URL路径,例如:
chat/room/1
sensor/10/temperature
sensor/+/temperature
$SYS/broker/metrics/packets/received
$SYS/broker/metrics/#
主题(Topic)通过’/’分割层级,支持’+’, ‘#’通配符:
'+': 表示通配一个层级,例如a/+,匹配a/x, a/y
'#': 表示通配多个层级,例如a/#,匹配a/x, a/b/c/d
订阅者与发布者之间通过主题路由消息进行通信,例如采用mosquitto命令行发布订阅消息:
mosquitto_sub -t a/b/+ -q 1
mosquitto_pub -t a/b/c -m hello -q 1
注解:
订阅者可以订阅含通配符主题,但发布者不允许向含通配符主题发布消息。

2、MQTT消息QoS

MQTT发布消息QoS保证不是端到端的,是客户端与服务器之间的。订阅者收到MQTT消息的QoS级别,最终取决于发布消息的QoS和主题订阅的QoS。

发布消息的QoS主题订阅的QoS接收消息的QoS
000
010
020
100
111
121
200
211
222

Qos0消息发布订阅

bcaac4ec-8cf3-11ec-9d5f-dac502259ad0.png

Qos1消息发布订阅

bcb87ed4-8cf3-11ec-9d5f-dac502259ad0.png

Qos2消息发布订阅

bcffeb0c-8cf3-11ec-9d5f-dac502259ad0.png

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

    关注

    5

    文章

    655

    浏览量

    22752
收藏 人收藏

    评论

    相关推荐

    模组Locator应用指导——以NT26U

    Locator是一种高效定位技术,该功能通过移动网络小区的信息实现定位功能。本文将以利尔达NT26U模组,详细介绍Locator相关的A
    的头像 发表于 11-29 01:02 406次阅读
    <b class='flag-5'>模组</b>Locator应用指导——以NT26U<b class='flag-5'>为</b><b class='flag-5'>例</b>

    Air780E模组AT指令下的MQTT应用:技术指南

    今天我要讲的是Air780E模组AT指令下的MQTT应用,希望对大家有所帮助。
    的头像 发表于 11-07 14:02 511次阅读
    Air780E<b class='flag-5'>模组</b>AT指令下的<b class='flag-5'>MQTT</b>应用:<b class='flag-5'>技术</b>指南

    白嫖篇:4G 模组 MQTT 通信功能!

    今天我们白嫖的是4G 模组 MQTT 通信功能!以AIR708E开发板MQTT介绍,演示功能概述,准备硬件环境,准备软件环境,
    的头像 发表于 10-30 14:53 1491次阅读
    白嫖篇:4G <b class='flag-5'>模组</b> <b class='flag-5'>MQTT</b> 通信功能!

    【教程】设备通过MQTT协议接入OneNET平台,建立可视化界面

    在物联网领域,传感器与服务器的通信、信息的收集以及MQTT协议都是可以考虑的方案之一。MQTT通常用于需要低功耗和低带宽的场景,如物联网设备、传感器网络、移动应用等。它的轻量级和高效特性使其非常适合
    的头像 发表于 10-25 08:06 1180次阅读
    【教程】设备通过<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b><b class='flag-5'>接入</b>OneNET平台,建立可视化界面

    MQTT.fx 连接Onenet 多协议接入平台 MQTT协议(旧版)详解

    此文档可以作为中间态MQTT版本,默认参数获取教程 多协议接入地址 td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt
    的头像 发表于 09-30 15:20 1064次阅读
    <b class='flag-5'>MQTT</b>.fx 连接Onenet 多<b class='flag-5'>协议</b><b class='flag-5'>接入</b>平台 <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>(旧版)详解

    MQTT协议网关的工作原理及功能特性

    在物联网的快速发展中,MQTT协议网关作为连接物联网设备与消息代理服务器的重要桥梁,扮演着不可或缺的角色。MQTT是一种基于发布/订阅模式的轻量级通信
    的头像 发表于 09-18 17:00 666次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>网关的工作原理及功能特性

    钡铼PLC网关快速实现三菱、西门子PLC转MQTT协议

    PLC转MQTT网关BL102是一款专为PLC联网和远程PLC程序上传下载调试而研发的,下行采集协议支持三菱、西门子、欧姆龙、台达、施耐德等PLC协议,上行传输协议支持
    的头像 发表于 07-31 17:00 556次阅读
    钡铼PLC网关<b class='flag-5'>快速</b>实现三菱、西门子PLC转<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>

    钡铼技术Modbus转MQTT网关:桥接Modbus协议MQTT协议

    在现今的工业物联网时代,如何高效地将传统工业设备与云端平台连接起来,实现数据的实时监控与分析,成为了许多企业关注的焦点问题。钡铼技术推出的Modbus转MQTT网关BL101,正是针对这一需求,
    的头像 发表于 07-30 16:28 474次阅读
    钡铼<b class='flag-5'>技术</b>Modbus转<b class='flag-5'>MQTT</b>网关:桥接Modbus<b class='flag-5'>协议</b>与<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>

    利尔达NB模组搜网机制,看这一篇就够了!

    本文档主要介绍了利尔达NB860&MB960&MB260模组搜网策略及相关的AT命令,并给出了网络搜索和注册流程,旨在帮助客户了解
    的头像 发表于 07-12 08:14 2133次阅读
    <b class='flag-5'>利尔达</b>NB<b class='flag-5'>模组</b>搜网机制,看这一篇就够了!

    打卡智能家居之旅(2):设备接入HomeAssistant的方法

    (Ai-WB2 或者Ai-M6x等模组接入服务器必定要使用网络协议,而MQTT 是这些网络协议中最常用的。例如:阿里云的物联网平台,例如米
    的头像 发表于 06-07 09:36 1811次阅读
    打卡智能家居之旅(2):设备<b class='flag-5'>接入</b>HomeAssistant的方法

    如何在AT COMMAND的方式下快速的完成Lierda NB861/MB961/MB261模组与OneNET平台的对接工作?

    在AT COMMAND的方式下快速的完成Lierda NB861/MB961/MB261模组与OneNET平台的对接工作
    发表于 06-04 07:17

    如何使用NB860/MB960/MB260模组实现用户设备与OneNET(Studio)平台的连接?

    如何使用NB860/MB960/MB260模组实现用户设备与OneNET(Studio)平台的连接
    发表于 06-04 07:15

    以太网设备如何接入标准MQTT协议

    本次展示亿佰特以太网类产品接入标准MQTT协议教程,以E90-DTU(900SL30)E,其他产品可参照本教程。【注】连接前需要得到服务
    的头像 发表于 05-24 08:20 539次阅读
    以太网设备如何<b class='flag-5'>接入</b>标准<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>?

    mqtt协议和tcp协议区别

    MQTT协议和TCP协议在设计和应用上存在以下主要区别: 1. 起源与设计:MQTT协议诞生于1999年互联网初期,而TCP
    的头像 发表于 04-01 09:15 1796次阅读

    MQTT协议网关解决方案设计与实施

    的主要功能包括协议转换、消息过滤、安全认证、负载均衡等,以确保消息的可靠传输和系统的稳定运行。随着物联网技术快速发展,MQTT协议作为一种
    的头像 发表于 03-11 14:07 585次阅读