新版Onenet云平台使用ESP8266-AT指令上报数据以及公网MQTT服务器连接测试
#新版Onenet云平台使用(ESP8266 AT指令上报数据以及公网MQTT服务器连接测试)
1.上云方式:MQTT
参考:
[新版ONENET物联网开放平台AT+MQTT指令连接_at指令连接onenet的mqtt-CSDN博客
“新版ONENET物联网开放平台AT+MQTT指令连接_at指令连接onenet的mqtt-CSDN博客”)
[ESP8266-01s入门:AT指令讲解、上云与MQTT通信教程-物联沃-IOTWORD物联网
“ESP8266-01s入门:AT指令讲解、上云与MQTT通信教程-物联沃-IOTWORD物联网”)
2.前提:使用的ESP8266模块已经烧录MQTT固件
3.在onenet平台创建设备并且发布,再在产品下创建设备(初次创建设备没有连接过显示为未激活)
4.token算法详解 (新版ONENET MQTT)
[token算法_开发者文档_OneNET (10086.cn)
“token算法_开发者文档_OneNET (10086.cn)”)
(1)et参数可以用在线时间戳生成
(2)token运算示例(这里有误,注意key这里填入的是 设备密钥 ,不是accesskey)
(3)AT指令联网,并且向设备上传一条数据
关于MQTT固件的指令解读
[MQTT AT 命令集 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com)
“MQTT AT 命令集 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com)”)
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-CSDN博客
“MQTT.fx和MQTTX 链接ONENET物联网开发平台避坑细节干货。_mqttx和mqttfx-CSDN博客”)
(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