目录

STM32ESP8266DHT11通过MQTT协议连接新版ONENET云平台上传数据

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

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显示屏组成,系统框图如下图所示。

https://i-blog.csdnimg.cn/blog_migrate/b9ac609d28f61755c0ee83a0821ca717.png#pic_center

三、项目原理图

此次原理图是使用国产EDA软件“立创EDA”绘制,导出的有PDF格式和AD格式,。

原理图主要分为电源电路、单片机最小系统电路(包含晶振和复位电路)、WIFI模块电路、温湿度传感器电路和显示电路。

原理图如下图所示

https://i-blog.csdnimg.cn/blog_migrate/3f1da39772a805519d97ab447933260f.png#pic_center

四、云平台产品创建

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

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

连接到新版ONENET云平台一共需要获取到三个参数,分别是产品ID、产品access_key和设备名称,产品ID和assess_key可以在产品详情里边查看,设备名称其实就是刚才创建设备时自定义填写的,可以在设备管理里边查看,好,接下来我来一步一步演示一下。

(1)点击开发者中心进入产品创建界面

https://i-blog.csdnimg.cn/blog_migrate/3ff7addaad42ece508dd6a2d2c413b55.png#pic_center

(2)创建产品

https://i-blog.csdnimg.cn/blog_migrate/15ed422b5dd551b461de448f37c5d8b8.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/9b3d850f8388a212c180c94a1842b2a5.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/e3a4bda365729d951a8d034eb414e057.png#pic_center

(3)创建设备

https://i-blog.csdnimg.cn/blog_migrate/bacb4e5bb729102bdb4de37f88ace79b.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/c2cb5881b38639a1fcbdd7558f042dfc.png#pic_center

(4)获取必须参数

https://i-blog.csdnimg.cn/blog_migrate/7ea1a3b36ee742a943e3677d3ac14e4e.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/be58b1d323629d4826f9d2b7c8f7a400.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/4db7be4901c9e2b17bb54254f1d20d35.png#pic_center

五、修改代码中的参数

在云平台创建完成后获取到了产品ID、产品access_key和设备名称,现在需要在单片机代码中将其替换成自己产品和设备的。

代码修改的位置是onenet.c里的第24行、第26行和第28行。

https://i-blog.csdnimg.cn/blog_migrate/c549986660847ff43e4c95c8f5044da4.png#pic_center

还有一个地方,这个可改可不改,不改最好,就是我们需要连接的WIFI的账号和名称,在esp8266.c的第16行。最保险的方式就是手机开热点,把手机热点的名称改成我代码里的“Honor”,密码改成“www1101121”,要注意的一点是手机热点要开2.4Ghz的,不要开5Ghz的,不然ESP8266不支持会搜索不到,就不会连上网。

https://i-blog.csdnimg.cn/blog_migrate/7a74702209f20ffe9e687f5c3e2c40d6.png#pic_center

修改完这些参数以后就可以编译烧录程序了,烧录方式有多种,我一般使用ST LINK下载器烧录。至此单片机代码修改结束。

六、APP参数修改

本设计还使用app.wxbit.com这款图形化的做APP的软件做了一个APP来显示温湿度的数据,这样方便演示,不用再去云平台上查看,APP的原理就是调用ONENET云平台提供的获取数据流的一条API来实现的,通过将API返回的数据进行解析就可以直观的看到温湿度数据。APP界面如下图。

https://i-blog.csdnimg.cn/blog_migrate/333fb8c0a591c42f6fd88d4d287f22b6.png#pic_center

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生成后可以在电脑上安装模拟器或发送到安卓手机进行安装。

https://i-blog.csdnimg.cn/blog_migrate/336612c34110b2f629fa9f88fd23bdc9.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/bec00e69e8dcd61899ef8840036fd244.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/42efb2eb870989bfb1c83e8b363c097a.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/b9feee0ce2c8605734ea51f4d86e2d6d.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/eb19dda4a19430319e16f1cf085596c8.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/b0c1c223a495e3c14bd0e23f47e64dcd.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/ed4dddbd2f099524d4a4f33b50d0c3e0.png#pic_center

七、成果展示

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

八、资料获取

也可通过联系我来获取,VX:HGbishe

https://i-blog.csdnimg.cn/blog_migrate/d08fd786c82cbe40c348366c3a0737be.png#pic_center