0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2021-05-24 09:18 次阅读

概述

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

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

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

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

MQTT.fx客户端 + 腾讯云

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

腾讯云配置

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

创建一个新产品,:

选择创建产品

e0fa723a-bc28-11eb-bf61-12bb97331649.png

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

e109688a-bc28-11eb-bf61-12bb97331649.png

添加新设备:

进入刚刚创建的产品中:

e15743ac-bc28-11eb-bf61-12bb97331649.png

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

e16b2246-bc28-11eb-bf61-12bb97331649.png

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

e17561fc-bc28-11eb-bf61-12bb97331649.png

点击开始管理设备:

e1a52e6e-bc28-11eb-bf61-12bb97331649.png

设备创建成功:

e1d43966-bc28-11eb-bf61-12bb97331649.png

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

e202bf02-bc28-11eb-bf61-12bb97331649.png

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

e235fe76-bc28-11eb-bf61-12bb97331649.png

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

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

e2411e28-bc28-11eb-bf61-12bb97331649.png

创建一个profile:

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

e24ea5e8-bc28-11eb-bf61-12bb97331649.png

参数说明:

参数 说明
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信息:

e27e19b8-bc28-11eb-bf61-12bb97331649.png

参数说明

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获取:

e28b1c1c-bc28-11eb-bf61-12bb97331649.png

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

e2a82d8e-bc28-11eb-bf61-12bb97331649.png

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

e2b53132-bc28-11eb-bf61-12bb97331649.png

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

e2c664e8-bc28-11eb-bf61-12bb97331649.png

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

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

e2d16168-bc28-11eb-bf61-12bb97331649.png

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

e327ff96-bc28-11eb-bf61-12bb97331649.png

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

e337117a-bc28-11eb-bf61-12bb97331649.png

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

e343e12a-bc28-11eb-bf61-12bb97331649.png

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

编辑:jq

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

    关注

    3

    文章

    962

    浏览量

    44622
  • 腾讯云
    +关注

    关注

    0

    文章

    189

    浏览量

    16610
  • MQTT
    +关注

    关注

    5

    文章

    535

    浏览量

    21935

原文标题:基于RT-Thread和ESP8266,实战实现MQTT应用

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 03-27 11:36 405次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 03-27 08:34 133次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    如何使用ESP8266搭建MQTT客户端?

    手头有一块ESP8266的板子,想搭建一个MQTT客户端,该如何实现呢?
    发表于 11-07 06:36

    nodemcu和esp8266是什么关系?

    nodemcu和esp8266是什么关系 nodemcu和esp8266是什么关系?通俗理解就是nodemcu是一个开发板,基于esp8266的开发板。 目前市面上搭载有ESP8266
    的头像 发表于 10-20 14:53 2134次阅读
    nodemcu和<b class='flag-5'>esp8266</b>是什么关系?

    基于rt-thread的socket通信设计

    最近再研究 rt-thread 的通信 ,想设计出 eps8266(多个) rt-thread(作为中控) 服务器的通信框架,使用的开发板是 潘多拉
    的头像 发表于 10-13 15:02 649次阅读
    基于<b class='flag-5'>rt-thread</b>的socket通信设计

    RT-Thread中mymqtt软件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip协议栈的使用的工程基础上添加mymqtt软件包。 使能mqtt example和mqtt test,保存,等待下载更新软件包。
    的头像 发表于 10-13 10:44 476次阅读
    <b class='flag-5'>RT-Thread</b>中mymqtt软件包的使用方法

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 534次阅读
    试用<b class='flag-5'>RT-Thread</b> Studio(VSCode)

    RT-Thread v5.0.2 发布

    RT-Thread 代码仓库地址: ●  https://github.com/RT-Thread/rt-thread RT-Thread 5.0.2 版本发布日志详情: ●  htt
    的头像 发表于 10-10 18:45 739次阅读
    <b class='flag-5'>RT-Thread</b> v5.0.2 发布

    STM32驱动ESP8266连接阿里云(1)----使用AT指令连接阿里云

    购买的ESP8266一般没带MQTT固件,所以无法通过MQTT指令与云平台通信,需要烧录固件。 MQTT固件可以在安信可科技进行下载。
    的头像 发表于 07-27 11:47 1878次阅读
    STM32驱动<b class='flag-5'>ESP8266</b>连接阿里云(1)----使用AT指令连接阿里云

    基于RT-Thread的家庭智能家居系统的控制平台设计

    这个系统是在英飞凌Psoc6-evaluationkit-062S2开发板的基础上,充分利用了RT-Thread实时操作系统强大的功能及丰富的软件生态,驱动ESP8266、OLED屏幕和DHT11模块等,实现温湿度的采集、中英文
    发表于 07-18 16:23 649次阅读
    基于<b class='flag-5'>RT-Thread</b>的家庭智能家居系统的控制平台设计

    使用ESP8266和MicroPython支持MQTT的滚动文本

    电子发烧友网站提供《使用ESP8266和MicroPython支持MQTT的滚动文本.zip》资料免费下载
    发表于 06-13 15:49 0次下载
    使用<b class='flag-5'>ESP8266</b>和MicroPython支持<b class='flag-5'>MQTT</b>的滚动文本

    ESP8266初次如何实现无线通信(基于电脑与ESP8266)

    一.需要的软件及硬件 1.软件 2.硬件 二.ESP8266的使用 .ESP8266的介绍 2.ESP8266进行初始AT指令的配置步骤 三.所用软件安装分享 ESP8266
    发表于 05-30 09:53 14次下载
    <b class='flag-5'>ESP8266</b>初次如何<b class='flag-5'>实现</b>无线通信(基于电脑与<b class='flag-5'>ESP8266</b>)

    如何使用MQTTESP8266的家庭自动化系统 ?

    本视频中,我们将看到 ESP8266 上使用 MQTT 的家庭自动化系统。对于这个项目,我们将使用 Adafruit.io mqtt
    发表于 05-22 07:19

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 2530次阅读
    基于<b class='flag-5'>RT-Thread</b> Studio学习

    ESP8266本身是否支持MQTT

    ESP8266 自定义硬件上,是否可以支持从 PC 端的远程服务器配置 WiFi 和 MQTT - 是否可以从 PC 端运行的外部配置工具进行配置? 如果我们想配置一些 RF 参数(如 RSSI
    发表于 05-10 08:51