STM32与ESP8266结合使用MQTT协议实现数据发送至oneNET云平台串口通信详解


前言:这是基于STM32和ESP8266 WIFI模块的实战应用,全程干货满满,筑波已经踩玩了全部的坑,可放心食用。接下来我仔细介绍一下我的开发历程,希望对大家的学习有所帮助,也欢迎各位大佬来详细指出错误!!!

前提是自己已经烧录好了固件!!!!!

可以去安信可里寻找适合自己的固件,在乐鑫网站找烧录软件,这里不再解释。

AT固件汇总 | 安信可科技 https://www.espressif.com.cn/en/support/download/other-tools


准备材料:ESP8266模块,STM32开发板,oneNET云平台账号,CH340,ST-Link V2,串口i烧录助手(筑波用的是XCOM)


首先先给大家观看最后成果

1.串口发送

2.云平台显示

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

1.产品开发

2.这是设置你的物联网模型的,我自己设置的是关于光照的,根据自己的需求设计,注意选择数据流和选择MQTT

这里筑波已经添加了,刚创建的基本都是未激活。

二,发送AT指令(筑波用的是XCOM)

MQTT AT 命令集 – ESP32 – — ESP-AT 用户指南 latest 文档https://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
注意:一定要记住自己的设备ID,产品名称,token!!!标识符后面会讲。当发送到7.时你会发现你的设备成功上云。后面两个诗订阅主题的发送步骤,属性标识符就是自己的

token算法_开发者文档_OneNETOneNET开发者文档 时间戳(Unix timestamp)转换工具 – 在线工具

这是计算时间戳的工具最好选择未来时间,比如今天4.13我就选择4.30。填入et


                        

发送AT指令7之后就会显示设备在线不过想让它接收数据就必须要订阅。

8、 AT+MQTTSUB=0,"$sys/产品ID/设备ID/thing/property/post/reply",1

只用把设备ID和产品ID修改即可

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

注意的时必须是自己的属性标识符,筑波的时LUX者可以自己自定义,而且如果你的是int类型就不可以发送小数,必须是整形,不然会接受不到,如果是float类型就可以发送小数如23.6,如果在属性页面显示undefined就说明你的串口发送时标识符错误了。

 

按以上步骤基本就可以实现串口发送数据使云平台接收以及WIFI模块成功上云。 

作者:阿拉斯加无名

物联沃分享整理
物联沃-IOTWORD物联网 » STM32与ESP8266结合使用MQTT协议实现数据发送至oneNET云平台串口通信详解

发表回复