STM32F407单片机通过ESP8266 WiFi模块与Android手机APP连接,实现数据的相互传输。 LCD显示屏在单片机上实时显示连接状态和相互传输的数据。 我们先看一下效果图:
1、计算机硬件配置较低
本文使用的微控制器型号为STM32F407。 如果使用其他类型的单片机,只需稍微改变程序即可。 使用的WiFi模块是正点原子公司的ESP8266模块。 该模块与单片机之间的通信是通过串口实现的。 由于单片机的串口一是用来下载程序的,因此本文使用串口三。 STM32使用的所有代码都可以通过文末的链接下载。 在程序中可以看到串口三和WiFi模块的配置。 连接单片机时,可以直接插入单片机开发板上预留的接口,如上图所示。
如果没有预留接口,则需要使用杜邦线连接。 WiFi模块的电源可以接3.3V或5V。 然后将WiFi模块的RX引脚与单片机串口3的TX引脚相连,将WiFi模块的TX引脚连接起来。 连接单片机串口3的RX引脚,将WiFi模块的地连接到单片机的地。
2.WiFi模块配置
本文使用的WiFi模块有三种工作模式,分别是:STA模式、AP模式和STA+AP模式。 每种模式又分为三种模式:UDP、TCP Client 和 TCP Server 模式。 如果不是的话我对WiFi模块的工作模式不太了解,大家可以先了解一下。
本文将WiFi模块在AP模式下设置为TCP Server模式,相当于路由器,并配置WiFi模块的IP地址和端口号。 之后就可以通过手机APP连接WiFi模块并互相传输数据,然后就可以控制与单片机连接的硬件设备,实现简单的物联网功能。
WiFi模块配置通过AT命令完成。 下面列出了一些常用的 AT 命令:
了解了常用的AT命令后,我们将使用AT命令来配置WiFi模块。 本文在程序中配置WiFi模块。 也可以使用PC上的串口助手发送AT命令进行配置。 AP模式下的TCP SERVER模式的配置过程如下:
1. AT //查看芯片是否正常工作
响应:
OK
2. ATE0 //关闭回显
响应:
OK
3. AT+CWMODE=2 //配置成AP模式
响应:
OK
4. AT+RST //重启WiFi模块
响应:
ready
5. AT+CWSAP="ssid","pwd",1,4 //配置WiFi名称、密码等
响应:
OK
6. AT+CIPMUX=1 //开启多连接
响应:
OK
7. AT+CIPSERVER=1,8088 //开启TCP服务器,端口号设置成8088
响应:
OK
8. AT+RST //重启WiFi模块
响应:
OK
9. AT+CIFSR //查看WiFi模块的IP和MAC地址
响应:
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ea,68,e6,86,c5,39"
OK
按照上述步骤配置好WiFi模块后,即可在手机APP上输入IP地址(“192.168.4.1”)和端口号(8088)建立TCP连接,然后传输数据。
如何免费获取STM32单片机和Android APP源码:
Android APP配置步骤请参考:
STM32单片机通过ESP8266WiFi模块实现与Android APP的数据传输(二)-PC搭建