目录
拿到一个野火的esp8266模块,驱一下试试。
1. 模块引脚
在我们使用中只使用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。说明模块正常。
给模块上电之后,打开手机的“WALN”,扫描wifi信号,如果能扫描到模块发出的热点,说明模块基本正常。该热点一般是“OPEN”型的,也就是无密码的,用户可 连连看。模块断电后,该热点就消失。
3. AT指令
说到ESP8266 WIFI模块,就不得不提他的AT指令了。接下来了解AT指令。
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=<mode>;其中 <mode>: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=<ssid>,<pwd>,<chl>,
<ecn>;其中 <ssid>:字符串参数,接入点名称; <pwd>:字符串参数,密码最长 64 字节, ASCII;
<chl>:通道号; < 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=<time>命令设置超时时间(说明: <time>:服务器超时时间, 0~2880,单位为 s)。
7.输入 AT+CIPSEND=0,10
返回: OK
>
输入字符串,就可以发到手机上了 ,0 是通道号, 10 是数据长度。
2. Station(client)模式与电脑通信
1.输入: AT+CWMODE=1
响应: OK
说明:指令原型为: AT+CWMODE=<mode>;其中 <mode>: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>,<pwd>),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=<mode>;其中 <mode>: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=<ssid>,<pwd>,<chl>,
<ecn>;其中 <ssid>:字符串参数,接入点名称; <pwd>:字符串参数,密码最长 64 字节, ASCII;
<chl>:通道号; < 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