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.接下来依然在这个代码里往下滑,替换一行代码并注释两个函数如下图所示:

NVIC_SystemReset();

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

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

			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要进行相应的修改,如下图所示

#include <stm32f10x.h>

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

#include "gizwits_product.h"
gizPutData(&res, 1);

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

gizTimerMs();

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

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

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

	userInit();
	gizwitsInit();
	gizwitsSetMode(2);

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

		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

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

### 回答1: ESP8266 是一种常用的 WiFi 模块,STM32 是一种微控制器。要连接手机 APP,通常需要在 ESP8266 上运行一个服务器程序,并在 STM32 上运行一个客户端程序。客户端程序和服务器程序之间通过 WiFi 通信,并且手机 APP 与服务器程序之间通过网络连接。 需要注意的是,这种连接方式需要你对网络编程和通信协议有一定了解。 ### 回答2: ESP8266STM32是两款常用的单片机,它们的连接可以实现很多功能。其中,连接手机APP是很常见的应用,可以让用户通过APP控制ESP8266STM32,实现远程控制、数据采集等功能。 连接ESP8266STM32需要使用串口通信,因为ESP8266STM32都有串口接口。首先需要定义好通信协议,即ESP8266STM32之间如何交互和传输信息。可以使用简单的命令字符串来实现控制,如发送“LED ON”可以控制LED灯的开启。同时,也需要在APP中定义好与ESP8266STM32通信的协议和格式。 ESP8266STM32的连接方式有很多种,可以通过WiFi连接,也可以通过蓝牙连接。其中,WiFi连接和蓝牙连接都有各自的优缺点。WiFi连接能够实现更长的传输距离和更大的带宽,但是需要连接到WiFi网络,可能存在网络不稳定的问题,同时也需要对网络安全进行保护。而蓝牙连接则适合于近距离传输,具有更低的功耗和更简单的连接方式,但是传输距离有限。 在连接ESP8266STM32之前,也需要下载相应的驱动和库文件,并对ESP8266STM32进行相应的配置。同时,还需要对APP进行相应的开发,包括界面设计、协议定义、UI逻辑等方面的开发。 总之,将ESP8266STM32连接到手机APP可以实现很多有趣的功能。但是需要对硬件、软件进行相应的配置和开发,才能实现连接与控制。同时,也需要注意网络安全和数据传输的保护,确保用户数据的安全性。 ### 回答3: ESP8266是一款非常流行的Wi-Fi芯片,而STM32则是一款非常强大的单片机。将ESP8266STM32相结合,可以实现无线模块和单片机的连接。同时,连接手机APP,也可以实现无线控制。 实现ESP8266STM32的连接,可以采用UART串口通信的方式。具体步骤如下: 1.首先,在STM32择一路UART口,用来和ESP8266模块通信。 2.将ESP8266连接到STM32的UART口,并且将ESP8266的波特率设置为STM32定的波特率。然后,可以使用AT指令进行通信。 3.在STM32开发板上,编写代码,实现与ESP8266的通信。可以通过发送AT指令,来控制ESP8266模块的功能。 4.开发手机APP,并与ESP8266模块进行连接。使用手机APP,可以发送指令到ESP8266,然后ESP8266通过串口将指令发送给STM32,实现控制。 需要注意的是,ESP8266的功耗较低,需要电源的供给。同时,使用ESP8266时需要注意其版本,一些较早的版本可能无法实现和STM32的正常通信。 在实现ESP8266STM32连接手机APP的过程中,除了硬件连接以外,还需要编写软件程序实现控制。需要掌握一些编程语言的知识,例如C语言、AT指令等等。因此,对于初学者而言,可能需要一些时间和精力来学习这些知识。不过,只要掌握了基本知识,就能够比较容易地实现ESP8266STM32连接手机APP的控制。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值