大家好,超子又和大家见面了,超子我能力有限,技术不高,有什么错误的地方,欢迎板砖。今天我们一起构建MQTT协议中的CONNECT报文连接Tlink物联网平台。在前面的文章《Tlink物联网平台使用心得(1)建立产品和设备》中,超子介绍了Tlink平台如何建立设备组和设备,以及传感器的相关设置,这些内容需要大家提前掌握。然后我们来构建报文。

首先是CONNECT报文的固定报头是,0x10 ??,??表示剩余长度,我们需要确定了可变报头和负载后才能计算出剩余长度,所以暂时待定。

CONNECT报文中的可变报头用来设置信息和各种功能,Tlink物联网平台和阿里云物联网平台的一样,所以直接把阿里云的可变报头拿过来就行,简化的16进制书写,去掉0x,结果如下:

00 04 4D 51 54 54 04 C2 00 64

CONNECT报文中的负载包含客户端ID,用户名和密码3个重要的消息,先总结下各种信息对应的什么内容。

用户名和密码说明

客户端ID:对应设备的序列号

用户名:如上图所示,是固定的MQTT

密码:如上图所示,是固定的MQTTPW

用户名和密码已经确定下来了,我们一起来找一下客户端ID的信息在什么地方。

设备序列号

我们在左侧的导航栏中,进入设备管理界面,可以看到我们上一篇文章中新建的两个设备,红圈所示就是设备的序列号,也就是我们需要的客户端ID。我们先以开关设备为例,设备的序列号长度是16,我们把设备序列号字符串换成16进制,而且前面还得加上两个字节,表示长度16,最终的16进制,简化书写,去掉0x后的结果如下:

00 10 32 33 4C 36 39 38 4F 4A 44 53 30 51 31 4D 47 34

再看负载中的用户名,是固定的MQTT,长度4个字节,那么换成16进制,然后前面再加上两个字节,表示长度4,最终的16进制,简化书写,去掉0x后的结果如下:

00 04 4D 51 54 54

再看负载中的密码,是固定的MQTTPW,长度6个字节,那么换成16进制,然后前面再加上两个字节,表示长度6,最终的16进制,简化书写,去掉0x后的结果如下:

00 06 4D 51 54 54 50 57

到此整个负载就搞定了,接下来我们把客户端ID+用户名+密码连接起来,简化16进制,去掉0x结果如下:

00 10 32 33 4C 36 39 38 4F 4A 44 53 30 51 31 4D 47 34 00 04 4D 51 54 54 00 06 4D 51 54 54 50 57

我们一起数一下,整个负载部分共计32个字节 。剩余长度=可变报头+负载=10+32=42,42/128=0,一个字节就能搞定,换成16进制就是0x2A,最后我们把固定报头、可变报头和负载连接起来,简化16进制,去掉0x的最终结果如下:

10 2A 00 04 4D 51 54 54 04 C2 00 64 00 10 32 33 4C 36 39 38 4F 4A 44 53 30 51 31 4D 47 34 00 04 4D 51 54 54 00 06 4D 51 54 54 50 57

到此CONNECT报文构建完毕,我们用网络助手实测一下,Tlink物联网平台提供的域名和端口号如下所示:

mq.tlink.io:1883

我们实际测试一下CONNECT报文,看看能不能正常的连接上Tlink物联网平台。

网络助手实际测试报文

使用网络调试助手软件发送报文后,Tlink物联网平台回复我们的CONNACK报文中,我们看最后1个字节是0x00,,说明我们的CONNECT报文正确。如此一来我们今天的任务就圆满完成了。

mqtt调试助手_物联网入门,如何使用MQTT协议,连接Tlink物联网平台相关推荐

  1. mqtt调试助手_腾讯物联网开发平台入门操作,如何使用MQTT协议上传温度湿度数据...

    今天我们测试一下腾讯云的物联网开发平台上传数据的功能,也就是构建一下发布数据的PUBLISH报文命令,上传温湿度数据. 我们接着使用前文中的D001设备,但是D001的品类是插座,并没有温度和湿度的功 ...

  2. 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(三)

    [2G模组Air202开发]Lua脚本编程实现MQTT协议连接Tlink平台(三) 整体思路: 在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air2 ...

  3. 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(五)

    [2G模组Air202开发]Lua脚本编程实现MQTT协议连接Tlink平台(五) 整体思路: 在TLINK平台上创建一个MQTT协议的设备 对Air202模组进行lua编程并烧录 使用串口向Air2 ...

  4. 山外多功能调试助手_吃鸡多功能画质助手

    [应用名称]吃鸡多功能画质助手 [应用包名]com.shangh.huazhi [应用版本]2.3.5 [应用大小]13.7Mb [支持平台]安卓(Android) [root权限]无需root [测 ...

  5. python开发的网络调试助手_用python来调试网络程序

    需要联调的程序,沟通联调起来总是各种麻烦,如果自己能写个简单一点的"测试机",事情就很easy了:或者有时候想做"中间人",看看网路上到底传些什么.前面写了串口 ...

  6. Qt - MQTT客户端调试助手

    Qt - MQTT客户端调试助手 Qt5.9.4 MinGW开发,MQTT调试助手,源码和软件下载链接如下: 源码地址:https://gitee.com/jhuangBTT/MQTT-Client ...

  7. 使用MQTT连接onenet云平台(九 两台网络调试助手互相通信)

    一.说明 本次试验实现两个网络调试助手模拟两台设备通过MQTT连接到onenet云平台进行互相通信控制,模拟两台设备信息如下: 二.设备信息 2.1设备1信息 名称:testa 设备ID:925027 ...

  8. 有人物联网485转网口模块网口调试助手1035未知错误

    有人物联网485转网口模块网口调试助手1035未知错误 问题 解决 问题 项目使用有人物联网485转网口模块USR-TCP232-304,将模块接入实验室路由器,IP地址设置为动态IP,路由器上查得I ...

  9. 使用网络调试助手连接阿里云平台

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

最新文章

  1. Optional 中的 map 和 flatMap
  2. 城联数据TSM技术方案起底
  3. 第七周实践项目2.3 顺序环形队列
  4. 用MySQL创建数据库和数据库表
  5. 你的灯亮着吗?阅读笔记之一
  6. 怎么看另一个电脑端口是否通_谁一个人睡觉另一个看看夫妻的睡眠习惯
  7. python uiautomator2 toast_Android自动化测试 - 获取toast提示(Appium+Python+UiAutomator2)
  8. 缓存DNS服务器和主从DNS服务器的快速搭建详解——续
  9. Linux 超级漂亮的 Shell
  10. gh-ost 参数解析,看这一篇就够了!
  11. XFP模块和SFP光模块
  12. 网络、域名、DNS、A记录以及MX记录的基本概念
  13. openjudge7939_膨胀的木棍
  14. 蚂蚁IPO有人欢呼,也有前员工建群,​群名“错失几千万的人”
  15. 胖客户端程序RCP与瘦客户端程序TCP
  16. 在Word2010中给首字设置下沉
  17. storm笔记:Trident应用
  18. stagefright 架构分析(六) 创建一个 Soft Decoder
  19. win10 无法删除 注册表 蓝牙_教你win10蓝牙图标删除不了的解决方法
  20. 【精】LintCode领扣算法问题答案:306. 商品列表

热门文章

  1. Matlab中特征降维主成分分析(PCA)使用方法(整套流程)
  2. 数据结构有哪些?数据结构的特点?算法与数据结构
  3. [云炬创业基础笔记]第十章企业的利润计划测试8
  4. [MATLAB学习笔记]Rng函数
  5. Linux下的编程入门
  6. ffmpeg源码实现抽取音频并保存 --C++实现
  7. 信号传递的时机与顺序
  8. 【CyberSecurityLearning 64】SSRF
  9. SpringBoot: xxxx for method parameter type String is not present]
  10. 为自增(++)自减(--)运算符正名