作者:mobiledu2402851377 | 来源:互联网 | 2023-07-17 17:26
文章目录1腾讯云操作1.1新建项目1.2新建产品1.3创建设备2MQTT.fx测试3ESP8266模块上传温度1腾讯云操作1.1新建项目创建完后进入项目。1.2新建产品点击新建产品
文章目录
- 1 腾讯云操作
- 1.1 新建项目
- 1.2 新建产品
- 1.3 创建设备
- 2 MQTT.fx测试
- 3 ESP8266模块上传温度
- 3.1 测试并连接路由器
- 3.2 设置平台信息
- 3.3 重头戏,关键,连接服务器
- 3.4 订阅 MQTT 某个 Topic)
- 3.5 向某个 Topic 发布消息
1 腾讯云操作
1.1 新建项目
1.2 新建产品
- 点击新建产品
- 创建产品完毕后,点击进入,下面就是给产品自定义功能
- 然后下一步
1.3 创建设备
- 点击调试,可以查看三元组,然后可以用官方生成工具生成MQTT.fx需要的东西
- 下面是生成小工具的地址
https://cloud.tencent.com/document/product/1081/46507
2 MQTT.fx测试
这里有个问题,你必须先订阅
上行响应 Topic: $thing/down/property/{ProductID}/{DeviceName}
然后上报属性,平台才会刷新
上行请求 Topic: $thing/up/property/{ProductID}/{DeviceName}
{ "method": "report", "clientToken": "123", "timestamp": 1212121221, "params": { "Temperature": 51, "light": 1 } }
3 ESP8266模块上传温度
- 下面是腾讯云官方固件ESP8266的AT指令集
https://imgcache.qq.com/qcloud/marketiot/main/static/pdfjs/web/viewer.html?file=https%3A%2F%2Fqzonestyle.gtimg.cn%2Fqzone%2Fqzact%2Fact%2Fexternal%2Fiot-explorer-console%2FIoT-AT-command-V3.1.0.pdf
3.1 测试并连接路由器
- 接下来桦桦主要给出最最常用的。
- 下面的命令主要用于测试模块的可用性。并且将模块连上家里的路由器,达到可以联网的作用。
可以参考下面的博客。
https://blog.csdn.net/weixin_46027505/article/details/107900860
AT AT+RST AT+TCMODULE AT+GMR AT+CIFSR AT+CWMODE? AT+CWMODE=1 AT+CWJAP="xxs","123456789" AT+PING="baidu.com"
3.2 设置平台信息
AT+TCMQTTSTATE? ------------------- <state>: MQTT 连接状态 0:MQTT 已断开 1:MQTT 已连接
AT+TCDEVINFOSET=1,"产品ID","设备名称","设备密钥" ------------------------------------------------------------------- AT+TCDEVINFOSET后面的分别是<tlsmode>,<productId>,<devicename>,<devicesecr et_checksum> < tlsmode >: 接入方式,必填项,0:直连模式,1:TLS 密钥方式 2:TLS 证书方式,数值类型。 ESP8266 模组仅支持模式 1 < productId >: 产品 id,必填项,字符串类型,最大长度 10 字节 < devicename >: 设备名称,必填项,字符串类型,最大长度 48 字节 <deviceSecret>: 设备密钥,必填项,字符串类型,最大长度 44 字节
AT+TCDEVINFOSET?
- 使用下面的命令,可以抹除上面的信息,但是如果已经连接上了腾讯云,那么首先需要断开在执行。
AT+TCRESTORE
3.3 重头戏,关键,连接服务器
AT+TCMQTTDISCONN
AT+TCMQTTCONN=1,5000,240,1,1 ------------------------------------ =后面的分别是<tlsmode>,<cmdtimeout>,<keepalive>,<clean_sessi on>,<reconnect> <tlsmode>:接入方式,必填项,0:直连模式,1:TLS 密钥方式 2:TLS 证书方式,整型。 ESP8266 模组仅支持<tlsmode>=1 模式 <cmdtimeout>:命令超时时间,必填项,整型,MQTT 连接、发布、订阅 的超时时间,单位 ms,建议设置为 5000,可以根据网络环 境调整该值。范围 1000-10000(毫秒) <keepalive > 心跳间隔,必填项,整型,范围 60-690(秒) <clean_session > 是否清除会话,必填项,整型,0:不清除, 1:清除 <reconnect>:MQTT 断连后是否重连,必填项,整型,0:不自动重连 1: 自动重连 注意:该命令前置依赖 AT+TCDEVINFOSET 命令
3.4 订阅 MQTT 某个 Topic)
AT+TCMQTTSUB=<topic>,<qos>
AT+TCMQTTUNSUB=<topic>
- 我们先使用上面的命令订阅,然后用在线调试,就可以看到收到了下发的消息。
3.5 向某个 Topic 发布消息
这里一定要注意,如果 AT 命令的参数内容包含了特殊字符如双引号(”)逗号(,)等,需要加()进行转义,比如PUB消息的payload采用的JSON数据格式为"{"action": "publish_test", "count": "0"}", 则应该转义为"{"action":"publish_test","count":"0"}"再传入,否则会报错。
AT+TCMQTTPUB=<topic>,<qos>,<message>
c/c++开发分享通过ESP8266上传温度到腾讯云地址:https://blog.csdn.net/weixin_46027505/article/details/107915703