stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭

整体连接图片如下:在这里插入图片描述

这个实验有以下两个功能:
单片机可以上传数据到云平台
云平台可以远程下发命令控制单片机上面的LED灯(当然你也可以控制其他的器件,如:电饭锅、空调、窗帘、插座等)
首先,你要使用onenet云平台就需要先注册一下自己的账号,日后可以登陆用,现在云平台更新了新版本的,你进入云平台时,点击右上角的控制台,然后就进入另一个页面,在另一个页面左上角有一个切换到旧版,这样你就可以进入旧版创建产品,新版的还不太适应,建议用旧版比较好。步骤如下:
1在这里插入图片描述
2在这里插入图片描述
3在这里插入图片描述
在这里插入图片描述
接着就是要添加一个产品
在这里插入图片描述
在这里插入图片描述
上面产品名称、行业、类别应该可以随便填,那个设备接入协议默认EDP,操作系统无,网络运营商:移动
添加完产品后,点击进入你的产品,如下图:
在这里插入图片描述

然后就是添加设备了
在这里插入图片描述

在这里插入图片描述

上面图中设备名称,鉴权信息,数据保密性你都可以随便填,填好点击添加。
然后在下面就会出现一个你刚刚添加的设备,点击详情。
在这里插入图片描述

在这里插入图片描述

点击添加后会出现如下图所示:这里面随便填
在这里插入图片描述
接着点击提交,会在APIKey处生成一串英文,如下所示:
在这里插入图片描述

到这里,我们需要保存的东西有设备的ID以及APIKey(也就是上面我用红色箭头指出的那两个要记住的)
这样,我们的onenet平台的产品算是创建好了,接着我就来说说程序方面的。
程序主要有main.c、onenet.c、esp8266.c、EdpKit.c
在代码中可以看到,我这里主要是控制stm32f103c8t6上面的LED灯的亮灭,所以初始化了PA.1这个引脚,下面给了他低电平,因为PA.1是上拉电阻给了它低电平,在初始化后他就自动亮起。在这里插入图片描述
附上主程序:
在这里插入图片描述

因为EDP协议下发命令需要一个数据流,所以必须提前发一个数据上去出现一个数据流来进行下发命令,通俗的讲就是两个人对话需要借助电话或者其他通讯工具进行通信
主函数前段主要做的工作就是实现系统的初始化和接入云平台,while(1)循环中实现的就是10秒发送一个数据保持EDP连接。
本程序最重要的几个点就是实现改程序的接口,在ESP8266.C中你需要修改无线热点名称和密码如下图。(这里需要注意的是,你要下载程序之前需要提前先开启笔记本电脑上面的热点或者手机上面的热点,让WIFI模块可以连接上你所开的热点)在这里插入图片描述
你需要修改的也就是程序中第16行热点的名称,以及热点的密码;而下面第18行不需要修改。
在这里插入图片描述
你还需要修改的就是onenet.c中的设备ID和秘钥如下图:(程序中的第42行和第44行,也就是上面我要求你们记住保存的那个ID和APIKey)
在这里插入图片描述
你如果想创新,你可以修改onenet中的第256行代码实现你自己想做的东西,我控制的是LED灯,所以我在这行代码中用的是
在这里插入图片描述

当然你也可以改成你自己想要的,这样下端的代码接口就改好了。你现在就可以下载程序到开发板上面(再次提醒一次,要前开热点,否则WIFI模块连接不上热点是无法发送数据给云台的)
在程序中我发送给云台的数据是数字3,如下图所示:
在这里插入图片描述
在云台上面收到的数据如下所示:
在这里插入图片描述
在这里插入图片描述
到这里,单片机上的数据上传到平台已经结束了。下面就说说平台如何下发命令给单片机控制你所需要控制的东西。
现在需要在平台上新建一个应用。点击应用管理,点击添加应用,在弹出的界面中随便填写如下图所示:
在这里插入图片描述
在这里插入图片描述
点击新增,接着操作如下界面:
在这里插入图片描述
在这里插入图片描述
点击编辑应用,进入编辑模式:
在这里插入图片描述
点击左下角控制元素中的开关,接着会在中间空白地方出现一个开关按钮,点击开关按钮,在右边会出现如下图所示:
在这里插入图片描述
这里强调一下,有些人点击右边的设备后,下面的数据流没有可选的,就是因为我前面说的那个需要先上传数据到云台上面后,数据流那里才可以有选择的东西,如果你不先上传数据到云台,数据流那里是没有让你选择的东西的。
添加开关,开关格式必须改成我对应的格式(下图中红色箭头所指地方,图上是显示led:{V}),不然命令下发过后,开发板识别不了也不会进行相应的操作。
在这里插入图片描述
在这里插入图片描述
你如果将代码中的led改了(也就是onenet.c中第256行上的led),上图中的led也得改成对应的代码,至此远程控制LED灯已经成功。
远程操作除了在电脑上面的云台操作外,手机上面onenet也提供了APP,叫设备云(APP也可以在onenet官网上面扫码下载)。
参考的相关资料我也在下面一并发出来(这能进一步让你了解ESP8266):
CSDN上面一位博主的ESP8266使用教程(一)(二)(三)(四)
一位楼主讲述遇到的各种问题
ESP8266指令集(本人看来是最全面的)
最后附上相关程序:
stm32+ESP8266远程控制LED灯相关资料
代码要的下方留言邮箱我会第一时间发给你们的,有什么问题也可以下面评论!

版权声明:本文为CSDN博主「i土豆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44069765/article/details/112134912

生成海报
点赞 0

i土豆

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32串口发送接收数据

1.串口通信 我用的32是stm32f10x最小系统没有UART4和UART5 USART : 通用同步异步收发器 UART : 通用异步收发器 nRTS : 请求发送 nCTS : 请求接收 区别:USART指单片机的一个IO端

STM32的串口硬件流控(RS232/RS485)

流控的概念源于 RS232 这个标准,在 RS232 标准里面包含了串口、流控的定义。RS232 中的“RS”是Recommend Standard 的缩写,即”推荐标准“之意,它并不像 IEEE-12

CH579(M0内核)中断向量表偏移处理

通常情况下,为了产品后续的升级,程序都会分为两部分BootloaderApp,因为有两个程序,所以需要对中断向量表进行处理,否则,当程序已经跳转到app中运行,当中断产生的时候,响应函数仍然是Bootloader的中断函数,而不是app的 在S

基于STM32F103的智能门锁系统

基于STM32F103的智能门锁系统 直接说明实现了什么效果 1 指纹解锁(基于AS608) 2 RFID解锁(基于RC522) 3 密码解锁 (基于LCD电容屏触摸控制) 4 蓝牙解锁