欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

通过ESP8266上传温度到腾讯云

程序员文章站 2022-03-03 20:48:25
文章目录1 腾讯云操作1.1 新建项目1.2 新建产品1.3 创建设备2 MQTT.fx测试3 ESP8266模块上传温度1 腾讯云操作1.1 新建项目创建完后进入项目。1.2 新建产品点击新建产品创建产品完毕后,点击进入,下面就是给产品自定义功能然后下一步交互可以跳过1.3 创建设备点击调试,可以查看三元组,然后可以用官方生成工具生成MQTT.fx需要的东西下面是生成小工具的地址https://cloud.tencent.com/document/p...

1 腾讯云操作

1.1 新建项目

通过ESP8266上传温度到腾讯云

  • 创建完后进入项目。

1.2 新建产品

  • 点击新建产品
    通过ESP8266上传温度到腾讯云
  • 创建产品完毕后,点击进入,下面就是给产品自定义功能
    通过ESP8266上传温度到腾讯云
  • 然后下一步

通过ESP8266上传温度到腾讯云

  • 交互可以跳过

1.3 创建设备

通过ESP8266上传温度到腾讯云

  • 点击调试,可以查看三元组,然后可以用官方生成工具生成MQTT.fx需要的东西
    通过ESP8266上传温度到腾讯云

通过ESP8266上传温度到腾讯云

2 MQTT.fx测试

这里有个问题,你必须先订阅

上行响应 Topic: $thing/down/property/{ProductID}/{DeviceName}

然后上报属性,平台才会刷新

上行请求 Topic: $thing/up/property/{ProductID}/{DeviceName}

通过ESP8266上传温度到腾讯云

通过ESP8266上传温度到腾讯云
通过ESP8266上传温度到腾讯云

{
  "method": "report",
  "clientToken": "123",
  "timestamp": 1212121221,
  "params": {
    "Temperature": 51,
    "light": 1
  }
}

通过ESP8266上传温度到腾讯云

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>
  • 我们先使用上面的命令订阅,然后用在线调试,就可以看到收到了下发的消息。

通过ESP8266上传温度到腾讯云
通过ESP8266上传温度到腾讯云

3.5 向某个 Topic 发布消息

这里一定要注意,如果 AT 命令的参数内容包含了特殊字符如双引号(”)逗号(,)等,需要加(\)进行转义,比如PUB消息的payload采用的JSON数据格式为"{"action": "publish_test", "count": "0"}", 则应该转义为"{\"action\":\"publish_test\"\,\"count\":\"0\"}"再传入,否则会报错。

AT+TCMQTTPUB=<topic>,<qos>,<message> 

通过ESP8266上传温度到腾讯云

通过ESP8266上传温度到腾讯云

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

相关标签: 物联网