STM32+ESP8266在新版ONENET上传温湿度信息及APP接收平台数据(物模型)

一、在ONENET创建产品

        首先登陆OENENT云平台,直接在浏览器搜索ONENET即可

        进入网站后是如下界面:

如果没有登录的话,右上角会有登录按钮,如果没有云平台账号的话,要先进行注册。登录后就可以进入上图的界面了。然后点击开发者中心,开始创建产品。

进入开发者中心后,出现如下界面:

点击左侧的产品开发,然后点击右上角处右创建产品

产品创建出现如下界面:产品品类可以随意选择,接入方式选择设备接入,产品名称可以自定义,节点类型选择直连设备,注意,接入协议要选择MQTT,然后数据类型的话,我选择的是物模型来接收的数据,所以用ONEJson,如果是选择数据流的话,数据协议可以更改为数据流。接入方式我用的是热点连接esp8266,所以选择了wifi,如果有用别的方式联网的话,可以按照自己的方式来。填写完以下信息后,我们的产品就算是创建完成了。

二、添加设备

产品创建完成后,要在产品里面添加设备,点击右侧的设备管理

添加设备:所属产品要选择我们刚创建的产品,设备名称可以根据自己喜好来,我们的温湿度数据就是通过这个设备来接收的。

填写完成后,点击确定,就出现了如下的界面了

产品创建完了,设备也可以了,接下来就是最后一步,添加物模型

添加设备成功后,点击左侧的产品开发,

然后在产品右侧,点击右侧蓝色小字:产品开发,进入下图界面

然后点击右侧蓝色方框,设置物模型 -> 添加自定义功能点->添加温度和湿度的物模型->保存

这样,我们云平台的操作就完成了,下面就来到了代码的环节。

三、代码编写

硬件:     STM32F103C8T6最小系统板

                ESP8266开发板

                DHT11温湿度传感器

                OLED屏幕             

要实现STM32数据上传到云平台,首先要esp8266刷入AT固件,固件和代码资料都会在文章后面提供。

ESP8266输入固件的方法:通过flash工具和相对应的固件。下图展示的是flash程序和所需填写的内容,注意,还要选择相应的串口,我这里已经刷好了,就不再演示了。

  输入AT固件后,通过串口助手,发送AT指令测试是否成功,具体如何操作,可以去B站观看UP主邢影不离i的视频,我的代码资料也是参考这位博主的。

【新版OneNet云平台】STM32+ESP8266上传数据,简单易上手!_哔哩哔哩_bilibili

成功刷入固件后,就进入我们stm32代码的编写了,我们的所有操作都是在stm32上的,只需要把ESP8266开发板的串口跟STM32连接好就行了。

接法如下:

STM32                       ESP8266

A9                                       RX

A10                                     TX

G                                        G

3V3                                     3V3

A0                                       RST

这样STM32就可以通过串口,将温湿度数据发送到ESP8266上,8266通过wifi将接收到的数据传送的ONENET平台上

然后说下代码需要修改的部分

esp8266.c文件上,要将WIFI_INFO中的信息改成自己的热点名称和密码,注意不要修改删除AT+CWJAP命令

然后在onenet.c中

将上述三个宏修改成自己的,产品ID和设备名称在云平台上点击设备管理 ->点击详情就可以看到了。然后AUTH_INFO可以通过云平台工具token生成。token的规程参考下图即可,其中et是指时间戳,可以在浏览器搜索时间戳,(时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu)),然后修改下方的时间即可。

说完token之后,继续往下翻,我这里是上传了两个DHT11的数据,所以json和sprintf这里有四个参数,读者可以根据自己的需要进行修改

注意:params后面的“temp”和"humi“这标识符要跟你在云平台创建的物模型的标识符一样,不然会接收不到数据

至此,我们onenet,c的代码也修改完了,最后修改一下MQTTKIT.C的代码即可

代码中的参数不动,将其中的文本修改成”$sys/产品ID/设备名称/thing/property/post格式即可

至此,代码需要修改的部分就完成了,其他后续的操作看各个外设跟STM32的接口进行修改即可。完成后的效果如下图

四、APP编写

如果你的设备可以发送数据到云平台了,那就可以编写一个app来在手机端进行接收数据了。

APP编写我用的是图形化界面的编程,MIT APP INVENTOR。(MIT App Inventor (gzjkw.net)),这个工具可以线上直接使用,无需下载,但是要注册(免费)。

登录完成后就进入如下界面

这是项目其中一部分的代码,要想让APP能连接上云平台,我们需要请求头和设备访问的网址,这部分资料通过运维监控组建下的API调试获取,选择物模型使用,设备属性最新数据查询,然后填入产品ID和设备名称就可以查询了。代码中的Accept和authorization数据要修改成自己查询得到的, 网址点击上方的查看API可以获取,如果你是参照我这个文档来的话,可以将下发的产品ID和设备名称修改成你的就行,至此,你的APP就可以成功连接上ONENET服务器了。

但是这里有一个问题,就是平台给的时间戳是一个小时,也就是说这个APP最大时间只能一个小时有效,我尝试过修改时间戳和修改里面的token值,都连接不上ONENET,只能根据查询到的时间戳才行,如果有哪位大佬能提供解决方法的话,感激不尽。

五、资料下载

这是第一次写文章,写的不好请嘴下留情,谢谢!

通过网盘分享的文件:CSDN资料.zip
链接: https://pan.baidu.com/s/1Ckfx-QGmb6OUO6__uxeyGw 提取码: 1234

### 回答1: STM32ESP8266是目前比较常用的联网设备,可以实现对传感器的数据采集、处理和传输。如果要将其接入到OneNET平台上,需要以下步骤: 1. 准备硬件:需要一块STM32开发板和一块ESP8266模块,以及一个温湿度传感器。 2. 搭建开发环境:使用Keil等集成开发环境进行代码编写和调试。开发环境需要支持STM32的C语言编程。 3. 编写程序:首先要实现STM32温湿度传感器之间的通信,采集数据并监测数据的变化。然后再使用STM32ESP8266之间的串口通信,将数据发送到OneNET平台。 4. 配置OneNET平台:打开OneNET官网,注册帐号并创建设备模板,将上传数据添加到设备模板中。配置好硬件设备所属的产品和数据流,获取设备的Key和Topic。 5. 实现数据上传:使用AT指令控制ESP8266OneNET服务器进行通信,将采集的数据上传到设备模板中。 总之,需要通过串口通信实现stm32esp8266之间的数据传输和控制,然后通过AT指令控制esp8266连接OneNET平台上传数据。需要充分理解OneNET平台的产品和设备模板、数据流等概念,并具备一定的开发经验和编程能力。 ### 回答2: 在将STM32ESP8266联合使用来接入onenet平台中,需要遵循以下步骤。 第一步,选择合适的传感器来测量温湿度。通常可选择DHT11或DHT22等温湿度传感器。 第二步,在STM32上连接传感器,通过ADC模块读取传感器测得的温湿度数据,并将数据存储在内存中。 第三步,通过STM32ESP8266进行串口通信,将读取到的温湿度数据传输给ESP8266。 第四步,通过AT指令将数据通过ESP8266连接到onenet平台。需要注意的是,需要在onenet平台中创建数据流,并获取到数据流ID、设备ID、以及密钥等信息。 第五步,将数据通过HTTP POST方式发送到onenet平台,实现数据上传。 最后,进行数据接入验证。可通过在onenet平台上查看数据流图表来确认数据是否上传成功。 总而言之,将STM32ESP8266联合使用来接入onenet温湿度,需要通过温湿度传感器获取数据,通过STM32ESP8266进行串口通信,并借助AT指令将数据上传onenet平台。务必进行数据接入验证,以确保数据上传成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值