文章目录

  • 1 说明
    • 1.1 mqtt协议简介
    • 1.2 对比mqtt.fx与网络调试助手
    • 1.3 软件下载
  • 2 连接物联网
    • 2.1 连接报文
    • 2.2 发布报文
    • 2.3 订阅报文
  • 注意

1 说明

1.1 mqtt协议简介

    遥信消息队列传输,是IBM公司于1999年提出的。MQTT是一个基于TCP的发布订阅协议,设计的初始目的是为了极有限的内存设备和网络带宽很低的网络不可靠的通信,非常适合物联网通信。mqtt中文手册

1.2 对比mqtt.fx与网络调试助手

    在使用mqtt.fx连接阿里云的过程中,还是比较方便的,基本照着说明按部就班就可以连接上,但对于连接阿里云平台使用的mqtt的协议并不是很理解。使用网络调试助手连接阿里云平台使用的都是 十六进制,跟接近mqtt协议。如果只是为了连接阿里云平台做一些实验,使用mqtt.fx可以省很多事。如果为了学习mqtt协议,可以使用网络调试助手。

1.3 软件下载

    mqtt.fx下载

    网络调试助手

2 连接物联网

    使用mqtt协议连接阿里云平台,主要使用的有连接报文、发布报文和订阅报文。当然mqtt协议还有很多其他的报文。具体的还是要去查看手册。
    下面通过一个例子说明,由于每个人创建的产品和设备都不一样,需要灵活使用。

阿里云平台

下面就简单的使用网络调试助手连接阿里云做实验:

2.1 连接报文

格式:

固定头+可变头+有效负载
固定头:0x10+剩余字节(变化)
可变头:长度1+协议名称+协议版本+连接表示符+心跳包时间设置
有效负载:长度2+“用户 ID” +长度3 + “用户名” +长度4+ “密码”

说明:

  1. 本来在用户ID和用户名之间有临终消息主题 、临终消息,但是临终消息主题和临终消息如果可变头里面的连接标识符没有允许,就不要添加了,下面这个例子中没有临终消息主题和临终消息。
  2. 长度1表示MQTT字节长度,长度2表示用户ID的长度,长度3表示用户名的长度,长度4表示密码的长度,所有的长度都是说对应十六进制的长度。
  3. 这里的长度1,2,3,4都是用两个字节表示的。

十六进制编码:

固定头+可变头+有效负载
0x10+剩余长度+长度1+MQTT(协议名称)+版本(固定值)+连接标识符(有用户,密码,客服端掉线后服务清空客服端信息)+心跳包+长度2+ Client ID +长度3+${YourDeviceName}&${YourPrductKey}+长度4+Password
0x10+剩余长度+长度+MQTT+0x04+0xC2+0x00+0x3C+长度+ 123456|securemode=3,signmethod=hmacsha1|长度+test_1&a1oeGdMGmHf+长度+F9D2A7F9EE845A951B70784722A3B24AFAE1F83A

对应的十六进制:

10 72 00 04 4D 51 54 54 04 C2 00 3C 00 28 31 32 33 34 35 36 7C 73 65 63 75 72 65 6D 6F 64 65 3D 33 2C 73 69 67 6E 6D 65 74 68 6F 64 3D 68 6D 61 63 73 68 61 31 7C 00 12 74 65 73 74 5F 31 26 61 31 6F 65 47 64 4D 47 6D 48 66 00 28 46 39 44 32 41 37 46 39 45 45 38 34 35 41 39 35 31 42 37 30 37 38 34 37 32 32 41 33 42 32 34 41 46 41 45 31 46 38 33 41

标红的都是表示长度。

网络调试助手:

注意:

  1. 远程主机地址格式:ProductKey.iot-as-mqtt.cn-shanghai.aliyuncs.com ProductKey要替换
  2. 端口号固定值:1883
  3. 接收和发送都是HEX,也就是十六进制
  4. 将数据发送过去后,会有回复最后的00表示已经连接上
  5. 数据在发送的时候,不要有多于的空格,比如在开头或者结尾都不能后空格出现
  6. 剩余字节这个是变化的,具体看手册。
  7. 用网络调试助手连接,在连接的时候设置心跳包,在这个时间段内,需要发ping包,否则,就会掉线。

2.2 发布报文

格式:
固定头+可变头+有效负载
注意:
关于相关标志位可查mqtt中文手册了解。下面实验将报文标志位为0
下面的Q oS等级为0时,没有报文标识符。下面例子就是这种情况,其他情况查询手册。

固定头:0x30+剩余字节(变化)
可变头:长度+Topic主题+报文标识符
有效负载:发布的应用消息

0x30+剩余字节+/sys/a1oeGdMGmHf/test_1/thing/event/property/post+{"method":"thing.event.property.post","id":"0000000001","params":{"CurrentTemperature":25,"CurrentHumidity":56,"Baromete":2000,"LightLux":1234,"Proximity":10,"Magnetometer":{"x_gs":1,"y_gs":1,"z_gs":1},"Gyroscope":{"x_dps":10,"y_dps":10,"z_dps":10},"Accelerometer":{"x":1,"y":2,"z":3}},"version":"1.0.0"}

十六进制:
30 E2 02 00 31 2F 73 79 73 2F 61 31 6F 65 47 64 4D 47 6D 48 66 2F 74 65 73 74 5F 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74 7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 43 75 72 72 65 6E 74 54 65 6D 70 65 72 61 74 75 72 65 22 3A 33 30 2C 22 43 75 72 72 65 6E 74 48 75 6D 69 64 69 74 79 22 3A 36 30 2C 22 42 61 72 6F 6D 65 74 65 22 3A 31 30 30 2C 22 4C 69 67 68 74 4C 75 78 22 3A 31 30 30 30 2C 22 50 72 6F 78 69 6D 69 74 79 22 3A 31 30 2C 22 4D 61 67 6E 65 74 6F 6D 65 74 65 72 22 3A 7B 22 78 5F 67 73 22 3A 31 2C 22 79 5F 67 73 22 3A 31 2C 22 7A 5F 67 73 22 3A 31 7D 2C 22 47 79 72 6F 73 63 6F 70 65 22 3A 7B 22 78 5F 64 70 73 22 3A 31 30 2C 22 79 5F 64 70 73 22 3A 31 30 2C 22 7A 5F 64 70 73 22 3A 31 30 7D 2C 22 41 63 63 65 6C 65 72 6F 6D 65 74 65 72 22 3A 7B 22 78 22 3A 31 2C 22 79 22 3A 32 2C 22 7A 22 3A 33 7D 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D

效果展示:

阿里云平台展示:

2.3 订阅报文

格式:
固定头+可变头+有效负载

固定头:0x82(固定)+剩余字节(变化)
可变头:报文标识符(查手册可知)
有效负载:长度+主题+QoS等级

0x82(固定)+剩余字节(变化)+ 报文标识符(查手册可知)+ 长度+主题+QoS等级

十六进制:
82 37 00 0A 00 32 2F 73 79 73 2F 61 31 6F 65 47 64 4D 47 6D 48 66 2F 74 65 73 74 5F 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 00

这里最后的00表示QoS等级。
实验展示:

先用网络调试助手,连接上阿里云,然后订阅主题。

成功订阅后,助手有返回值,根据最后回复的值,可判断订阅是否成功。比如这里标识符是00 0A,在返回值中前面90 03是固定值,不管是QoS等级0还是1,回复的都是01,所以这里整合一下就是90 03 00 0A 01。

找到在线调试,按照下面设置。

设置好后,点击发送指令,之后,助手就会收到信息(订阅成功后)。


有兴趣的可以将上面的十六进制的数解析一下。

注意

    mqtt协议一共有14个报文协议。上面只是常用的三个的简单介绍,还有很多的细节,都需要查看手册。从上面也可以看出用网络调试助手是有点麻烦的,如果用mqtt.fx就不会怎么麻烦。
    

使用网络调试助手连接阿里云平台相关推荐

  1. MQTT学习笔记(1)--网络调试助手连接阿里云物联网

    初探 MQTT的网络调试助手通信测试 上手之前觉得很有难度,但是当你慢慢上手,你回过头来,你会发现哦,原来是这样的啊! 这里用的平台是阿里云的物理网平台所以有必要要介绍一下如何使用平台,如何申请,和白 ...

  2. 通过网络调试助手连接阿里云

    从笔记中复制过来的,笔记中颜色分明,复制过来全是黑色的了,所以还真是直接看我笔记吧 https://gitee.com/feiyou/stm32--w5500-aliyun.git

  3. 通过网络调试助手连接上阿里云物联网平台

    文章目录 引言 MQTT报文 连接报文 订阅报文 推送消息报文 连接阿里云 引言 前一段时间做了一个物联网的项目,主要是通过各种模块(ESP8266.AIR202.CH9121)连接上阿里云的物联网平 ...

  4. 跟我做,让Android封装MQTT连接阿里云平台!【开源】

    在<每谈及物联网都难以离开的MQTT协议!>中,我们使用了模拟的方式让MQTT接入阿里云云服务器.但是我们实际中使用时却不能模拟,每一步都得自己调,毫无疑问会非常的麻烦.那么我们必须把这些 ...

  5. AT指令连接阿里云平台

    1.复位 AT+RST 2.设置为sta模式 AT+CWMODE=1 3. 开启SNTP服务器,8时域,SNTP服务器为阿里云域名 AT+CIPSNTPCFG=1,8,"ntp1.aliyu ...

  6. STM32+ESP8266+MQTT连接阿里云服务器(四、STM32连接阿里云平台)

    材料: STM32F103.ESP8266.串口 第三章介绍了利用串口调试助手+AT指令连接阿里云平台的,现在用代码去实现其功能,利用STM32的串口2跟WIFI模块进行数据通信即可.这里我实现的功能 ...

  7. 关于使用python实现AIR724ug连接阿里云平台

    文章目录 前言 一.python实现AIR724连入阿里云平台 1.windows端实现 (1)使用串口进行调试 (2)python开发准备 1.linux端实现 (1).串口准备 (2).检测相关依 ...

  8. M5310-A通过MQTT连接阿里云平台教程

    1.串口调试 首先我们要准备一个usb转串口,这个在淘宝就可以购买,很便宜. 接线: usb转ttl M5310-A RX TX TX RX 5V VIN GND GND 接下来我们打开串口调试助手并 ...

  9. MQTT网关连接阿里云平台案例教程

    MQTT协议网关网口连接西门子SMART200PLC 前言:MQTT是一个基于客户端-服务器的消息发布/订阅传输协议.MQTT协议的特点是轻量.简单.开放和易于实现的,同时,西门子PLC广泛应于工业控 ...

最新文章

  1. Linux下三个密码生成工具
  2. 简单粗暴tensorflow2.0
  3. window7环境下安装neo4j server版本踩坑记录
  4. Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
  5. Okhttp使用简析——Android网络请求框架(一)
  6. 今天要查一下,如果没有密保手机的号码在使用,怎么更换qq的密保手机
  7. ASPNET MVC Error 403.14
  8. 最强面试题整理第二弹:Python 进阶面试题(附答案)
  9. 通过后台事务来使单据提交工作流
  10. 理]疏通中国历史脉络——“魏(三国)、晋(五胡十六国)、南北朝”篇
  11. Max Script|物体选择和拷贝
  12. 【女装2018新款潮碎花半身裙韩版气质两件套裙子】http://m.tb.cn/h.3aHr1L7
  13. java游戏丛林奇兵_丛林奇兵游戏下载
  14. leaflet地图资源整理
  15. 网络攻防原理与技术 第一章 课后题
  16. [旭日X3派] 初识篇 - 01
  17. rod 基于CDP协议的web自动化工具(爬虫)
  18. RNAseq基础(项目设计,方法原理)
  19. Windows设置Alt+Tab不切换Edge浏览器网页选项卡
  20. 云计算 码率适配限速_H3C CAS云计算管理平台-GPU直通操作指导书-5W101

热门文章

  1. 如何生成Doc说明文档及包机制
  2. 智能AR场景模拟书法临摹系统
  3. 这些行业注意了:“谨防互联网门户钓鱼,知名行业已经中招”。
  4. “好学若饥、谦卑若愚”
  5. STM32F407学习笔记——MG90S舵机模块(基本控制)
  6. 将word文档中所有文本框中的内容转换成普通段落
  7. Android webView 实现阻尼回弹效果
  8. 植入式营销--网络广告新玩法
  9. 传统企业上云的三个正确姿势是什么?
  10. Linux ubuntu 安装字体