当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 通过ESP8266上传温度到腾讯云

通过ESP8266上传温度到腾讯云

2020年08月12日  | 移动技术网IT编程  | 我要评论

1 腾讯云操作

1.1 新建项目

在这里插入图片描述

  • 创建完后进入项目。

1.2 新建产品

  • 点击新建产品
    在这里插入图片描述
  • 创建产品完毕后,点击进入,下面就是给产品自定义功能
    在这里插入图片描述
  • 然后下一步

在这里插入图片描述

  • 交互可以跳过

1.3 创建设备

在这里插入图片描述

  • 点击调试,可以查看三元组,然后可以用官方生成工具生成MQTT.fx需要的东西
    在这里插入图片描述

在这里插入图片描述

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模块上传温度

3.1 测试并连接路由器

AT	//测试是否启动
AT+RST	//重启复位
AT+TCMODULE //查看模块的软硬件信息
AT+GMR	//查看版本信息
AT+CIFSR	//查询连接信息
AT+CWMODE?	//查询当前模式
AT+CWMODE=1  //设置为STA模式
AT+CWJAP="xxs","123456789" //输入路由ssid和密码
AT+PING="baidu.com"

3.2 设置平台信息

  • 下面是关于MQTT的AT命令。
AT+TCMQTTSTATE?		//获取MQTT连接状态
-------------------
<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> 

在这里插入图片描述

在这里插入图片描述

本文地址:https://blog.csdn.net/weixin_46027505/article/details/107915703

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网