#新版Onenet云平台使用(ESP8266 AT指令上报数据以及公网MQTT服务器连接测试)

1.上云方式:MQTT

参考:

新版ONENET物联网开放平台AT+MQTT指令连接_at指令连接onenet的mqtt-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/lilbye/article/details/131770196

ESP8266-01s入门:AT指令讲解、上云与MQTT通信教程-物联沃-IOTWORD物联网icon-default.png?t=N7T8https://www.iotword.com/17607.html#google_vignette

2.前提:使用的ESP8266模块已经烧录MQTT固件

3.在onenet平台创建设备并且发布,再在产品下创建设备(初次创建设备没有连接过显示为未激活)

 

4.token算法详解 (新版ONENET MQTT)

token算法_开发者文档_OneNET (10086.cn)icon-default.png?t=N7T8https://open.iot.10086.cn/doc/mqtt/book/manual/auth/token.html

(1)et参数可以用在线时间戳生成

(2)token运算示例(这里有误,注意key这里填入的是设备密钥,不是accesskey)

(3)AT指令联网,并且向设备上传一条数据

关于MQTT固件的指令解读

MQTT AT 命令集 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com)icon-default.png?t=N7T8https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Command_Set/MQTT_AT_Commands.html#cmd-mqttconn

1、AT    //测试指令
 
2、AT+RST  //复位指令
 
3、AT+CWMODE=1      //=1模式设置为station
 
4、AT+CWDHCP=1,1    //启动DHCP
 
5、AT+CWJAP=“WIFI名”,“密码”
 
6、 AT+MQTTUSERCFG=0,1,"设备ID","产品ID","上面得到的token",0,0,""
 
7、 AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1
 
8、 AT+MQTTSUB=0,"$sys/产品ID/设备ID/thing/property/post/reply",1
 
9、AT+MQTTPUB=0,"$sys/产品ID/设备ID/thing/property/post","{\"id\":\"123\"\,\"params\":{\"属性标识符\":{\"value\":上传的数据}}}",0,0

 标识符为自己定义的,可以在下面处查看

5.MQTTX连接测试 

参考:

MQTT.fx和MQTTX 链接ONENET物联网开发平台避坑细节干货。_mqttx和mqttfx-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/qq_53502688/article/details/131484184

(1)建立连接

 (2)订阅主题的主题为

$sys/产品ID/设备ID/thing/property/post/reply

(3)向主题发布内容,发布的主题为:(如果发布信息就断开连接,说明发送有问题)

$sys/产品ID/设备ID/thing/property/post 

上传的数据符合JSON格式 

 向shuifei数据流上传一个数据24.79,注意上传的数据必须符合创建数据流(属性)时设定的值的范围。

{

  "id": "123",

  "params": {

    "shuifei": {

      "value": 24.79

    }

  }

}

同时给shuifei和dianfei上传数据点(shuifei和dianfei是标识符,属性相当于旧版本的数据流)

{

  "id": "123",

  "params": {

    "shuifei": {

      "value": 24.79

    },

    "dianfei":{

      "value":37.31

    }

  }

}

我们使用这种工具,选择JSON不选择JSON都没有问题,选择JSON只是为了验证JSON正确性,当然网上也有很多JSON格式校验工具,这些工具往往能够帮助整理JSON格式,使结构一目了然。

6.单片机,WIFI模块上云需要注意的

没有集成wifi的单片机往往需要借助WIFI模块才能上云,单片机串口与WIFI模块相连,通过AT指令上云。注意发送数据时需要将引号转义,在此处有体现,这也是c语言基本常识

9、AT+MQTTPUB=0,"$sys/产品ID/设备ID/thing/property/post","{\"id\":\"123\"\,\"params\":{\"属性标识符\":{\"value\":上传的数据}}}",0,0

"{\"id\":\"123\"\,\"params\":{\"属性标识符\":{\"value\":上传的数据}}}"

7.云平台观察上传的数据流 

8.云平台数据可视化 

创建数据源

选择数据源 

 

9.ESP8266通过MQTT公网服务器进行通信

这个公网服务器不需要id,user,password随便填即可

#设置ESP8266工作模式
AT+CWMODE=1
#连接wifi
AT+CWJAP="wifi","password"
#设置本机信息
AT+MQTTUSERCFG=0,1,"id","uesr","password",0,0,""
#连接MQTT服务器
AT+MQTTCONN=0,"broker.mqttdashboard.com",1883,0
#订阅主题
AT+MQTTSUB=0,"test",1
#发送消息(test为发布消息的主题,1为发布的消息)
AT+MQTTPUB=0,"test","1",0,0

<think>好的,我现在需要帮助用户找到ESP8266通过AT指令配置WiFi和MQTT连接的示例。首先,我得回忆一下之前用户提到的参考资料。用户提供了两个引用,一个是关于STM32和ESP8266连接OneNet的,另一个是关于ESP8266-01s的AT指令教程和MQTT固件的。根据这些信息,用户可能需要具体的AT指令步骤和代码示例。 首先,我需要确认ESP8266模块是否已经烧录了支持MQTT的固件,因为这是前提条件。引用[2]提到需要MQTT固件,所以用户可能需要先确认这一点。如果用户没有烧录,可能需要指导他们如何烧录,但用户现在的问题是关于配置的示例,所以可能假设固件已经正确。 接下来,配置WiFi。常见的AT指令AT+CWJAP="SSID","PASSWORD",这里需要替换成用户的网络信息。然后是MQTT配置,包括设置客户端ID、用户名、密码,这些通常需要根据OneNet或其他云平台的要求来填写。例如,OneNet的设备ID、产品ID和API密钥可能需要作为用户名和密码的一部分。 然后,连接MQTT服务器OneNet新版使用不同的域名和端口,引用[2]提到使用公网MQTT服务器,比如183.230.40.96:6002。这里要注意端口号是否支持TCP或SSL,用户可能需要根据情况选择。 发布数据时,AT指令需要指定主题和数据内容。例如,使用$DP主题发布数据点,数据需要按照OneNet的格式进行封装,可能是JSON或简单的类型值对。需要确保数据格式正确,否则云平台可能无法解析。 另外,用户可能需要示例代码,特别是如何在单片机中通过串口发送这些AT指令。比如,使用STM32的串口发送函数,逐条发送指令并等待响应。这里需要注意AT指令的响应时间,可能需要添加延时,并处理可能的错误情况,比如重连机制。 可能的问题点包括:WiFi连接失败,可能是信号问题或密码错误;MQTT连接失败,可能是客户端ID或鉴权信息错误;数据发布失败,可能是主题或数据格式错误。需要指导用户如何通过检查返回信息来调试这些问题。 最后,根据用户的需求,生成相关问题,帮助用户深入了解可能出现的问题和进一步的配置优化,比如OTA升级、多协议支持等。</think>以下为ESP8266通过AT指令配置WiFi及MQTT连接的完整流程说明与代码示例: ### 一、硬件准备 1. ESP8266模块需已烧录支持MQTTAT固件[^2] 2. 串口通信接线:TX/RX与单片机交叉连接,波特率建议115200 ### 二、基础AT指令配置 ```python # WiFi配置(需替换实际参数) AT+CWMODE=1 # 设置STA模式 AT+CWJAP="SSID","密码" # 连接路由器,响应"WIFI CONNECTED"表示成功[^1] # MQTT参数设置(以OneNet为例) AT+MQTTUSERCFG=0,1,"设备ID","产品ID","API密钥",0,0,"" AT+MQTTCONN=0,"183.230.40.96",6002,1 # 新版OneNet公网地址 ``` *注意:最后一个参数1表示启用SSL加密连接* ### 三、数据上报示例 ```python # 设置发布主题(OneNet特定格式) AT+MQTTPUB=0,"$DP",&#39;{"温度":25,"湿度":60}&#39;,1,0 # 响应"+MQTTPUB:1"表示发布成功[^1] # 自定义数据格式示例(十六进制) AT+MQTTPUB=0,"sensor/data",AA0001FC,1,0 ``` ### 四、STM32控制代码框架 ```c void ESP8266_SendCmd(char *cmd) { HAL_UART_Transmit(&huart2, (uint8_t*)cmd, strlen(cmd), 1000); HAL_Delay(500); // 等待模块响应 } // 初始化序列 ESP8266_SendCmd("AT+CIPSNTPCFG=1,8,\"ntp1.aliyun.com\"\r\n"); // 配置NTP ESP8266_SendCmd("AT+MQTTCLEAN=0\r\n"); // 清除旧会话 ``` ### 五、常见问题排查 1. **连接超时**:检查`AT+CPING="183.230.40.96"`测试网络连通性 2. **鉴权失败**:确认设备三元组(产品ID/设备ID/API密钥)与平台一致 3. **数据丢失**:启用MQTT遗嘱消息`AT+MQTTWILLTOPIC=0,"status",1`
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值