stm32+esp8266+机智云手机app

现在很多大学嵌入式毕设都要求云端控制,本文章就教一下大家如何使用esp8266去连接机智云的app去进行显示stm32的外设传感器数据啊,控制一些外设啊等。

因为本文章主要教大家如何移植机智云的代码到自己的工程 ,所以前面的一些准备工作(烧录esp8266的固件,机智云app的使用等)大家可以去其他博主那里参考一下(如果大家有需要可以评论区提出,需求多的话也可以给大家写出来),但是esp8266的烧录工具和固件我会放到文章最后的网盘链接中,大家自行点赞获取

此次演示的机智云app如下:

这里给大家准备了机智云app的下载链接

机智云APP(下载链接:https://devdocs.gizwits.com/download.html#166419072635445)

大家可以在虚拟设备中用机智云手机app扫码查看自己创建的设备:

app准备好以后就可以到mcu开发里面去自动生成代码了,如下图所示:

接下来就到了最重要的环节:代码移植环节

1.将下载下来的代码里面的Gizwits和Utils两个文件复制粘贴到自己的工程文件中

同时别忘记在自己的keil工程代码里把这两个文件的.c和.h文件添加到工程中

2.接下来首先我们打开工程代码中的gizwits_product.c,因为我们用的是标准库函数,所以要把hal库的内容注释掉(如果最后按照我的步骤编译报错,检查一下是否有其它的hal库函数没注释干净

3.接下来依然在这个代码里往下滑,替换一行代码并注释两个函数如下图所示:

cs 复制代码
NVIC_SystemReset();

4.继续往下滑,继续注释代码,如下图所示:

5.接下来继续往下滑,将hal库的串口代码注释掉换成自己的使用标准库串口代码(并不一定要和我一样用串口3):

cs 复制代码
			USART_SendData(USART3,buf[i]);
			while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);
			
			if(i>=2&&buf[i] == 0xFF)
			{
				USART_SendData(USART3,0x55);
				while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);
			}

6.接下来gizwits_product.h要进行相应的修改,如下图所示

cs 复制代码
#include <stm32f10x.h>

7.接下来去你刚刚修改的串口中断函数里面添加相应的头文件和一段代码,如下所示

cs 复制代码
#include "gizwits_product.h"
gizPutData(&res, 1);

8.接下来开启一个1ms的定时器,在定时器中断函数里运行如下代码:

cs 复制代码
gizTimerMs();

9.接下来可以对gizwits_product.c内的userHandle( ) 函数进行赋值你想要上传到app的相应的传感器数据(下面会解释这个数据的来源):

10.接下来找到gizwits_product.c内的gizwitsEventProcess函数 ,下图圈出的地方可替换自己想控制的开关变量(这里我演示的是控制PA11口的高低电平,也就是控制一个led的亮灭)。

11.最后是主函数和while循环:初始化的代码中与esp8266通讯的串口是必须的,另一个串口是测试用的,会打印一些信息到上位机上(方便调试),1ms的定时器是必须的,此外下面的三个函数像我一样放着就行了。(图中圈出来的函数是必须的,其他的函数根据你自己的项目添加

cs 复制代码
	userInit();
	gizwitsInit();
	gizwitsSetMode(2);

12.然后是while循环:圈出来的函数是必须有的,此外xinlv和xunyang其实是获取超声波的距离,我懒得改变量名就直接用了。

cs 复制代码
		userHandle();
		gizwitsHandle((dataPoint_t *)&currentDataPoint);

13.至此,代码就移植完了,接下来就可以烧录程序到单片机了,然后用手机机智云app去连接esp8266,最重要的是手机和esp8266最好用同一个wifi且必须是2.4G的 ,没有的话可以用手机热点,手机热点一般是2.4G的,机智云连接流程如下:

14.一键配置后就是输入wifi账号和密码(再提示一下要用2.4G的!!!)

然后按下图所示点击即可,

15.点击完后根据页面提示点击我已完成上述操作即可,当进入配对页面后,我们可以盯着开热点的手机,如果他的热点多了一个用户,大概率就是esp8266连接上了,这时候如果配对还没结束你也可以不用等了,直接退出就可以看到一个局域网在线的设备 ,就是你的设备,点击进去即可。

16.最终显示的效果如图所示 ,高度1和高度2是两个超声波测的值,不过由于while循环的速度很快,手机app数据更新的速度很慢 ,经常会出现oled上面信息更新了,手机上的数据要过一会才会更新,此外,我也测试了蜂鸣器的开关也是正常的在这里就不给大家演示了 。

通过网盘分享的文件:esp8266烧录固件.zip

链接: https://pan.baidu.com/s/1ZWBkJq87xvhORIBU87RNBQ?pwd=0531 提取码: 0531

如果大家需要我的工程源码可以一件三连后私聊获取!

相关推荐
XINVRY-FPGA17 分钟前
XC3S1000-4FGG320I Xilinx AMD Spartan-3 SRAM-based FPGA
嵌入式硬件·机器学习·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
猫猫的小茶馆3 小时前
【ARM】ARM的介绍
c语言·开发语言·arm开发·stm32·单片机·嵌入式硬件·物联网
猫猫的小茶馆3 小时前
【PCB工艺】数模电及射频电路基础
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·pcb工艺
点灯小铭3 小时前
基于单片机的智能药物盒设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
梓德原3 小时前
【基础】详细分析带隙型稳压电路的工作原理
单片机·嵌入式硬件·物联网
国科安芯4 小时前
航天医疗领域AS32S601芯片的性能分析与适配性探讨
大数据·网络·人工智能·单片机·嵌入式硬件·fpga开发·性能优化
小李做物联网5 小时前
【物联网毕业设计】60.1基于单片机物联网嵌入式项目程序开发之图像厨房监测系统
stm32·单片机·嵌入式硬件·物联网
贝塔实验室6 小时前
新手如何使用Altium Designer创建第一张原理图(三)
arm开发·单片机·嵌入式硬件·fpga开发·射频工程·基带工程·嵌入式实时数据库
@good_good_study6 小时前
STM32 ADC多通道采样实验
stm32·单片机·嵌入式硬件
Darken037 小时前
什么是“位带”?;在STM32单片机中有什么作用?
stm32·单片机·嵌入式硬件