基于RT-Thread和ESP8266在实战实现MQTT应用

描述

概述

本来MQTT的协议解析系列,只写两篇-实践+解析。

不过,有个网友(Terry Hao)看了我的文章之后打电话给我,说最近刚好要使用MQTT到项目中,但是刚接触不是很熟悉,期望提供一个实际应用出来。

在上述的诉求,所以我决定写MQTT的第三篇文章--MQTT的实战。

本次实战,我分别进行两种实战:

MQTT.fx客户端 + 腾讯云

利用小熊派 + RT-Thread + ESP8266 + 腾讯云

腾讯云配置

登录腾讯云:https://console.cloud.tencent.com/iothub/product,如果你没有注册,先注册。

创建一个新产品,:

选择创建产品:

腾讯云

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

腾讯云

添加新设备:

进入刚刚创建的产品中:

腾讯云

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

腾讯云

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

腾讯云

点击开始管理设备:

腾讯云

设备创建成功:

腾讯云

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

腾讯云

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

腾讯云

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

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

腾讯云

创建一个profile:

填写Connection Profile相关信息和General信息:

腾讯云

参数说明:

 

参数 说明
Profile Name 配置文件保存为的名称。
Broker Address MQTT 服务器连接地址,广州域设备填入:PRODUCT_ID.iotcloud.tencentdevices.com,这里 PRODUCT_ID 为变量参数,用户需填入创建产品时自动生成的产品 ID,例如 9****ZW2EZ.iotcloud.tencentdevices.com
Broker Port MQTT 服务器连接端口,证书认证型端口:8883;密钥认证型:1883
Client ID MQTT 协议字段,按照物联网通信约束填入:产品 ID + 设备名,例如:"9「「ZW2EZgate_dev01 ",9」」ZW2EZ 是产品 ID,gate_dev01 是设备名。
Connection Timeout 连接超时时间秒。
Keep Alive Interval 心跳间隔时间秒。
Auto Reconnect 断网自动重连。

 

填写User Credentials信息:

腾讯云

参数说明

User Name :MQTT 协议字段,按照物联网通信约束填入:产品 ID + 设备名 + SDKAppID + connid。(创建完产品即可在产品列表页和产品详情页查看 ProductID)如:"9****ZW2EZgate_dev01;12010126;12345",仅替换示例中的产品 ID + 设备名即可,后面的两个参数本身由物联网通信接入 SDK 自动生成,所以这里填写固定测试值。

Password :Password 必须填写。用户可进入 Hub 相应设备列表查看获取。

关于这部分的填写,可以参考腾讯云的文档:https://cloud.tencent.com/document/product/634/14630?from=information.detail.腾讯云可以用mqtt

而上面的信息全部都可以从云端获取:

PRODUCT_ID获取:

腾讯云

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

腾讯云

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

腾讯云

MQTT.fx客户端订阅主题:PRODUCT_ID/mqtt_rice/control,然后服务器往主题:PRODUCT_ID/mqtt_rice/control,发布消息。可以在客户端看到服务器发布的消息:

腾讯云

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

通过RT-Thread连接腾讯云,其实还是很方便的,有现成的软件包。本次实验主要用到两个软件包:at_device 和 tencent_iot_sdk:

腾讯云

配置at_device组件,配置AP的ssid和password,已经对应的串口:

腾讯云

配置tencent_iot_sdk组件,主要配置三元组:产品ID,设备名字,设备密钥:

腾讯云

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

腾讯云

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

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分