一文教你快速读懂MQTT网关
MQTT是一种发布(publish)/订阅(subscribe)协议,MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。MQTT 协议解决了物联网中一个最基础的问题:设备和设备之间、设备和云端服务之间是如何进行数据通讯的。

图
1 MQTT网关发布信息
上海卓岚的MQTT网关ZLAN5143D起到将普通的串口数据、Modbus RTU数据等转化为MQTT协议的作用,通过连接服务器、订阅和发布主题来实现传统设备和MQTT云端的联系。例如,笔记本和手机都向MQTT服务器订阅了消息主题为温度的消息,当MQTT网关向这个服务器发布温度传感器的消息(当前温度为21℃),笔记本和手机都会收到发布的温度。卓岚的MQTT产品可以充当本地设备和MQTT云服务器之间的桥梁。
除了数据采集网关通过模拟量和数字量对外接口外,其它MQTT网关都采用串口(RS485、RS232、RS422、TTL)来和设备对接。支持MQTT云平台有百度云、阿里云等。
卓岚MQTT网关的特色在于,不仅支持透传,而且支持将各类串口协议转化为JSON格式。且支持设备的自动采集。举个例子来说,如果温度传感器采用的是Modbus RTU格式的串口协议,需要解决两个问题:
- 自动采集:温度传感器采用的Modbus RTU协议需要每隔一段时间去询问设备,并获得当前温度。但是MQTT协议属于有消息就发布的机制MQTT服务器无法担任这个任务,必须让MQTT网关自动查询温度传感器,并将获得数据存储起来,并定时上发服务器。卓岚MQTT网关可以配置Modbus轮训指令或者非标准的串口设备指令。
- 格式转化:设备端采用的是十六进制指令,比如01 03 02 12 34 b5 33的数据,这种数据对于云端比较难统一和识别。卓岚MQTT网关支持将Modbus
RTU数据转化为JSON格式后上发,比如以上十六进制数据变为:{“power”:”1234”}这种格式。
总结一下卓岚MQTT网关主要特点是:
- 采用MQTT为基础的协议和服务器建立连接,采用订阅发布的形式进行数据通讯。
- 支持Modbus RTU寄存器的自主设计和自动采集。
- 支持将特定的Modbus寄存器内容转化为JSON格式定时主动上发。
- 支持在JSON格式中加入设备ID,方便云端识别设备。
- 支持无符号数据和有符号数据,支持小数点表示,支持4字节长度数据。
- 所有配置都可以界面化配置完成,用户自主配置无需定制。
一文教你快速读懂MQTT网关的更多相关文章
- 一泡尿的时间,快速读懂QUIC协议
1.TCP协议到底怎么了? 现时的互联网应用中,Web平台(准确地说是基于HTTP及其延伸协议的客户端/服务器应用)的数据传输都基于 TCP 协议. 但TCP 协议在创建连接之前需要进行三次握手(如下 ...
- 网络编程懒人入门(十):一泡尿的时间,快速读懂QUIC协议
1.TCP协议到底怎么了? 现时的互联网应用中,Web平台(准确地说是基于HTTP及其延伸协议的客户端/服务器应用)的数据传输都基于 TCP 协议. 但TCP 协议在创建连接之前需要进行三次握手(如下 ...
- 一文教你快速搞懂速度曲线规划之S形曲线(超详细+图文+推导+附件代码)
本文介绍了运动控制终的S曲线,通过matlab和C语言实现并进行仿真:本文篇幅较长,请自备茶水: 请帮忙点个赞
- 快速读懂 HTTP/3 协议
在 深入浅出:HTTP/2 一文中详细介绍了 HTTP/2 新的特性,比如头部压缩.二进制分帧.虚拟的"流"与多路复用,性能方面比 HTTP/1 有了很大的提升.与所有性能优化过程 ...
- 如何快速读懂大型C++程序代码
要搞清楚别人的代码,首先,你要了解代码涉及的领域知识,这是最重要的,不懂领域知识,只看代码本身,不可能搞的明白.其次,你得找各种文档:需求文档(要做什么),设计文档(怎么做的),先搞清楚你即将要阅读是 ...
- [转载]循规蹈矩:快速读懂SQL执行计划的套路与工具
作者介绍 梁敬彬,福富研究院副理事长.公司唯一四星级内训师,国内一线知名数据库专家,在数据库优化和培训领域有着丰富的经验.多次应邀担任国内外数据库大会的演讲嘉宾,在业界有着广泛的影响力.著有多本畅销书 ...
- 一文教你快速搞懂速度曲线规划之T形曲线(超详细+图文+推导+附件代码)
运动控制中常用的T速度曲线规划的原理和程序实现,最后给出了测试结果: 如果本文帮到了您,请帮忙点个赞
- 一文读懂MQTT协议
1 概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级 ...
- 一文教你快速搞懂 FOC ramp function 斜坡函数的作用和实现
文章目录 定义 程序的实现 matlab 程序 C语言程序 定义 x(t)={0,t<0At,t≥0 x(t) = \begin{cases} 0,t<0\\ At,t \ge 0\\ \ ...
随机推荐
- 7.HTTP协议
1.什么是url? 1.1 URL是统一资源定位符,表示的是一个资源,(图片 文字 视频 音频 等等) 单个资源介绍--图片 那URL的组成部分是由协议, 域名:端口, 路径和文件名 1.2 url组 ...
- 05 Node.js学习笔记之发送文件数据
这章学习在NodeJs中如何将Html文件发送到客户端上,以及定义Content-Type内容类型 //1.载入http和fs模块 var http=require("http") ...
- 百万年薪python之路 -- 字典(dict)
1.字典(dict)-- dict关键字 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 字典中逗号分隔叫作一个元素 字典是无序的 key必须是不可变 ...
- Leetcode(5)最长回文子串
Leetcode(4)寻找两个有序数组的中位数 [题目表述]: 给定一个字符串 s,找到 s 中 最长 的回文子串.你可以假设 s 的最大长度为 1000.' 第一种方法:未完成:利用回文子串的特点 ...
- Java基础(二十四)Java IO(1)输入/输出流
在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称为输出流. 输入流的指向称为源,程序从指向源的输入流中读取数据. 输出流的指向是字节要去的目的地, ...
- 判断是否存在UI被触摸
) || (Input.touchCount > && Input.GetTouch().phase == TouchPhase.Began)) { #if UNITY_ANDR ...
- Dockerfile 指令详解
GitHub Page:https://blog.cloudli.top/posts/Dockerfile-指令详解/ FROM FROM 命令指定基础镜像.在构建镜像时,基础镜像必须指定,因此在 D ...
- vim配置(vimplus)教程及问题
An automatic configuration program for vim 安装(github地址:https://github.com/chxuan/vimplus.git, 欢迎star ...
- null与undefined的区别?
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志. ——北宋· 苏 轼<晁错论> 1.首先看一个判断题:null和undefined 是否相等 console.log(null== ...
- hydra的使用
hydra参数详解 -R 继续从上一次进度接着破解 -S 大写,采用SSL链接 -s 小写,可通过这个参数指定非默认端口 -l 指定破解的用户,对特定用户破解 -L 指定用户名字典 -p 小写,指定密 ...