前言
本文将手把手教学如何构建属于自己的物联网平台。如何通过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)


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

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

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

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



2.WiFi模块介绍与硬件环境搭建
我使用的这款ATK-ESP-8266串口转WIFI模块,并非是最新版本的模块 。

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


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需要填入设备密钥,最后点击生成即可。

3.2 数据的上传

设置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
由上图可知,我们已将数据成功上传OneNet平台。
3.3 数据的下发
1.数据的下发需要发布话题
$sys/OLxQ8zCg6F/test1/thing/property/set_reply
2.接着订阅该话题
$sys/OLxQ8zCg6F/test1/thing/property/set
3.OneNet平台物模型数据的下发,需要进入设备调试页面,如下图所示。
我们发现,设置温度值后发送温度和湿度的值,再图15中可以实时收到。
至此,我们完成了数据的上传,以及ONENET平台端的下发。欢迎大家互相参考学习😊😘😎