STM32 驱动 ESP8266 WIFI 模块

目录

1. 模块引脚

2. 测试模块是否正常

3. AT指令

​4. ESP8266三种工作模式

5. 配置WIFI模块

6. STM32驱动WIFI模块


拿到一个野火的esp8266模块,驱一下试试。

1. 模块引脚

STM32 驱动 ESP8266 WIFI 模块_第1张图片 esp8266模块引脚图

在我们使用中只使用1、2、4、6、7、8引脚即可。3、4引脚是刷新固件库时候使用。从引脚图中可以看到ESP8266主要使用USART来通信。模块默认波特率为9600.

2. 测试模块是否正常

接线如下:

测试模块引脚连线
WF-ESP8266模块 串口
VCC 3V3
GND GND
CH_PD 3V3
UTXD RXD
URXD TXD

 

连接之后,打开串口调试助手,发送AT,回应OK。说明模块正常。

STM32 驱动 ESP8266 WIFI 模块_第2张图片

给模块上电之后,打开手机的“WALN”,扫描wifi信号,如果能扫描到模块发出的热点,说明模块基本正常。该热点一般是“OPEN”型的,也就是无密码的,用户可 连连看。模块断电后,该热点就消失。

3. AT指令

说到ESP8266 WIFI模块,就不得不提他的AT指令了。接下来了解AT指令。

STM32 驱动 ESP8266 WIFI 模块_第3张图片

STM32 驱动 ESP8266 WIFI 模块_第4张图片

STM32 驱动 ESP8266 WIFI 模块_第5张图片

4. ESP8266三种工作模式

ESP8266共有三种工作模式,分别是 

1.Station (客户端模式)
2.AP (接入点模式)
3.Station+AP (两种模式共存)
就是说模块可以当成一个设备( client)连接区域网内的路由,也可以设置成是一个路由( sever),
也可以既作为局域网里面的 client 同时又是其他 client 的 sever。

5. 配置WIFI模块

1.AP(sever)模式与手机通信

1.输入: AT+CWMODE=2
响应: OK
说明:指令原型为: AT+CWMODE=;其中 :1-Station 模式, 2-AP模式, 3-AP 兼
Station 模式。
2.输入: AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入: AT+CWMODE?
响应: +CWMODE:2
 OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是 2,说明是 AP模式。
4.输入: AT+CWSAP="ESP8266","0123456789",11,0
响应: OK
说明:指令原型为: AT+ CWSAP=,,,
;其中 :字符串参数,接入点名称; :字符串参数,密码最长 64 字节, ASCII;
:通道号; < ecn
>:0-OPEN,1-WEP, 2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到 ESP8266上了。
5.输入: AT+CIPMUX=1
响应: OK
说明:开启多连接模式,因为只有在开启多连接模式的时候才能开启服务器模式。注意:透传只
能在单连接模式下进行。
6.输入: AT+CIPSERVER=1,8080
响应: OK
说明:设置端口为 8080。
最后,我们就可以通过网络调试助手来通过“ TCP Client”模式下添加“IP:192.168.4.1(模块默认的 IP) ,端口 8080(第 6 步设置的)”值得一提的是,
ESP8266当服务器的时候,客户端如果没有数据传输,隔一段时间会自动断开连接,可通过
AT+CIPSTO=

2. Station(client)模式与电脑通信

1.输入: AT+CWMODE=1
响应: OK
说明:指令原型为: AT+CWMODE=;其中 :1-Station 模式, 2-AP模式, 3-AP 兼
Station 模式。
2.输入: AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入: AT+CWMODE?
响应: +CWMODE:1
 OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是 1,说明是 Station 模式。再看
电脑或者手机 wifi 连接窗口,刚才的热点已经消失了,说明已经把模式转换为了客户端模式。
4.输入: AT+CWLAP
响应: +CWLAP:(4,"呭摜 ",-84,"78:eb:14:f3:9c:1a",1)
+CWLAP:(4,"509509",-53,"20:dc:e6:d0:3b:3c",1)
+CWLAP:(4,"bing2014",-73,"ec:88:8f:63:40:d4",1)
+CWLAP:(3,"瀵嗙爜鏄 ?883125",-80,"7e:2f:68:6b:df:5e",11)
OK
说明:可以让模块搜索周围的信号了,列出可以连接的热点(中文显示为乱码)。
5.输入: AT+CWJAP="huawei11","guaizaiguaizai"
响应: OK
说明:指令原型为: AT+CWJAP=,),ssid 就是 wifi 的名字, pwd 就是 wifi 的密码
6.输入: AT+CWJAP?
响应: +CWJAP:”huawei11”
 OK
说明:这条指令可以不要,这是查询一下当前连接的 AP。
7.输入: AT+CIFSR
响应: 192.168.1.104
 OK
8.输入: AT+CIPSTA_CUR=”192.168.6.100”,"192.168.6.1","255.255.255.0"
响应: OK
说明:这条指令可以不要,这是分配固定 ip。
说明:通过路由器查看下模块的 IP 地址。如果模块之前我们设置成了 AP 和 Station 共存模式,则会出现两个IP,上面的 APIP是作为无线 AP的 IP 地址。下面的 STAIP是它作为客户端从路由器获取到的 IP地址。
ESP8266是有寄存器的,所以即使重启连接信息也不会丢失,重启后再查询,发现会自动连接。
使用电脑 ping 一下这个 ip,ip 是可以 ping 通的,说明连接正常。
C:\Users\Administrator>ping 192.168.1.104
正在 Ping 192.168.1.104 具有 32 字节的数据 :
来自 192.168.1.104 的回复 : 字节 =32 时间 =65ms TTL=255
来自 192.168.1.104 的回复 : 字节 =32 时间 =95ms TTL=255
来自 192.168.1.104 的回复 : 字节 =32 时间 =102ms TTL=255
来自 192.168.1.104 的回复 : 字节 =32 时间 =18ms TTL=255 
192.168.1.104 的 Ping 统计信息 :
数据包 : 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失 ),
往返行程的估计时间 (以毫秒为单位 ):
最短 = 18ms,最长 = 102ms,平均 = 70ms


我们用来调试的这台电脑(电脑也需连接同一个路由器)上建立一个 TCP服务器,然后
用我们刚刚连接到路由器的 ESP8266模块连接到我们建立的这个 TCP服务器上,然后在这个模块
与服务器之间转输数据。用到的工具是网络助手 NetAssist.exe,运行后在网络协议类型: TCP
Server ,然后点“连接”按扭,成为一台 TCP服务器。

 9.输入: AT+CIPSTART="TCP","192.168.1.100",8080
响应: CONNECT
 OK
说明: 192.168.1.100 为服务器 IP 地址; 8080 为端口。
10.输入: AT+CIPSEND=4
响应: OK
说明:意思是发送四个字节的数据。
11.输入: ABCD 
响应: SEND OK
说明: NetAssist 会收到 ABCD四个字母。
12.把网络助手的“连接对象”选择成我们的模块 IP 地址,在下面输入 :CDEFG,点发送,会在串口工具
收到 +IPD,5:CDEFG。意思是接收到的数据长度为 5 个字节, CDEFG为数据内容

3、Station(client)模式下与手机通信

1.输入: AT+CWMODE=3
响应: OK
说明:指令原型为: AT+CWMODE=;其中 :1-Station 模式, 2-AP模式, 3-AP 兼
Station 模式。
2.输入: AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入: AT+CWMODE?
响应: +CWMODE:3
 OK
说明:这条指令可以不要。
4.输入: AT+CWSAP="ESP8266","0123456789",11,0 
响应: OK
说明:指令原型为: AT+ CWSAP=,,,
;其中 :字符串参数,接入点名称; :字符串参数,密码最长 64 字节, ASCII;
:通道号; < ecn
>:0-OPEN,1-WEP, 2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到 ESP8266上了。
打开手机上的有人网络助手, TCP server→配置→激活→能看到此时手机的 IP 和端口号,要记下,
下面要用。
5.输入: AT+CIPMODE=1
响应: OK
说明:开启透传模式。
6.输入: AT+CIPMUX=0
响应: OK
说明:开启单路模式。
 7.输入: AT+CIPSTART="TCP","192.168.4.2",8080
响应: CONNECT
 OK
说明: 192.168.4.2 为服务器 IP 地址; 8080 为端口。填刚才记下的手机 IP 和端口号
这时手机已经能向模块发信息了,但模块不能发。
8.输入: AT+CIPSEND
响应: OK
说明: ESP8266发送数据至手机。

至此,三种模式已经配置完成。

6. STM32驱动WIFI模块

我使用STM32F103C8T6 ,调整野火的例程。直接下载使用不了,自己改了一部分。

//ESP8266 与 STM32F103C8T6 引脚配置

STM32 ----  WIFI

PA0   ----  CH-PD
PA1   ----  RST
PA2   ----  URXD
PA3   ----  UTXD
3V3   ----  VCC
GND   ----  GND

工程打包

链接: https://pan.baidu.com/s/17FwjnmaQOtSnuv2q7XDRVQ

提取码: ftfn

串口调试助手

链接:https://pan.baidu.com/s/1weXPIcQ9D7WX4hIuMY1Rsw 
提取码:auku

 

你可能感兴趣的:(STM32)