【OneNet云平台】 ESP8266数据上传与平台的数据下发纯干货分享!

前言

本文将手把手教学如何构建属于自己的物联网平台。如何通过esp8266实现数据的上传,以及平台对数据的下发

Onenet文档参考来源:https://open.iot.10086.cn/doc/v5/develop/detail/638

Esp8266基于MQTT的AT指令:https://docs.espressif.com/projects/esp-at/en/releasev2.2.0.0_esp8266/AT_Command_Set/MQTT_AT_Commands.html#at-mqttusercfg-set-mqtt-user-configuration

已将相关参考资料上传网盘:
链接:https://pan.baidu.com/s/1Te5nyXVDk1WJ1SK_x2QRLg?pwd=j9x2
提取码:j9x2

1.OneNet云平台创建产品和设备

1.打开官网:https://open.iot.10086.cn/
2.注册
3.点击开发者中心(如图1)->创建产品(如图2)

图1.进入开发者中心
图2.创建产品

4.点击创建产品之后,需要对产品品类、智能化方式和信息进行设置。其中产品品类默认即可,智能化方式选择设备接入,填写信息根据自己设备实际情况填写。图3是我的配置信息,给大家参考。

图3.信息填写

此时我们可以看到产品信息已经填好了

图4.信息确认

5.点击图4的设备管理,添加设备如图5所示,确定即可。

图5.设备信息填写

6.按图6、7方式操作后,点击添加自定义功能点,根据自己的需求来写,由于我上传的是温度和湿度,所以我添加了2个自定义功能点,见图8所示。

图6.产品开发
图7.设置物模型
图8.自定义功能点的配置

2.WiFi模块介绍与硬件环境搭建

我使用的这款ATK-ESP-8266串口转WIFI模块,并非是最新版本的模块 。

图9.ATK-ESP-8266 WiFi模块

需要注意:可能是由于版本的问题,一直连接不上,经过固件烧录,后来就连接上了。

2.1 ATK-ESP-8266固件烧写

图10.烧写文件和工具
图11.固件烧写

2.1 AT指令的配置

1.AT//测试指令
2.AT+RST //复位指令
3.AT+CWMODE=1 //设置为station模式
4. AT+CWDHCP=1,1 //启动DHCP
5. AT+CWJAP=“601”,“82873839”//连接wifi
6.AT+MQTTUSERCFG=0,1,“test1”,“F1AVyfXw7I”,“version=2018-10-31&res=products%2FF1AVyfXw7I%2Fdevices%2Ftest&et=2810313321&method=md5&sign=EfJtPPxHwMX6iWWf3YksbA%3D%3D”,0,0,“”
7.AT+MQTTCONN=0,“mqtts.heclouds.com”,1883,1
8.AT+MQTTSUB=0,“ s y s / F 1 A V y f X w 7 I / t e s t / t h i n g / p r o p e r t y / p o s t / r e p l y " , 19. A T + M Q T T P U B = 0 , " sys/F1AVyfXw7I/test/thing/property/post/reply",1 9.AT+MQTTPUB=0," sys/F1AVyfXw7I/test/thing/property/post/reply",19.AT+MQTTPUB=0,"sys/F1AVyfXw7I/test/thing/property/post”,“{“id”:“123”,“params”:{“temp”:{“value”:23.6}}}”,0,0

下面展示联网AT指令

1.AT//测试指令
2.AT+RST  //复位指令
3.AT+CWMODE=1  //设置为station模式
4. AT+CWDHCP=1,1  //启动DHCP
5. AT+CWJAP="601","82873839"//连接wifi 
6.AT+MQTTUSERCFG=0,1,"test1","OLxQ8zCg6F","version=2018-10-31&res=products%2FOLxQ8zCg6F%2Fdevices%2Ftest1&et=4072627303&method=md5&sign=9ke%2FItl7VPIgyIO6P%2FIdPQ%3D%3D",0,0,""
7.AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1//连接到服务器
8.AT+MQTTSUB=0,"$sys/F1AVyfXw7I/test/thing/property/post/reply",1//订阅主题
9.AT+MQTTPUB=0,"$sys/F1AVyfXw7I/test/thing/property/post","{\"id\":\"123\"\,\"params\":{\"temp\":{\"value\":23.6\}}}",0,0//发布主题

``

3.MQTT设备的接入

需要用到的相关参数:

服务器地址和端口号:mqtt.heclouds.com 1883
设备名称(clientID):test1(图5)
产品ID:OLxQ8zCg6F(图8)
password:使用token工具,操作下文介绍(图10)

3.1 token工具的使用

token工具使用见下图,res需要更改自己的产品ID和设备名称,et需要进入时间戳网站:https://www.beijing-time.org/shijianchuo/转换成时间戳即可。key需要填入设备密钥,最后点击生成即可。

图12.token工具的使用

3.2 数据的上传

图13.数据上传

设置temp=24,hum=6.17后,执行如下AT指令

//AT数据上传指令
AT+MQTTPUB=0,"$sys/OLxQ8zCg6F/test1/thing/property/post","{\"id\":\"123\"\,\"params\":{\"temp\":{\"value\":24\}\,\"hum\":{\"value\":6.17\}}}",0,0

在这里插入图片描述

图14.设备属性上传

由上图可知,我们已将数据成功上传OneNet平台。

3.3 数据的下发

1.数据的下发需要发布话题
$sys/OLxQ8zCg6F/test1/thing/property/set_reply
在这里插入图片描述

图15.数据下发发布话题

2.接着订阅该话题
$sys/OLxQ8zCg6F/test1/thing/property/set
在这里插入图片描述

图15.订阅话题

3.OneNet平台物模型数据的下发,需要进入设备调试页面,如下图所示。

在这里插入图片描述

图16.设备调试页面

我们发现,设置温度值后发送温度和湿度的值,再图15中可以实时收到。
至此,我们完成了数据的上传,以及ONENET平台端的下发。欢迎大家互相参考学习😊😘😎

### 回答1: 可以使用OneNet云平台提供的API接口,通过HTTP请求向Arduino发送命令。具体步骤如下: 1. 在OneNet云平台上创建设备,并获取设备的API Key和设备ID。 2. 在Arduino上编写程序,通过WiFi或以太网连接到OneNet云平台。 3. 在Arduino程序中,使用HTTPClient库向OneNet云平台发送HTTP请求,请求格式为: ``` POST /devices/{device_id}/cmds HTTP/1.1 Host: api.heclouds.com api-key: {api_key} Content-Type: application/json { "cmd_uuid": "1234567890", "qos": 1, "timeout": 60, "content": { "command": "your_command" } } ``` 其中,{device_id}和{api_key}分别为设备ID和API Key,"command"为你要发送的命令内容。 4. 在OneNet云平台上配置数据转发,将设备发送的命令转发到指定的应用程序或设备。 5. 在应用程序或设备上接收命令,并执行相应的操作。 需要注意的是,OneNet云平台的API接口有访问频率限制,需要根据实际情况进行调整。同时,为了保证数据安全,建议在HTTP请求中使用HTTPS协议进行加密传输。 ### 回答2: OneNet云平台是一款物联网云服务平台,可以实现设备云端的相互连接,实时监控和控制设备,以及数据存储和分析等功能。在OneNet平台上,我们可以使用API接口和开放的SDK快速建立自己的物联网应用。 Arduino是一款开源的物联网硬件平台,它结合了一个易于使用的硬件和软件开发环境,可创建交互式的电子设备。在OneNet云平台中,可以通过串口连接Arduino硬件,实现从云端下发命令控制硬件的功能。 Arduino开发板有多种型号,可以根据需要选择不同型号的开发板。在准备工作完成后,需要使用OneNet的API接口,通过http通信方式实现在云平台下发命令控制Arduino硬件。 具体步骤如下: 1、在OneNet云平台上创建设备,获取设备ID和APIKey,在Arduino开发环境上导入OneNet库并填入设备的ID和APIKey。 2、在OneNet云平台上创建数据流或者采集事件,用于接收Arduino硬件上传数据和发送命令控制硬件。可以使用HTTP方式或者MQTT方式实现数据通信。 3、在OneNet云平台上创建触发器,当满足触发条件时,可以激活触发器执行下发命令的操作。 4、在Arduino开发环境中编写控制逻辑程序,通过串口将命令发送给硬件设备。 5、通过调试,验证命令下发和控制功能是否正常工作。 通过以上步骤,就可以实现在OneNet云平台下发命令程序Arduino的功能。在实际应用中,可以根据需要对控制逻辑和命令内容进行修改和扩展,构建自己的物联网应用。 ### 回答3: 随着物联网技术的发展,越来越多的设备和传感器被接入到云平台上进行实时监控和数据传输。onenet云平台是国内较早推出的物联网云平台之一,它提供了多种开发接口以便开发者可以将设备和传感器接入到互联网中。而在其中的一种应用场景中,Arduino可以OneNet云平台进行互动,实现远程下发命令的控制。 在开发过程中,需要先注册OneNet账号,并在控制台上创建设备。然后,将OneNet云平台提供的库和示例代码导入到Arduino中,编写相关的程序,并将设备终端进行连接。在设备连接OneNet平台后,便可以下发命令,实现控制设备的目的。 通过OneNet平台下发控制命令的好处在于,可以在任何时间、任何地点控制设备,而不必局限于在设备附近。通过互联网的连接,可以实现长距离的控制,甚至可以通过手机APP或者Web控制面板进行远程操控。另外,OneNet平台提供了丰富的API和数据获取、存储等功能,可以帮助开发者更好地管理和控制设备。 总体来说,OneNet平台下发命令程序Arduino的开发并不复杂,只需按照OneNet平台的相关文档、接口和示例程序进行开发即可。对于智能家居、智能制造等领域的物联网应用来说,OneNet平台下发命令程序可以大大提高设备的管理效率和控制精度,有着重要的实际应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

差分对儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值