STM32+ESP8266+DHT11通过MQTT协议连接新版ONENET云平台上传数据

一、项目介绍

前段时间ONENET云平台进行了升级更新,此前平台的多协议接入(包含旧版MQTT、HTTP、EDP、Modbus、TCP透传等)接口已经隐藏,后续应该会下架,为了能够后续继续使用ONENET云平台,就需要学会使用将数据上传到新版ONENET云平台。

经过一段时间的摸索,现在可以成功将数据上传。此次使用MQTT协议将温湿度通过ESP8266_WIFI模块上传到新版ONENET云平台,并使用app.wxbit.com图形化APP制作工具制作APP调用ONENET云平台提供的API接口实时显示温湿度数据。

二、项目组成

此次项目实现了温湿度的采集、OLED显示屏显示、数据云平台的传输,主要由STM32F103C8T6单片机、ESP-01S_WIFI模块、DHT11温湿度传感器、0.96寸OLED显示屏组成,系统框图如下图所示。
系统框图

三、项目原理图

此次原理图是使用国产EDA软件“立创EDA”绘制,导出的有PDF格式和AD格式,。
原理图主要分为电源电路、单片机最小系统电路(包含晶振和复位电路)、WIFI模块电路、温湿度传感器电路和显示电路。
原理图如下图所示
原理图

四、云平台产品创建

云平台升级后旧版无法再创建,现在使用新版云平台创建产品和设备,然后获取上云需要使用到的参数。

登录云平台以后点击右上角的开发者中心→产品创建→创建产品→选择品类(随便选)→选择智能化方式(设备接入)→选择接入方式填写设备信息等→设备管理→添加设备

连接到新版ONENET云平台一共需要获取到三个参数,分别是产品ID、产品access_key和设备名称,产品ID和assess_key可以在产品详情里边查看,设备名称其实就是刚才创建设备时自定义填写的,可以在设备管理里边查看,好,接下来我来一步一步演示一下。
(1)点击开发者中心进入产品创建界面
在这里插入图片描述
(2)创建产品
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)创建设备
在这里插入图片描述
在这里插入图片描述
(4)获取必须参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获取到产品ID、产品access_key和设备名称后,将其保存下来后续代码里会用到,至此新版ONENET云平台产品和设备创建完成。

五、修改代码中的参数

在云平台创建完成后获取到了产品ID、产品access_key和设备名称,现在需要在单片机代码中将其替换成自己产品和设备的。
代码修改的位置是onenet.c里的第24行、第26行和第28行。
在这里插入图片描述
还有一个地方,这个可改可不改,不改最好,就是我们需要连接的WIFI的账号和名称,在esp8266.c的第16行。最保险的方式就是手机开热点,把手机热点的名称改成我代码里的“Honor”,密码改成“www1101121”,要注意的一点是手机热点要开2.4Ghz的,不要开5Ghz的,不然ESP8266不支持会搜索不到,就不会连上网。
在这里插入图片描述
修改完这些参数以后就可以编译烧录程序了,烧录方式有多种,我一般使用ST LINK下载器烧录。至此单片机代码修改结束。

六、APP参数修改

本设计还使用app.wxbit.com这款图形化的做APP的软件做了一个APP来显示温湿度的数据,这样方便演示,不用再去云平台上查看,APP的原理就是调用ONENET云平台提供的获取数据流的一条API来实现的,通过将API返回的数据进行解析就可以直观的看到温湿度数据。APP界面如下图。
在这里插入图片描述
APP里边的一些参数也需要修改成适配自己云平台的,修改需要使用app.wxbit.com导入.aia后缀的APP源文件,导入后在逻辑设计页面里将变量URL中的产品ID和设备名称修改成自己的。然后还需要修改下authorization的值,获取authorization的值需要使用到用户ID和用户access_key,这个和之前的产品ID和产品access_key不是一个,这个在鼠标放在云平台主界面右上角头像上然后选择访问权限就可以获取到,获取到用户权限后需要使用一个云平台提供的算法来生成authorization。https://open.iot.10086.cn/doc/v5/fuse/detail/1488这是参考的官方文档,有能力的朋友也可以自己去研究,用Android Studio做APP的同学也可以把代码直接采用自动获取authorization,我现在来演示一下我获取authorization的步骤。
我是使用了一个java在线工具,将这段代码复制过去,然后把参数修改成自己的后点击运行就可以生成。然后复制2020-05-29到结束复制到authorization的值的位置,至此APP参数修改完成,现在APP可以导出了。APP生成后可以在电脑上安装模拟器或发送到安卓手机进行安装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、成果展示

项目完成后,现在来秀一下,因为项目比较简单,主要是做一个教程,所以就是用杜邦线简单的连接了下。现在请看我们的演示视频。点我点我点我。。。。。。

八、资料获取

获取链接点我。
也可通过联系我来获取,VX:HGbishe
在这里插入图片描述

引用\[1\]:通过上面两步代码我们就修改完成 下面看看效果 这里我们先通过串口进行数据打印,在后面我们在将数据上传onenet云平台,并且可以通过手机来控制 esp8266对应接线 TX -> PA3 RX -> PA2 使用的是stm32c8t6的串口二 注意:esp8266进行连接时注意杜邦线是否松了, 可能会连接不成功多试几次就好了。\[1\]引用的内容提供了一段关于使用STM32C8T6进行串口通信的例程。在这个例程中,首先通过串口进行数据打印,然后将数据上传onenet云平台,并且可以通过手机来控制esp8266。具体的接线方式是将esp8266的TX连接到PA3,RX连接到PA2。需要注意的是,在连接esp8266时要确保杜邦线没有松动,可能会连接不成功,多试几次就好了。 引用\[3\]:retarget.h提供了一段代码,用于在STM32C8T6中重新定向标准输入输出。这段代码包含了一些函数的声明,如RetargetInit、_isatty、_write等,用于初始化串口、判断文件描述符是否是终端、写入数据等操作。这些函数的具体实现可以根据实际需求进行编写。 #### 引用[.reference_title] - *1* *2* [【stm32c8t6+esp8266上传温湿度到Onenet云平台】](https://blog.youkuaiyun.com/boybs/article/details/124065159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32F103C8T6串口通信](https://blog.youkuaiyun.com/weixin_42854045/article/details/127598910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值