MQTT驱动配置简介
MQTT全称为消息队列遥测传输(英语:Message Queuing Telemetry Transport),是ISO 标准(ISO/IEC PRF 20922)下基于发布 (Publish)/订阅 (Subscribe)范式的消息协议,工作在 TCP/IP协议族上。
 
MQTT最大优点在于,可以用极少的数据和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
 
MQTT 协议定义了两种网络实体:消息代理(message broker)与客户端(client)。其中,消息代理用于接收来自客户端的消息并转发至目标客户端,也被称为MQTT服务器。MQTT 客户端可以是任何运行有 MQTT 库并通过网络连接至消息代理的设备,例如微型控制器或大型服务器。
 
在MQTT 协议中,消息的传输是通过主题(topic)管理的,消息的发布者和订阅者均为客户端(client)。消息由主题(Topic)和负载(payload)两部分组成。当某个客户端有需要分发的数据时,会向连接的消息代理(MQTT服务器)发送指定主题的携带有负载的消息。服务器收到消息后,会向订阅此主题的客户端分发此消息。发布者不需要配置订阅者的相关信息和具体位置;同样,订阅者也不需要配置发布者的相关信息和具体位置。
 
AIRIOT低代码物联网开发平台,专注物联网系统高效开发的专业化平台,相比于传统开发模式具有更快速、更全面、更低代码量、更易于学习等特点。
 
今天,我们将通过实操案例,来看看如何使用AIRIOT以拖拽式低代码,轻松实现配置MQTT驱动,帮助您有效降低在驱动配置方面的学习成本。
AirIot平台MQTT驱动配置说明
 
  1. 在系统模型管理界面中选择要配置的模型,右侧选项卡选择设备配置,在设备驱动一栏选择MQTT客户端。无无该选项时,点击右侧的驱动市场按钮在线安装驱动。

  1. 配置驱动参数
(1)MQTT服务器:填写要连接的mqtt服务器的地址。格式为
tcp://服务器IP或域名:服务器端口
例如:tcp://127.0.0.1:1883
(2)用户名、密码:填写MQTT服务器的用户名和密码。
(3)订阅消息主题:填写该模型要订阅的消息主题,可使用通配符#和+。
Topic是个utf-8编码的字符串,可由多个'/'分割开。
+:为单级通配符,如:check/+/baseline
#:为多级通配符,必须放在topic的最后,前一个字符必须是'/'
建议Topic中不要包含空格符。
(4)通讯监控参数:平台通用配置,当某个资产数据点中的最新上数时间距离当前时间超过此参数时,平台判定资产掉线。
(5)自定义脚本:由于mqtt协议中未规定具体的消息内容格式,因此需要用户编写自定义脚本,用于解析消息和组装要发送的消息内容。
使用示例
由于MQTT协议通过主题区分不同种类的消息,因此在使用时,不同的主题需要建立不同的模型,下边以网关常用的MQTT格式为例,介绍脚本的编写方法。
消息格式
数据采集网关发布的主题的为 box/网关唯一编号/data 假设网关唯一编号为8位,例:box/abcd1234/data 消息内容:{"data":{"d1":100},"time":1644290863000} 网关订阅的主题为 box/网关唯一编号/command 消息内容:{"d1":200}
脚本
脚本语言采用的是JavaScript,一部分为固定格式:
// 解析接收数据 // 该服务器和主题收到的消息会调用此方法进行解析,消息主题是方法参数topic,消息内容是方法参数package. // topic类型为字符串,考虑到部分设备的消息内容为二进制数据,package类型为字节数组. ParseHandle = function (topic, package) { // 解析数据 let id = "abcd1234" //id是资产编号,平台通过id判断数据和资产的对应关系,必需 let values = {"d1":100} // values是一个对象,key为数据点标识,值就是采集的具体数值,必需 let time = 1644290863000 // 数据点采集时间,UNIX毫秒时间戳,没有time时,默认采用服务器时间 return [ //可返回多个对象,对应多个资产 { id, values,time } //返回的对象中的key的名字必须为id,values,time ] } // 构建发送数据 CommandHandle = function (topic, id, op) { // 构建发送数据 let sendTopic = "" let sendData = {"d1":200} return { sendTopic, sendData }} //返回的对象中的key的名字必须为sendTopic,sendData }
脚本示例:
// 解析接收数据 // 消息内容:{"data":{"d1":100},"time":1644290863000} ParseHandle = function (topic, package) { let id = topic.substring(4, 12) // 从主题中截取资产编号 let msg = JSON.parse(package.toString()) // 将消息从字节数组转为json对象 let values = msg.data // 该消息内容的格式恰好符合平台的要求格式 let time = msg.time // 毫秒时间戳 return [ { id, values,time } ] } // 构建发送数据 // 主题: box/abcd1234/command // 内容: {"d1":200} CommandHandle = function (topic, id, op) { let sendTopic = `box/${id}/command` let sendData = `{"${op.tag}":${op.value}}` return { sendTopic, sendData } }

AIRIOT物联网低代码平台如何配置MQTT驱动?的更多相关文章

  1. 低代码平台--基于surging开发微服务编排流程引擎构思

    前言 微服务对于各位并不陌生,在互联网浪潮下不是在学习微服务的路上,就是在使用改造的路上,每个人对于微服务都有自己理解,有用k8s 就说自己是微服务,有用一些第三方框架spring cloud, du ...

  2. 基于低代码平台(Low Code Platform)开发中小企业信息化项目

    前言:中小企业信息化需求强烈,对于开发中小企业信息化项目的软件工作和程序员来说,如何根据中小企业的特点,快速理解其信息化项目的需求并及时交付项目,是一个值得关注和研讨的话题. 最近几年来,随着全球经济 ...

  3. 2021年哪个低代码平台更值得关注?T媒体盘点国内主流低代码厂商

    2020年圣诞前夜,国内知名创投科技媒体T媒体旗下的T研究发布了2020中国低代码平台指数测评报告.报告除了对国内低代码行业现状进行总结外,还对主流低代码厂商的市场渗透和曝光进行测评. 报告认为,低代 ...

  4. 分析师机构发布中国低代码平台现状分析报告,华为云AppCube为数字化转型加码

    摘要:Forrester指出,中国企业数字化转型过程中,有58%的决策者正在采用低代码工具进行软件构建,另有16%的决策者计划采用低代码. 华为消息,知名研究与分析机构Forrester Resear ...

  5. 使用WtmPlus低代码平台提高生产力

    低代码平台的概念很火爆,产品也是鱼龙混杂. 对于开发人员来说,在使用绝大部分低代码平台的时候都会遇到一个致命的问题:我在上面做的项目无法得到源码,完全黑盒.一旦我的需求平台满足不了,那就是无解.   ...

  6. OpenDataV低代码平台增加自定义属性编辑

    上一篇我们讲到了怎么在OpenDataV中添加自己的组件,为了让大家更快的上手我们的平台,这一次针对自定义属性编辑,我们再来加一篇说明.我们先来看一下OpenDataV中的属性编辑功能. 当我们拖动一 ...

  7. vivo 低代码平台【后羿】的探索与实践

    作者:vivo 互联网前端团队- Wang Ning 本文根据王宁老师在"2022 vivo开发者大会"现场演讲内容整理而成.公众号回复[2022 VDC]获取互联网技术分会场议题 ...

  8. vivo 游戏中心低代码平台的提效秘诀

    作者:vivo 互联网服务器团队- Chen Wenyang 本文根据陈文洋老师在"2022 vivo开发者大会"现场演讲内容整理而成.公众号回复[2022 VDC]获取互联网技术 ...

  9. 干货!可以使用低代码平台代替Excel吗?

    低代码开发平台可以代替Excel?不用惊讶,答案是肯定的,而且,低代码开发平台可以完全代替Excel.例如Zoho Creator低代码平台,可以围绕数据存储.管理和创建工作流程.期间不需要IT人员介 ...

  10. 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端

    前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...

随机推荐

  1. FindBugs问题EQ_COMPARETO_USE_OBJECT_EQUALS的解决方法

    本文记录的是2016年4月初发生的事情. 前几天,标准CI的静态检查页面发现一个项目组同事引入的FindBugs问题,EQ_COMPARETO_USE_OBJECT_EQUALS,CI对这个问题给出的 ...

  2. 在nginx中使用proxy protocol协议

    目录 简介 proxy protocol在nginx中应用 在nginx中配置使用proxy protocol 在nginx中启用proxy protocol 使用Real‑IP modules 请求 ...

  3. Solr安全控制,开启基本身份验证

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 背景:solr默认安装没带权限控制,每次进入页面直接操作都有点裸奔的感觉. 一.SolrCloud集群模式 说明:要使用基本身份验证您必 ...

  4. 基于OT与CRDT协同算法的文档划词评论能力实现

    基于OT与CRDT协同算法的文档划词评论能力实现 当我们实现在线文档平台时,划词评论的功能是非常必要的,特别是在重文档管理流程的在线文档产品中,文档反馈是非常重要的一环,这样可以帮助文档维护者提高文档 ...

  5. MMDeploy部署实战系列【第一章】:Docker,Nvidia-docker安装

    MMDeploy部署实战系列[第一章]:Docker,Nvidia-docker安装 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善.如果有那个地方没看懂,评论区问就可以,我给补充. 版权 ...

  6. Web自动化实战:去哪儿网购票流程测试

    克隆源码 项目Github地址:https://github.com/gy-7/Web-automation-practice/tree/main/project1_qunar_booking_tic ...

  7. 【最简单】禁用Chrome的“请停用以开发者模式运行的扩展程序”提示

    安装油猴插件后,每次打开Chrome浏览器后右上角都会提示,"请停用以开发者模式运行的扩展程序"的一个窗口,强迫症患者表示很烦. 小白的我试过网上多数方法,有些已经失效,有些都太麻 ...

  8. .netcore 使用Quartz定时任务

    这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例.首先确保已经安装了 .NET Core SDK.接下来按照以下步骤创建一个新的控制台应用程序并设置定时任务: 创建一 ...

  9. 阿里巴巴云原生混部系统 Koordinator 正式开源

    ​简介: 脱胎于阿里巴巴内部,经过多年双 11 打磨,每年为公司节省数十亿的混部系统 Koordinator 今天宣布正式开源.通过开源,我们希望将更好的混部能力.调度能力开放到整个行业,帮助企业客户 ...

  10. 深度解析数据湖存储方案Lakehouse架构

    ​简介:从数据仓库.数据湖的优劣势,湖仓一体架构的应用和优势等多方面深度解析Lakehouse架构. 作者:张泊 Databricks 软件工程师 ​ Lakehouse由lake和house两个词组 ...