mqtt

MQTT第5版更新,以及如何应用到Qt MQTT模块中

南笙酒味 提交于 2020-04-29 15:15:48
原文 作者: Maurice Kalinowski 校审:Richard Lin 之前 我曾写过在MQTT消息中的topic可能会对发布的数据量产生较大影响。从那之后,MQTT已经发布了第5版标准并且诞生了第一个实现。当然,Qt MQTT也随之跟进,这篇文章将介绍 Qt for Automation 模块是如何应用新标准的。 在这篇文章中,我们不会详细介绍新标准,而是展示最新版本的一些亮点特性和好处。 Topic别名 请注意消息的topic始终作为字节流的一部分并且以明文形式未加任何压缩地发送。例如,报告温度值的传感器网络可以采用如下层次结构的topic sensors/Europe/2af89b42-d2a6-11e8-a8d5-f2801f1b9fd1/Temperature 因此,消息的字节布局如下所示: 每个消息总共最多71个字节,其中4个字节包含了请求信息。 在之前的文章中,我们谈到了如下的方法 减少topic长度 组合多个传感器的值以优化额外开销的比值。 MQTT5引入了topic别名,允许为某个topic分配ID。 在连接握手期间,客户端和服务器就topic别名是否可用以及topic别名的最大数量达成一致。当ID可分配时可以将它们分配给各个topic。此分配过程是在消息发布期间完成的。新的发布消息同时设置topic别名的字节布局如下所示: 对于第一条消息

Spring Boot 知识图谱-入门教程

懵懂的女人 提交于 2020-04-28 05:06:02
如何学习好 Spring Boot,如何快速入门,我觉得最好的方法就是自己跟着写代码,写完再发布到自己的博客系统中。教会别人写代码。这样你会思考很多。所以就有了本篇,Spring Boot 知识图谱,虽然这里可能不是最全的应用,但我会不定期的增加一些知识点进去。就当一个学习库,一个知识收藏夹,大家喜欢的可以在我的 https://github.com/fishpro/spring-boot-study 中点 关注以资鼓励。 SpringBoot学习路径 第一部分:了解 Spring Boot Spring Boot 入门前的准备-Java JDK for window mac 安装 Spring Boot 入门前的准备-IntelliJ IDEA 开发工具的安装与使用 Spring Boot 概述 Spring Boot 特性及Spring Boot 2.0新特性 Spring Boot 学习前你应该知道的 Maven 知识 Spring Boot 学习之 IDEA 环境下多模块 Multi Modules Spring Boot 学习之 IDEA 环境下的 github 创建提交与修改 Spring Boot 快速入门 HelloWorld示例 Spring Boot 快速入门 HelloWorld示例详解 Spring Boot 学习方法论-如何正确的入门 Sprint Boo

【RabbitMQ】2、心得总结,资料汇总

ⅰ亾dé卋堺 提交于 2020-04-27 22:31:25
Spring AMQP中文文档 http://ju.outofmemory.cn/entry/320538 云栖社区 https://yq.aliyun.com/search?q=rabbitmq&type=ARTICLE RabbitMQ-JAVA常见报错信息 , https://yq.aliyun.com/articles/175024 CentOS7环境下安装RabbitMQ, http://t.cn/RCtrQey RabbitMQ-Java版本生产与消费, http://t.cn/RCtd249 RabbitMQ:四种ExChange用法, http://t.cn/RCxR801 RabbitMQ之TTL(Time-To-Live 过期时间) RabbitMQ之死信队列 RabbitMQ之队列优先级 (优先级队列,队列的未被消费的消息,按照优先级高级先后被消费) RabbitMQ如何实现延迟队列? CSDN 消息中间件(Kafka/RabbitMQ)收录集 高可用集群 http://www.nongziyi.xin/?p=227 https://blog.csdn.net/woogeyu/article/details/51119101 https://www.linuxidc.com/Linux/2017-10/147708.htm?hmsr=toutiao.io

物联网架构成长之路(33)-EMQ数据存储到influxDB

≯℡__Kan透↙ 提交于 2020-04-27 06:33:18
一、前言   时隔一年半,技术变化特别快,学习也要跟上才行。以前写过EMQ数据转存问题,当时用了比较笨的方法,通过写插件的方式,把MQTT里面的数据发送到数据库进行存储。当时也是为了学习erlang和emq。现在随着对物联网的深入,也结合实际需求,不停的学习。 下面将介绍我实验测试可行的物联网数据分析解决方案。采用的还是开源方案。通过订阅MQTT的根Topic,把所有物联网数据转存到InfluxDB时序数据库,然后通过Grafana进行图表显示。这应该是目前比较流行的方案。 二、安装InfluxDB   InfluxDB是时序数据库,特别适合做数据监控和物联网数据存储。【也可以说适合我现在参与架构的物联网平台的技术选型】   针对InfluxDB也没有什么可以多说的,详细可以查阅官方文档,或者网上的博客文章。我写的都是平时实践过程的操作记录,写博客,主要是为了以后忘记的时候,回看查阅用的。另一方面是加强跟同行读者交流的渠道。有一点要注意,一开始为了新,我用InfluxDB 2.0 版本,发现不行,那个太新的,很多对应的开发库没有完善好。所以还是采用InfluxDB 1.x版本。这样在spring boot 里面也有自带的starter库可以使用,操作起来特别方便。   InfluxDB官方文档: https://docs.influxdata.com/influxdb/v1.7/

开发STM32MP1,你需要一块好开发板

怎甘沉沦 提交于 2020-04-26 18:01:09
STM32MP1 系列的出现吸引了很多 STM32 的新老用户的关注,但是很多的人都会担心一个问题:以前 是基于 Cortex M 系列 MCU 进行开发的, 对于 cortex-A 架构的处理器以及 Linux 系统都不熟悉 。 如何高效地从 MCU 跨越到 MPU 是大家都关心的话题。 作为 ST 官方合作伙伴,米尔电子推出了开发套件 MYD-YA157C , 该 套件由核心板 MYC-YA157C 和底板 MYB-YA157C 组成。 该平台采用 STM32MP157 系列高性能处理器,提供了高性能显示,千兆以太网, WIFI/ 蓝牙, RS232/RS485/CAN 等丰富接口。贴合应用场景的产品定义,稳定可靠的硬件设计,丰富的软件和学习资源,能帮助大家轻松实现跨越,是一块值得推荐的 STM32MP1 开发板。 图 1 米尔 MYD-YA157C 开发板 一、 STM32MP157 超强芯片 该开发平台 采用 ST 公司 STM32MP157AAC 3 处理器作为主控平台 , 这是 ST 公司在 2019 年推出的首款 MPU ,也是一颗超强 双核 cortex-A7 加单核 M4 的芯片,主频可达 650Mhz , 芯片 含有丰富的资源, 满足用户对于图像界面的日常需求 , 支持各种存储器接口 和 丰富的通信接口 。 图 2 STM32MP1 系列结构框图

5G工业网关和5G工业路由器差异对比分析

自作多情 提交于 2020-04-26 17:24:22
一、5G特点 “5G网络比较现在4G网络,5G网络的峰值速度比4G高出20倍。新的编码技术、超密集组网、高带宽、高速率、低时延,5G应用将深刻地影响娱乐、制造、汽车、能源、医疗、交通、教育、养老等各个行业。目前,不少企业已经推出5G应用的雏形,构建5G应用生态。 二、工业路由器与工业网关简单说明 工业路由器基于Linux系统,集成5G/4G/3G/2G网络,支持数据采集和传输。所以说工业路由器主要是负责工业数据传输与交互。 工业网关基于Linux系统,集成5G/4G/3G/2G网络,支持数据智能采集、多种协议转换,数据处理的智能网关、工业网关针对行业场景化更专业更深度。 三、5G工业网关和5G工业路由器共同点 1. 都是采用5G网络都进行数据传输交互; 2. 采用的5G模块芯片基本一样,国内基本两家高通或是华为; 3. 接口千兆或是百兆网口传输; 4. 基本5G天线都是4根或是4根以上; 5. 传输方面还是上卡拨号方式,走路由方式; 6. 都是基于Linux核心; 7. 支持C语言和pyhon开发。 四、5G工业网关和5G工业路由器差异点 1、5G工业网关和5G工业路由器在硬件上的区别: 硬件接口不一样,5G工业网关接口会更加多和丰富,设备接入能力更强。以BGM8200工业5G网关为例,5G工业网关,配备接口,包括 7 路千兆 LAN 口、1 路千兆 WAN 口、2 路千兆光口、2

esp8266物联网开发四:MQTT本地操控

痞子三分冷 提交于 2020-04-26 14:07:05
之前利用点灯科技的库来使小爱同学控制LED的过程中,我们大略提到了一下MQTT的整体流程,由于其MQTT服务器是由点灯科技提供的,所以对其中的很多连接细节,我们并不知道,本节我们准备通过搭建本地的MQTT服务器,然后通过MQTT Client向MQTT服务器发送控制命令,来控制我们的LED灯。 首先,我们需要启动MQTT服务器,启动方式我们就不需要多说了,之前章节有讲解,启动完毕之后,其连接地址为:192.168.43.2:1883,切记连接地址不可写成127.0.0.1,否则无法连接成功。 然后,开始进行编码操作,具体编码内容如下: #include <ESP8266WiFi.h> #include <PubSubClient.h> #define JDQ 16 const char * MQTT_SERVER = " 192.168.43.2 " ; const int MQTT_PORT = 1883 ; const char * MQTT_USRNAME = " addmin " ; const char * MQTT_PASSWD = " public " ; const char * TOPIC = " home/devices/onoff/ " ; const char * CLIENT_ID = " scy-mqtt-client " ; //

esp8266物联网开发三:MQTT左右逢源

非 Y 不嫁゛ 提交于 2020-04-26 14:06:00
玩够了oled,wifi killer,小爱同学远控等等玩意儿之后,我们需要更近一步,这节就讲解如何在本机进行MQTT环境的搭建及消息的收发。至于MQTT是什么,相信大家很多人都百度一下就知道原理了,不会的可以补补课,我就不细讲了。 一、工具准备 MQTT服务端下载地址: https://links.jianshu.com/go?to=http%3A%2F%2Femqtt.com%2Fstatic%2Fbrokers%2Femqttd-windows7-v2.3.9.zip MQTT客户端下载地址: https://links.jianshu.com/go?to=https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fworkswithweb%2Fmqttbox%2Flatest%2Fwindows%2FMQTTBox-win.exe 下载完毕后,将这两个进行安装即可。 二、搭建服务端 首先,解压服务端文件到D:\soft\emqttd\bin目录,然后利用cmd导向到此目录后,执行emqttd start命令并回车,稍等片刻,即可启动mqtt服务端。 然后,在浏览器中输入: http://127.0.0.1:18083/ 即可打开如图所示的服务端界面,需要注意的是,此界面需要进行登录,用户为admin,密码为public: 可以随便翻翻看其中的内容。

MQTT

与世无争的帅哥 提交于 2020-04-26 12:25:28
1. MQTT协议 这段时间吧,很有幸,解除到了一种协议MQTT,之前呢,在一些同行的盆友口中也略有耳闻。但是也仅仅是听过,并没有下来花什么时间对它进入太多的了解与熟悉。现在不同,工作项目中有所应用,这下我就不得不去了解了。我们搞技术的就是这样,很多时候,对于新鲜的事务可能没有到真实应用的时候,并不会去刻意的了解与学习,只有等到要用的时候,才去学习。哎!都是被工作赶着走的人儿呢。尴尬!! 好了,言归正转。我们来聊聊MQTT。 首先我来说一下这篇文章的标题,可能会把人带偏,其实MQTT并不是一种消息中间件,MQTT是一种通信传输协议。只是我们可以去基于MQTT规范去实现一个MQTT的消息中间件。所以人们可以将这一类实现了MQTT协议的中间件服务统称为MQTT消息中间件,我暂时是这么理解的。 说到MQTT协议,那么MQTT是一种什么协议呢。MQTT是IBM定义的一种比较轻量级的发布定于模式消息传输协议。主要用于针对物联网应用中低宽带和网络环境不是很稳定的场景。比如什么智能硬件啊,车联网等,智能家居,智能电器,智慧城市,电力,石油,能源等市场。 MQTT协议的特点: 开放消息协议,简单易实现 发布订阅模式,一对多消息发布 基于TCP/IP网络连接 1字节固定报头,2字节心跳报文,报文结构紧凑 消息QoS支持,可靠传输保证 目前MQTT V3.1.1应用比较广泛

ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于Wi-Fi模块AT指令TCP透传方式,MQTT通信控制升级-BootLoader程序制作过程(V1.0)

限于喜欢 提交于 2020-04-26 11:47:02
前言   这一节实现的功能是使用MQTT通信控制模块去升级   这一节还是着重讲解一下如何移植升级程序文件到自己的项目   我做的单片机升级封装文件的目的是希望大家直接移植到自己的项目使用!   关于实用性:   现在的封装适应所有的升级操作,无论用的啥东西来控制的啥单片机升级,无论用的啥方式升级都可以使用   如果大家不希望每用一个芯片实现升级就需要费劲脑子写一套程序,你就吃透我的升级方案!   关于稳定性:   所有的方案,代码都是我一点一点敲出来的,该方案也在很多人的项目上跑着,大家可以放心移植. 准备一个已经实现了TCP的工程,拷贝升级处理文件   1.准备的工程,该工程程序可以控制Wi-Fi模块发送http请求        2.把BootLoader需要用到的文件拷贝到自己的工程             拷贝到自己的项目里面    整理下工程   1.自行添加到工程,还有设置头文件位置        2.注:     可能自己的项目中已经有了上面的一些文件,建议大家把自己以前使用的替换掉!!     注意: 为使得升级稳定可靠 stmflash文件 必须使用我提供的!! 在自己工程的定时器里面添加以下信息    if(IAPStructValue.PutDataFlage && IAPStructValue.UpdateFlage)IAPStructValue