Rice我叫加饭? · 2021年05月10日

教你动手写网络协议栈-MQTT报文解析6-实战

首发:Rice 嵌入式开发技术分享
作者:RiceDIY

概述

  • 本来MQTT的协议解析系列,只写两篇-实践+解析。
  • 不过,有个网友(Terry Hao)看了我的文章之后打电话给我,说最近刚好要使用MQTT到项目中,但是刚接触不是很熟悉,期望提供一个实际应用出来。
  • 在上述的诉求,所以我决定写MQTT的第三篇文章--MQTT的实战。
  • 本次实战,我分别进行两种实战:
  1. MQTT.fx客户端 + 腾讯云
  2. 利用小熊派 + RT-Thread + ESP8266 + 腾讯云

腾讯云配置

  1. 登录腾讯云:https://console.cloud.tencent...
  2. 创建一个新产品,:
  • 选择创建产品:

image.png

  • 输入产品名称,选择密钥认证:

image.png

  1. 添加新设备:
  • 进入刚刚创建的产品中:

image.png

  • 在设备列表中添加新设备:

image.png

  • 输入对应的设备名称即可:

image.png

  • 点击开始管理设备:

image.png

  • 设备创建成功:

image.png

  • 完成大部分的设置;点击进入刚刚创建的设备:

image.png

  • 我们使用默认的权限列表来进行实验,默认有3个Topic:

image.png

MQTT.fx客户端 + 腾讯云实战

  1. 打开MQTT.fx客户端,进入设置:

image.png

  1. 创建一个profile:
  • 填写Connection Profile相关信息和General信息:

image.png

  • 参数说明:

image.png

  • 填写User Credentials信息:

image.png

  • 参数说明
  • User Name :MQTT 协议字段,按照物联网通信约束填入:产品 ID + 设备名 + SDKAppID + connid。(创建完产品即可在产品列表页和产品详情页查看 ProductID)如:"9****ZW2EZgate\_dev01;12010126;12345",仅替换示例中的产品 ID + 设备名即可,后面的两个参数本身由物联网通信接入 SDK 自动生成,所以这里填写固定测试值。
  • Password :Password 必须填写。用户可进入 Hub 相应设备列表查看获取。
  • 关于这部分的填写,可以参考腾讯云的文档:https://cloud.tencent.com/doc...
  1. 而上面的信息全部都可以从云端获取:
  • PRODUCT\_ID获取:

image.png

  • 设备密钥,Client id,mqtt username,mqtt password的获取:

image.png

  1. 填写完上面的信息,便可以连接上服务器:

image.png

  1. MQTT.fx客户端订阅主题:PRODUCT\_ID/mqtt\_rice/control,然后服务器往主题:PRODUCT\_ID/mqtt\_rice/control,发布消息。可以在客户端看到服务器发布的消息:

image.png

小熊派 + RT-Thread + ESP8266 + 腾讯云实战

  1. 通过RT-Thread连接腾讯云,其实还是很方便的,有现成的软件包。本次实验主要用到两个软件包:at\_device 和 tencent\_iot\_sdk:

image.png

  1. 配置at\_device组件,配置AP的ssid和password,已经对应的串口:

image.png

  1. 配置tencent\_iot\_sdk组件,主要配置三元组:产品ID,设备名字,设备密钥:

image.png

  1. 配置完上述内容,编译烧录就可以。烧录完板子会自动连接网络,然后再串口终端输入:"tc\_data\_template\_example start"。便可以连接上腾讯云:

image.png

  1. 很方便的就可以连上腾讯云:

image.png

教你动手写网络协议栈系列文章

网络协议栈分析及应用

1《教你动手写UDP协议栈-UDP协议栈格式》

2《教你动手写UDP协议栈-DHCP报文解析》

3《教你动手写UDP协议栈-OTA上位机》

4《教你动手写UDP协议栈-DNS报文解析》

5《802.11帧格式、类型及应用》

6《教你动手写UDP协议栈-CoAP报文解析 》

7《教你动手写网络协议栈-MQTT报文解析-实践 》

8《教你动手写网络协议栈-MQTT报文解析-解析 》

网络协议的分析手段

1《嵌入式设备端的网络包在wireshark显示--原理》

2《嵌入式设备端的网络包在wireshark显示--应用》

推荐阅读

更多嵌入式技术干货请关注Rice 嵌入式开发技术分享
推荐阅读
关注数
1754
内容数
51
一个周末很无聊的嵌入式软件工程师,写写经验,写写总结。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息