精华内容
下载资源
问答
  • 文章首发于同名微信公众号:DigCore欢迎关注同名微信公众号:DigCore,及时获取最新技术博文。原文链接:https://mp.weixin.qq.com/s/FCBF6EACwkA1uv5UWNrlnA(说明:此处的文章从微信公众号...对比了串口连接和TCP...

    文章首发于同名微信公众号:DigCore

    欢迎关注同名微信公众号:DigCore,及时获取最新技术博文。

    原文链接:https://mp.weixin.qq.com/s/FCBF6EACwkA1uv5UWNrlnA

    (说明:此处的文章从微信公众号拷贝而来,图片或者排版上可能存在一定的瑕疵,欢迎点击原文链接阅读)


    • 基本介绍

    在上篇文章《快速开发MQTT(一)电子工程师眼中的MQTT》中,对比了串口连接和TCP连接,我们知道实现了连接和数据收发之后,接下来就是要考虑数据的封装、组包的事了。

    比如UART传输过程中,数据被从A设备发送到B设备时,一般的都做这样的协议简单封装数据:“包头0xAA+两字节包长度LEN+1字节的LRC+数据内容”,此时B设备收到数据包就进行解析。

    15adb439ad5f54fbbc657edc7df66719.png

    这一过程就是应用层面的协议。

    类似的,MQTT也有报文格式,应用程序将数据填入报文包中,后通过TCP进行发送。

    为了查看其报文格式,可以利用MQTT客户端工具MQTT.fx,尝试向TCP服务器发起一个连接请求。

    TCP服务器继续使用上篇文章《快速开发MQTT(一)电子工程师眼中的MQTT》中提到的SSCOM工具进行模拟。

    35da314bc00bf8ca390698f2e6d74f9d.png

    54d000e6a0bc91dbb04523f162edc26b.png

    交互过程如下:

    1. TCP服务器开启,并侦听;
    2. MQTT.fx作为客户端,向TCP服务器发起请求,发出的CONNECT报文(Hex):10 1A 00 044D 51 54 54 04 02 00 3C 00 0E 77 77 77 2E 64 69 67 63 6F 72 65 2E 63 6E;
    3. TCP服务器接收到该请求, TCP服务器此刻该回复(Hex):20 02 00 00;
    4. 完成连接请求。

    以下为交互过程截图:

    adc6a63e4ee661791a78a67064b82c1d.png

    配置TCPServer和MQTT.fx客户端,需要填写一致的IP地址和端口号

    e8c5b34772927118505e1044bb13ea50.png

    MQTT.fx发起连接时,TCPServer接收到的完整数据包内容

    90bf957d7a15f1dce8166a172f549e8b.png

    TCPServer通过发送栏,回复数据(Hex):2002 00 00

    至此,MQTT的连接流程完成,并且MQTT.fx客户端显示已连接的状态。通过这一模拟的过程,我们能够清晰认识到MQTT文档中的报文格式定义已经协议规范的定义。

    对以上的数据分析,我们很容易就和MQTT-3.1.1版本规范进行对应:

    客户端发的数据是10 1A 00 04 4D 51 54 54 04 02 00 3C 00 0E 77 77 77 2E 64 69 67 63 6F 72 65 2E 63 6E

    解析如下:

    固定报头:0x10 1A,即报文类型是1,长度是26个字节(0x1A)

    可变报头:

    0x00 04 4D 51 54 54,此处定义了协议名,长度是4,协议名是”MQTT”;

    0x04,协议级别;

    0x02,连接标志;

    0x00 3C,保持连接,以秒为单位的时间间隔;

    有效载荷:

    0x00 0E,有效载荷内容的长度

    0x77 77 77 2E 64 69 67 63 6F 72 65 2E 63 6E,客户端标识符http://www.digcore.cn

    TCPServer回复的数据是20 0200 00

    解析如下:

    固定报头:0x20 02,即报文类型是2,长度是2个字节(0x02)

    可变报头:0x00 00,即连接确认标志和连接返回码

    在实际开发过程中,可以利用SSCOM工具作为服务器式验证自己编写的MQTT客户端程序是否正确发出数据,另外也可以作为客户端验证与MQTT服务器的正确交互。

    既然TCP连接后就已经实现了数据收发的功能,为什么应用层还有这么多的通信协议:HTTP、FTP、MQTT等。

    这就有区别于串口,毕竟串口在通信时是有着导线直接相连,而基于TCP连接的通信,在复杂的计算机网络中,准确找对一个终端并与之交互数据,这中间需要做的是靠应用层的协议进行握手、确认等交互,有着“一回生二回熟三回四回热炕头”这么一个啰嗦的过程。

    • 协议框架

    e733c821d314a0ad2528207bbf76ccc7.png

    MQTT框架模型非常清晰看到,服务器实现了该协议的最主要功能,对数据和指令进行“转发”。

    原文链接:https://mp.weixin.qq.com/s/FCBF6EACwkA1uv5UWNrlnA


    ★★★★★推荐文章

    《【嵌入式编程】平台大小端存储差异解决办法》

    《嵌入式硬件通信接口-使用RingBuffer处理数据(二)详细设计过程》

    《嵌入式硬件通信接口-使用RingBuffer处理数据(一)》

    《快速开发MQTT(一)电子工程师眼中的MQTT》

    《快速开发MQTT(二)初识MQTT》

    《MQTT客户端搭建-最清晰的MQTT协议架构》

    《MQTT服务端搭建-最快方式验证自己开发的客户端》

    ★★★★★相似文章

    《嵌入式硬件通信接口协议-UART(五)数据包设计与解析》

    《嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议》

    《嵌入式硬件通信接口协议-UART(三)快速使用串口及应用》

    《嵌入式硬件通信接口协议-UART(二)不同电气规范下的标准》

    《嵌入式硬件通信接口协议-UART(一)协议基础》

    《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》

    《嵌入式硬件通信接口协议-SPI(一)协议基础》

    ★★★★★扩展阅读

    《【硬件电路】AltiumDesigner18规则检查含义》

    《【硬件电路】N沟道、P沟道MOS管基本原理与应用案例》

    展开全文
  • 1.MQTT介绍:MQTT(Message Queuing Telemetry Transport,消息队列...2.MQTT网关应用原理:如以上MQTT应用原理图所示,带Modbus协议的上位机(如PLC),通过串口(RS485)接入到华辰智通工业无线网关,网关将采集...

    1.MQTT介绍:

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),作为除Modbus外最常用的协议之一,因其基于发布/订阅的模式,具有资源消耗少、效率高的优势,从而受到行业内的广泛使用。

    2.MQTT网关应用原理:

    34a4d5e6-b711-eb11-8da9-e4434bdf6706.png

    如以上MQTT应用原理图所示,带Modbus协议的上位机(如PLC),通过串口(RS485)接入到华辰智通工业无线网关,网关将采集上来的Modbus数据转换成指定数据格式,再通过MQTT上传到云平台。

    首先确认好PLC与网关的接线是否正确,然后在本地或云平台配置网关的采集参数。

    MQTT网关的配置:进入华辰智通的MQTT网关的WEB界面,根据网关表建立MQTT网关信息(主要是填入网关序列号),然后配置采集PLC数据变量模板表(同一种类型的PLC设备具备相同的变量表),添加设备信息(定义关联的MQTT网关,定义关联的采集PLC数据变量模板,定义通信参数和采集周期等),部署设备和变量信息到MQTT网关,然后MQTT网关就开始采集PLC数据并发送数据到物联网云平台(即上报模式);云平台处理收到的数据,并插入到数据库中。物联网云平台也可以下发指令到MQTT网关,通过MQTT网关把数据传给PLC,从而达到双向通信的功能。

    3.华辰智通Hinet工业无线网关介绍

    HINET工业智能网关是一个集成多种互联网通讯技术,面向工业领域的设备通讯终端产品。支持4G、WIFI、以太网等多种互联网接入方式。

    1、 实现工业现场设备远程控制;

    2、 实现设备固件远程升级,程序上下载,可灵活接入各种设备管理平台;

    3、 实现工业现场触摸屏远程控制和组态画面远程映射;

    4、 可同时与多台PLC或触摸屏远程通讯;

    5、实现西门子、三菱、欧姆龙、施耐德、台达、汇川、和利时、松下、永宏、海为和 MODBUS 系列等PLC等主流协议硬件解析;

    6、 实现PLC远程监控,PLC远程编程,PLC远程调试,PLC远程上下载,PLC远程控制,PLC数据采集,PLC远程通讯;

    35a4d5e6-b711-eb11-8da9-e4434bdf6706.png

    湖南华辰智通科技有限公司是一家工业互联网整体解决方案服务商,自主研发PLC远程监控,设备数据远程采集,工业智能网关,数据采集网关,设备远程运维管理系统和思普云工业大数据监控云平台,欢迎垂询!

    展开全文
  • 工业智能MQTT网关特性HINET工业智能网关是一个集成多种互联网通讯技术,面向工业领域的设备通讯终端产品。其包含的5G、4G、WIFI、有线宽带等多种互联网接入方式,可以适应各种网络应用环境,提供随处可得的安全通讯...

    工业智能MQTT网关特性

    HINET工业智能网关是一个集成多种互联网通讯技术,面向工业领域的设备通讯终端产品。其包含的5G、4G、WIFI、有线宽带等多种互联网接入方式,可以适应各种网络应用环境,提供随处可得的安全通讯链路。为设备的信息化管理提供高速的数据通道,为整个系统各功能得以实现提供安全可靠的保障和坚实的基础。
    HINET工业智能网关采用全工业化硬件设计平台,结合先进的软件功能,使得企业能够在最小的投资范围内快速建设规模化的工业设备通讯网络,为客户提供包含数据、语音、视频在内的多业务通道。

    cba2d5e6-b711-eb11-8da9-e4434bdf6706.png

    丰富接口、易于部署:
    支持4G、PPPOE、Wi-Fi网络、数字IO输入输出、串口终端通信,为不同的应用场合提供不同的接入方案。

    支持主流PLC协议解析
    实现西门子、三菱、欧姆龙、施耐德、台达、汇川、和利时、松下、永宏、海为和 MODBUS 系列等PLC等主流协议硬件解析

    支持多种VPN协议及多种网络协议
    极高的安全性:采用VPN over P2P远程安全通讯方式,结合RSA加密算法确保通讯安全,严防数据泄漏;支持CSMA/CA、TCP/IP、IPX/SPX、NetBEUI、DHCP、NDIS3、NDIS4、NDIS5,支持MQTT、HTTP等多种网络协议来保证数据传输的安全性。

    cca2d5e6-b711-eb11-8da9-e4434bdf6706.png

    工业级设计
    采用全工业化硬件设计平台,结合先进的软件功能,使得企业能够在最小的投资范围内快速建设规模化的工业设备通讯网络,为客户提供包含数据、语音、视频在内的多业务通道。

    远程定义、远程部署配置
    华辰智通MQTT智能网关支持采集方式、变量表(点表)和规则设定在云平台上定义好,然后远程把配置工程下发到现场网关;然后现场网关根据平台定义的方式对设备进行数据挖掘和分析,并以一定的周期和方式上报到平台。

    状态监控,远程运维

    支持远程监控网关的系统状态、MQTT的链路状态、网络状态,支持远程维护网关和远程维护设备,支持远程部署应用程序到网关上。

    cda2d5e6-b711-eb11-8da9-e4434bdf6706.png

    典型应用场景

    华辰智通HINET系列MQTT网关是一款工业级智能网关,设计满足工业级标准和工业用户的需求,该系列产品可帮助用户快速接入物联网云平台,实现安全可靠的数据传输,广泛应用于交通、电力、金融、水利、气象、环保、工业自动化,能源矿产、医疗、农业、林业、石油、建筑、智能交通等物联网应用。

    cea2d5e6-b711-eb11-8da9-e4434bdf6706.png

    工业现场PLC、变频器、机器人等设备远程维护;工程机械远程维护和管理;车间设备与工艺系统的远程维护和管理;小区二次供水水泵远程监测及控制;油气田和油井等现场的监测和控制;蒸汽管道和供暖管道的远程监测;智能楼宇、智慧工厂及其他工业4.0领域等应用。

    展开全文
  • 以下内容是使用MARS-WIFI-MQTT串口透传工具对TLINK平台中的MQTT协议进行的测试,请用户使用自己的帐号创建设备进行测试。 模块手册在下面连接中找: 链接:https://pan.baidu.com/s/1V9hYdzxtpKGdeks7H8AW1g 提取码...
  • 原文链接:https://mp.weixin.qq.com/s/hY3y0EpWLeya3YkWwvU1lQ(说明:此处的文章从微信公众号拷贝而来,图片或者排版上可能存在一定的瑕疵,欢迎点击原文链接阅读)对于MQTT的介绍,官方文档是直接进入主题,讨论其...

    3394e7c89a93e57fb8d643433c838868.png

    文章首发于同名微信公众号:DigCore

    欢迎关注同名微信公众号:DigCore,及时获取最新技术博文。

    原文链接:https://mp.weixin.qq.com/s/hY3y0EpWLeya3YkWwvU1lQ

    (说明:此处的文章从微信公众号拷贝而来,图片或者排版上可能存在一定的瑕疵,欢迎点击原文链接阅读)


    对于MQTT的介绍,官方文档是直接进入主题,讨论其架构模型,对于未曾接触网络技术的电子工程师来说,这第一章都已经是略微难懂的章节,更别提继续往下看了。因此,此文是站在电子工程师的角度介绍MQTT协议,为方便理解和描述,肯定没有计算机网络方面专业术语那么准确。

    作为一名电子工程师,去理解网络工程、软件工程这些范畴的技术,有时候时非常困难的,尤其是做硬件,很多东西感觉很抽象,又很空洞。

    3f0efef19e55e69fff5c7711d4eadee0.png

    日常工作中,电子工程师面对更多的是UART、SPI、IIC、USB,对于触手可及的这些外设接口协议,我们一般更多关注的是他们的信号时序、电气特性、传输速率等参数。并且在开发时,这些外设接口能够看得见摸得着,知道是哪两个或者哪几个设备之间进行连接。

    MQTT基于TCP连接进行的网络通信。

    都说“基于TCP连接”的通信,那到底啥是“TCP连接”呢?(官网http://www.tcpipguide.com/)这个需要了解到TCP/IP参考模型中的4层的定义:

    59800a5707e0d43400f7d6daf8c9048d.png

    TCP/IP参考模型图

    MQTT是在TCP连接后的基础上进行通信的,那么在此可以简单认为,TCP就是个“外设接口”,就像UART、SPI这样,作为传输层,就负责把数据收发。

    而在实际在使用过程中,MQTT数据是带了各种“格式”的条条框框进行封装,这些条条框框的封装就是在应用层定义和实现的。

    应用层的协议利用TCP这种“接口”进行收发数据时,为了区别于不同应用程序,而定义了应用协议,类似于MQTT、HTTP、FTP等。

    利用工具模拟和对比,串口连接后收发和TCP连接后收发的情况。

    这里使用的是单片机开发的时候最常用到的一个串口助手SSCOM V5.10a(http://www.daxia.com/sscom/sscom5.13.1.rar),带有TCP连接功能。首先看看电子工程师非常熟悉的串口通信界面:

    e523683b4d2f57f38eb5dd63d07b372e.png

    串口通信时的数据交互截图

    同样的,切换到TCP连接的方式,根据如下截图配置TCP服务器和TCP客户端:

    3269dfb35bb269df224b838883ba7475.png

    TCP连接后通信时的数据交互截图

    可见TCP和串口类似,在连接后就可以对数据进行传输了。并且和串口一样,在传输时,数据是被完全透传出去的,而没有被封装成任何格式(只看TCP层),可见平时在底层开发时使用串口通信都没有上升到应用层协议,基本都是裸数据传输的,即使说有协议那基本都是私有协议,且是自定义的。

    可是怎样能够实现连接?

    MQTT协议是基于TCP连接进行通信的,TCP可谓是比嵌入式外设要复杂些,不是简单一个硬件实现就可以了的。

    串口连接,最少需要的3根数据线(TxD,RxD,GND),然后设置两端设备的波特率、数据位、校验位、停止位,即可完成连接。

    而TCP连接,需要往下的多个层协议来实现,然后就是配置IP地址、端口。实现方式有很多,有线方式可以用集成了网卡芯片的单片机或者以太网转串口、SPI模块等,无线的方式可以用集成了wifi的单片机或者wifi转串口、SPI模块等。

    TCP连接实现方式很简单,就是芯片搭模块,而实现过程却是很复杂,对于应用开发的电子工程师,需要做的是能够利用低价格高效益的解决方案来实现MQTT协议,实现物联网。

    更多原创技术干货,点击阅读原文。

    原文链接:https://mp.weixin.qq.com/s/hY3y0EpWLeya3YkWwvU1lQ


    ★★★★★推荐文章

    《【嵌入式编程】平台大小端存储差异解决办法》

    《嵌入式硬件通信接口-使用RingBuffer处理数据(二)详细设计过程》

    《嵌入式硬件通信接口-使用RingBuffer处理数据(一)》

    《快速开发MQTT(一)电子工程师眼中的MQTT》

    《快速开发MQTT(二)初识MQTT》

    《MQTT客户端搭建-最清晰的MQTT协议架构》

    《MQTT服务端搭建-最快方式验证自己开发的客户端》

    ★★★★★相似文章

    《嵌入式硬件通信接口协议-UART(五)数据包设计与解析》

    《嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议》

    《嵌入式硬件通信接口协议-UART(三)快速使用串口及应用》

    《嵌入式硬件通信接口协议-UART(二)不同电气规范下的标准》

    《嵌入式硬件通信接口协议-UART(一)协议基础》

    《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》

    《嵌入式硬件通信接口协议-SPI(一)协议基础》

    ★★★★★扩展阅读

    《【硬件电路】AltiumDesigner18规则检查含义》

    《【硬件电路】N沟道、P沟道MOS管基本原理与应用案例》

    展开全文
  • MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况...
  • 1. LiteOS MQTT组件概述MQTT AL用来解耦基于MQTT的业务和MQTT的具体实现,具体来说以后的MQTT业务层应该有且只能使用MQTT AL提供的相关功能(API 数据结构 ...MQTT AL的api接口声明在中,使用相关的接口需要包含该...
  • Hey,学堂君为你准备了华为运动手环、华为移动...当然,这块PCB可以独立工作,能在脱机状态下进行使用,然后加入一些通信端口(如串口、网口等)通过COAP、MQTT或其他协议与网路互联,达到远程控制的效果。本篇先从...
  • 这是关于MQTT的第三篇文章,也是最后一篇关于MQTT的介绍和如何在ESP8266使用的文章,不过本篇文章只是简单的一个串口收发MQTT消息的小Demo,后面如果我们在实际的小项目中用到关于MQTT相关的内容,将不再做介绍,...
  • 4 L620模组调测 订阅、发布测试 第1步:打开串口调试助手,查看模组的入网配置信息,指令如下: AT+CEREG? //检查网络状态+CEREG: 0,2OKCT-Self Register: Have already registered!AT+CESQ //检查信号质量+CESQ: ...
  • 1硬件概述本文将描述Air系列模块(2G和4G模块)Lua版本上通用串口、调试串口、调试串口、USB口的特性和使用方法,先看一张对比图:若无特别说明,下文中描述的串口包括通用串口、调试串口、USB口三种,描述的串口通信...
  • ◆ 4G LTE转WiFi或网口,支持移远EC20 4GLTE模块通电插上SIM卡即可上网 ◆ DTU>串口数据透传,即把MCU串口数据转成tcp协议发送到服务器,支持tcp/MQTT协议两种服务器类型;可实现ZigBee智能网关>蓝牙智能网关>LORA...
  • MQTT+串口(usart)透传

    2020-03-31 11:14:33
    采用mqtt技术+wifi串口透传 wifi芯片为HF-LPD100,联网部分徐对照串口AT指令操作。 代码环境为正点原子战舰开发板,亲测可用。
  • 该Python模块从EnOcean接口接收消息(例如,通过USB),并将选定的消息发布到MQTT代理。 您也可以将其配置为使用传出的响应来回答传入的EnOcean消息。 响应内容也使用MQTT请求定义。 它建立在库的基础上。 安装 ...
  • STM32+BC35 -阿里云MQTT协议串口透传
  • STM32+BC35 -阿里云MQTT协议串口模拟传感器数据上传
  • 项目背景 一个温控器项目,可以本地控制空调,也可微信远程控制。其中,远程控制为:微信扫码进入...因为ESP8266与空调控制器之间采用串口uart通信,所以需要给官方提供的mqtt demo里增加串口处理程序。 串口介绍...
  • 大学生的物联网网关实验:使用mqtt实现串口数据的发送和接受。报价250 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该...
  • 使用STM32和串口转TCPIP模块,实现MQTT客户端的通信,topic的长度不超过64字节,message最大长度不超过1024字节
  • 单片机 MQTT 读取数据问题(串口通信) 问题描述 使用stm32F10x单片机串口接收数据时,接收中断只能按字节接收。将接收到的数据放入数据队列中。 这种接收中断按字节接收数据的方式,无法像Linux一样利用接收超时...
  • MQTT客户端移植,适用于STM32+串口透传模块。 本例程运行环境为正点原子战舰开发板,选用模块为HF-LPD100.请看我博客,有详细应用文章。
  • MQTT网关

    2019-11-07 10:10:38
    MQTT是一种发布(publish)/订阅(subscribe)协议,MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备...上海卓岚的MQTT网关ZLAN5143D起到将普通的串口数据、Modbus...
  • 通信调试工具,集合目前通信所有的调试工具,可技持硬件端口(串口、并口)、网络协议(TCP UDP MQTT) 短信猫、 WIFI热点、编码转换、二维码转换
  • 串口转TCP软件 我们需要使用两款软件,一款是串口转TCP的工具 commproxy(串口转tcp工具) v1.0 由于是虚拟调试,我这儿还使用了一款虚拟串口软件VSPD,大家自行百度下载即可。 如果实际使用单片机进行测试,则我们不...
  • nodeMCU和arduino串口透传MQTT消息

    千次阅读 2017-10-19 00:53:58
    nodeMCU 和 arduino 串口 透传 MQTT 消息
  • ESP8266 串口接收 中断处理,基于官方 MQTT DEMO修改,整个工程打包,可以直接使用
  • (1)配置一个MQTT服务器 (2)做一个物联网设备: 设备可以接入MQTT服务器 (51单片机) (3)做一个有ui界面的应用程序,能对物联网设备进行控制。
  • 在上节课“MQTT篇 1-1 MQTT是什么”里我们学习了MQTT协议的背景知识和基本特点,这节课我们一起了解MQTT的基本工作原理。在MQTT协议通讯中,有两个最为重要的角色。它们分别是服务端和客户端。首先我们来初步了解...
  • MQTT协议

    2020-10-18 22:33:22
    MQTT是什么? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布,目前最新版本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,179
精华内容 1,271
关键字:

MQTT串口