标题:
ESP8266调试全过程指导(补全)
[打印本页]
作者:
wjwjwjwjwj
时间:
2018-11-13 00:25
标题:
ESP8266调试全过程指导(补全)
ESP8266 调试全过程 – 使用指导
上电:正常工作验证
本模块可以工作在三种模式:
1
.
STA
2
.
AP
3
.
AP+STA
,出厂设置为第三种
上电后,蓝色灯微弱闪烁后熄灭,红灯长亮
1. 搜索无线网络,可见ESP_XXXXXX已经处于列表中(后面的数字是MAC地址后几位)
连接该网络以后,查看连接状态:
手机搜索该网络,也可连接上:
使用
串口软件
进行测试:
软件配置如下图:
注意:(1)波特率一般在出厂情况下默认的是115200。如果在115200情况下收到的是乱码可以试试其他波特率(旧版本的默认波特率可能是其他数值)。
(2)
在输入命令后必须再按一下回车键
,然后再按发送!
使用
串口软件
进行测试
注意:勾选上“发送新行”
发送命令
AT+RST
(重启模块)
,返回如下:
三 测试
测试前先阅读:
(1)Espressif IoT AT
指令集
_v0.1.5.pdf
描述了该模块支持的
AT
命令
www
点
electrodragon
点
com/w/Wi07c
该网页命令描述更清晰一些
(2) ESP8266
测试方法汇总
.pdf
测试的具体流程
测试过程参照:
ESP8266
作为
TCP
服务器端使用心得
.pdf
出错的原因分析及处理
四 测试例程
原来推荐的测试例程比较粗略,这里放上我自己的测试过程,理解可能有误,仅供参考。
请勿直接复制指令,部分格式经过
WORD
编辑后有误!可能导致出错!
(一)
AP
模式
1.
建立
AP
(1)重启模块
发送命令:
AT+RST
(
执行指令
)
指令:
AT+RST
响应:
OK
(2)设置模块
发送命令:
AT+CWMODE=3
或
AT+CWMODE=2(
设置指令
)
指令:
AT+CWMODE=<mode>
说明:
<mode>
:
1
-
Station
模式,
2
-
AP
模式,
3
-
AP
兼
Station
模式
响应:
OK
说明:
需重启后生效
(AT+RST)
(3)配置AP参数
发送命令:
AT+CWSAP=
”
TEST
”
,
”
123456123456
”
,1,3
(
设置指令
)
指令:
AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>
说明:
指令只有在
AP
模式开启后有效
<ssid>
:
字符串参数,接入点名称
<pwd>
:
字符串参数,密码最长
64
字节,
ASCII
<chl>:
通道号
< ecn >
:
0
-
OPEN
,
1
-
WEP
,
2
-
WPA_PSK
,
3
-
WPA2_PSK
,
4
-
WPA_WPA2_PSK
响应:
OK
刷新无线网络列表,可见到SSID为TEST的无线网络列于其中:
注意:此时连接网络会可能出现连接不上的情况,请发送
AT+RST
命令并等待几分钟之后再连接
(4)查看已接入设备的IP
连接上
TEST
后
,
发送命令:
AT+CWLIF(
执行指令
)
指令:
AT+CW
LIF
说明:查看已接入设备的
IP
响应:
<ip addr>
OK
说明:
<ip addr>
:
已接入设备的
IP
地址
如果返回命令如下:
表示网络成功建立,目前无设备连入。
如果无线网络实际已连接上,请等待几分钟后再发送AT+CWLIF命令进行查询。
(4)查询本机IP地址
发送命令:
AT+CIFSR
(
执行指令
)
指令:
AT+C
IFSR
说明:查看本模块的
IP
地址
注意:
AP
模式下无效!会造成死机现象!
响应:
<ip addr>
说明:
<ip addr>
:
本模块
IP
地址
但
实际测试中并未发生死机现象
。
查看本机配置模式:CWMODE=2,为AP模式。
发送命令:
AT+CIFSR=?
(
测试指令
)
,返回响应如下:
同样未出现死机现象。
2. Server
方法收发
(0)
查询此时模块状态
(
该步骤可省略
)
发送命令
AT+CWMODE?(
查询指令
)
指令:
AT+C
WMODE?
说明:查看本模块的
WIFI
应用模式
响应:
+CWMODE:<mode>
OK
说明:
<mode>
:
1
-
Station
模式,
2
-
AP
模式,
3
-
AP
兼
Station
模式
发送命令
AT+CIPMUX?
(
查询指令
)
指令:
AT+C
IPMUX?
说明:查询本模块是否建立多连接
响应:
+ CIPMUX:<mode>
OK
说明:
<mode>
:0-
单路连接模式,
1
-
多路连接模式
发送命令
AT+CIPM
ODE
?
(
查询指令
)
指令:
AT+C
IPMODE?
说明:查询本模块的传输模式
响应:
+ CIPM
ODE
:<mode>
OK
说明:
<mode>
:0-
非透传模式,
1
-
透传模式
发送命令
AT+CIP
STO
?
(
查询指令
)
指令:
AT+C
IPSTO?
说明:查询本模块的服务器超时时间
响应:
+ CIP
STO
:<
time
>
OK
说明:
<
time
>
:
服务器超时时间,
0~2880
,单位为
s
(1)开启多连接模式
发送命令:
AT+CI
PMUX
=
1(
设置指令
)
指令:
AT+C
IPMUX=<mode>
说明:
<mode>
:0-
单路连接模式,
1
-
多路连接模式
响应:
OK
查询可知,设置成功
(2)创建服务器
发送命令:
AT+CI
PSERVER
=
1,8080(
设置指令
)
指令:
AT+C
IPSERVER=<mode>[,<port>]
说明:
<mode>
:0-
关闭
server
模式,
1
-
开启
server
模式
<port>:
端口号,缺省值为
333
响应:
OK
说明:
(1)
AT+ CIPMUX=1
时才能开启服务器;关闭
server
模式需要重启
(2)
开启
server
后自动建立
server
监听
,
当有
client
接入会自动按顺序占用一个连接。
开启server服务如下图所示:
关闭server服务如下图所示:
打开USR-TCP232-Test.exe,点击Connect按钮连接不上,可知server服务未开启
重新开启server服务(
注意:之前需要再发送一遍
AT+CIPMUX=1
以
重新开启多连接模式
)。
点击Connect按钮
连接成功后,串口收到模块返回的数据串:Link
180S(默认值)后,连接自动断开,返回Unlink,客户端的相应按钮变成灰色。
全过程如下图:
(3)
设置服务器超时时间
发送命令
AT+CIP
STO=2880
(
设置指令
)
指令:
AT+C
IPSTO=<time>
说明:
<
time
>
:
服务器超时时间,
0~2880
,单位为
s
响应:
OK
(4) 建立客户端
(5) 查看当前连接
发送命令
AT+CIP
STATUS
(
执行指令
)
指令:
AT+C
IPSTATUS
响应:
STATUS:<stat>
+ CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>
OK
说明:
<id>
:
连接的
id
号
0-4
<type>
:
字符串参数,类型
TCP
或
UDP
<addr>
:
字符串参数,
IP
地址
<port>
:
端口号
<tetype>
:
0
-
本模块做
client
的连接,
1
-
本模块做
server
的连接
(
之前电脑的
USB
无线网卡发烫厉害,拔出后重新插上,再次连接后自动分配的端口产生了变化,所以刷出了两个客户端,实际中存在的仅有
ID=1
的客户端
)
(6) 向某个连接发送数据
发送命令
AT+CIP
SEND=1,6(
设置指令
)
(通过上一条指令
AT+CIP
STATUS
得知
ID=1
)
指令:
1)
单路连接时
(+CIPMUX=0)
,指令为:
AT+CIPSEND=<length>
2
)
多路连接时
(+CIPMUX=1)
,指令为:
AT+CIPSEND= <id>,<length>
响应:收到此命令后先换行返回
”>”
,然后开始接收串口数据
当数据长度满
length
时发送数据。
如果未建立连接或连接被断开,返回
ERROR
如果数据发送成功,返回
SEND OK
说明:
<id>
:
需要用于传输连接的
id
号
<length>
:
数字参数,表明发送数据的长度,最大长度为
2048
断开客户端后再发送一次,得到以下响应:
发送数据长度大于LENGTH时响应如下
(HELLO!
为之前一次发送的数据
)
:
此时连接已建立,可以进行数据的双向收发。
用客户端向ESP8266发送数据,正常。
3. Client
方法收发
(0)
关闭
server
服务
(
如果没有开启
server
服务,可免除此步骤
)
发送命令:
AT+CI
PSERVER
=
0(
设置指令
)
指令:
AT+C
IPSERVER=<mode>[,<port>]
说明:
<mode>
:0-
关闭
server
模式,
1
-
开启
server
模式
<port>:
端口号,缺省值为
333
响应:
OK
说明:
(1)
AT+ CIPMUX=1
时才能开启服务器;关闭
server
模式需要重启
(2)
开启
server
后自动建立
server
监听
,
当有
client
接入会自动按顺序占用一个连接。
关闭server服务如下图所示:
(1) 创建服务器
点击Listening,创建成功后,该按钮变为:
(2) 开启多连接模式
发送命令:
AT+CI
PMUX
=
1(
设置指令
)
指令:
AT+C
IPMUX=<mode>
说明:
<mode>
:0-
单路连接模式,
1
-
多路连接模式
响应:
OK
(3) 建立TCP连接
发送命令
AT+CIPSTART=2,"TCP","192.168.4.101",8080
(
设置指令
)
指令:
1)
单路连接时
(+CIPMUX=0)
,指令为:
AT+CIPSTART= <type>,<addr>,<port>
2
)
多路连接时
(+CIPMUX=1)
,指令为:
AT+CIPSTART=<id>,<type>,<addr>,<port>
响应:如果格式正确且连接成功,返回
OK
,否则返回
ERROR
如果连接已经存在,返回
ALREAY CONNECT
说明:
<id>
:0-4
,连接的
id
号
<
t
ype>
:
字符串参数,表明连接类型,
”TCP”
-
建立
tcp
连接,
”UDP”
-
建立
UDP
连接
<addr>
:
字符串参数,远程服务器
IP
地址
<port>
:
远程服务器端口号
如下图所示:
(4) 向服务器发送数据
发送命令
AT+CIP
SEND=2,8(
设置指令
)
(通过上一条指令
AT+CIPSTART
设置为
ID=2
)
指令:
1)
单路连接时
(+CIPMUX=0)
,指令为:
AT+CIPSEND=<length>
2
)
多路连接时
(+CIPMUX=1)
,指令为:
AT+CIPSEND= <id>,<length>
响应:收到此命令后先换行返回
”>”
,然后开始接收串口数据
当数据长度满
length
时发送数据。
如果未建立连接或连接被断开,返回
ERROR
如果数据发送成功,返回
SEND OK
说明:
<id>
:
需要用于传输连接的
id
号
<length>
:
数字参数,表明发送数据的长度,最大长度为
2048
接收正确,超过8个字符的部分不接收。
此时连接已建立,可以进行数据的双向收发。用服务器向ESP8266发送数据,正常。
(二)
STA
模式
1.
建立
STA
(1) 重启模块
发送命令:
AT+RST(
执行指令
)
指令:
AT+RST
响应:
OK
(2) 设置模块
发送命令:
AT+CWMODE=3
或
AT+CWMODE=1(
设置指令
)
指令:
AT+CWMODE=<mode>
说明:
<mode>
:
1
-
Station
模式,
2
-
AP
模式,
3
-
AP
兼
Station
模式
响应:
OK
说明:
需重启后生效
(AT+RST)
将模块设置为模式1,此时刷新网络列表可见由ESP8266建立的网络从列表中消失了
(3) 查看当前无线路由器列表
发送命令:
AT+CWLAP(
执行指令
)
指令:
AT+CW
LAP
响应:正确:
(
终端返回
AP
列表
)
+ CWLAP: <ecn>,<ssid>,<rssi>
OK
错误:
ERROR
说明:
<
ecn >
:
0
-
OPEN
,
1
-
WEP
,
2
-
WPA_PSK
,
3
-
WPA2_PSK
,
4
-
WPA_WPA2_PSK
<ssid>
:
字符串参数,接入点名称
<rssi>
:
信号强度
如搜索不到信号,响应:
请重新上电并严格按照AT命令再发送一遍。
没有列表返回的时候请耐心等待,否则会出现“busy”
(4) 加入当前无线网络
发送命令:
AT+CWJAP=
”
MERSAIN
”,”
XXXXXXXX
”
(
设置指令
)
指令:
AT+CW
JAP=
<ssid>,< pwd >
说明:
<ssid>
:
字符串参数,接入点名称
<
pwd
>
:
字符串参数,密码,最长
64
字节
ASCII
响应:正确:
OK
错误:
ERROR
检测是否真的连上该路线网络
发送命令:
AT+CWJAP?(
查询指令
)
指令:
AT+CW
JAP?
响应:返回当前选择的
AP
+ CWJAP:<ssid>
OK
说明:
<ssid>
:
字符串参数,接入点名称
断电
。上电后发送
AT+CWJAP?
,返回同上,系统保持上次的状态。
查看模块IP地址
发送命令:
AT+CIFSR
(
执行指令
)
指令:
AT+C
IFSR
响应:正确:
+ CIFSR:<IP address>
OK
错误:
ERROR
说明:
<ssid>
:
字符串参数,接入点名称
群里(
@
云海之梦)反映:错误的
SSID
也可以连接上
,测试后发现果然如此,输入实际不存在的账号密码返回也是OK
但发送
AT+CIFSR
(查看模块地址),返回ERROR,可通过此命令来判断有没有真正连接上。
2. Server
方法收发
(0)
查询此时模块状态
(
该步骤可省略
)
发送命令
AT+CWMODE?(
查询指令
)
指令:
AT+C
WMODE?
说明:查看本模块的
WIFI
应用模式
响应:
+CWMODE:<mode>
OK
说明:
<mode>
:
1
-
Station
模式,
2
-
AP
模式,
3
-
AP
兼
Station
模式
发送命令
AT+CIPMUX?
(
查询指令
)
指令:
AT+C
IPMUX?
说明:查询本模块是否建立多连接
响应:
+ CIPMUX:<mode>
OK
说明:
<mode>
:0-
单路连接模式,
1
-
多路连接模式
发送命令
AT+CIPM
ODE
?
(
查询指令
)
指令:
AT+C
IPMODE?
说明:查询本模块的传输模式
响应:
+ CIPM
ODE
:<mode>
OK
说明:
<mode>
:0-
非透传模式,
1
-
透传模式
发送命令
AT+CIP
STO
?
(
查询指令
)
指令:
AT+C
IPSTO?
说明:查询本模块的服务器超时时间
响应:
+ CIP
STO
:<
time
>
OK
说明:
<
time
>
:
服务器超时时间,
0~2880
,单位为
s
(1)开启多连接模式
发送命令:
AT+CI
PMUX
=
1(
设置指令
)
指令:
AT+C
IPMUX=<mode>
说明:
<mode>
:0-
单路连接模式,
1
-
多路连接模式
响应:
OK
查询可知,设置成功
(2)创建服务器
发送命令:
AT+CI
PSERVER
=
1,8080(
设置指令
)
指令:
AT+C
IPSERVER=<mode>[,<port>]
说明:
<mode>
:0-
关闭
server
模式,
1
-
开启
server
模式
<port>:
端口号,缺省值为
333
响应:
OK
说明:
(1)
AT+ CIPMUX=1
时才能开启服务器;关闭
server
模式需要重启
(2)
开启
server
后自动建立
server
监听
,
当有
client
接入会自动按顺序占用一个连接。
开启server服务如下图所示:
关闭server服务如下图所示:
打开USR-TCP232-Test.exe,点击Connect按钮连接不上,可知server服务未开启
重新开启server服务(
注意:之前需要再发送一遍
AT+CIPMUX=1
以
重新开启多连接模式
)。
点击Connect按钮
连接成功后,串口收到模块返回的数据串:Link
180S(默认值)后,连接自动断开,返回Unlink,客户端的相应按钮变成灰色。
全过程如下图:
(3)
设置服务器超时时间
发送命令
AT+CIP
STO=2880
(
设置指令
)
指令:
AT+C
IPSTO=<time>
说明:
<
time
>
:
服务器超时时间,
0~2880
,单位为
s
响应:
OK
(4) 建立客户端
界面设置如下图所示:
(5) 查看当前连接
发送命令
AT+CIP
STATUS
(
执行指令
)
指令:
AT+C
IPSTATUS
响应:
STATUS:<stat>
+ CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>
OK
说明:
<id>
:
连接的
id
号
0-4
<type>
:
字符串参数,类型
TCP
或
UDP
<addr>
:
字符串参数,
IP
地址
<port>
:
端口号
<tetype>
:
0
-
本模块做
client
的连接,
1
-
本模块做
server
的连接
(6) 向某个连接发送数据
发送命令
AT+CIP
SEND=0,10(
设置指令
)
(通过上一条指令
AT+CIP
STATUS
得知
ID=0
)
指令:
1)
单路连接时
(+CIPMUX=0)
,指令为:
AT+CIPSEND=<length>
2
)
多路连接时
(+CIPMUX=1)
,指令为:
AT+CIPSEND= <id>,<length>
响应:收到此命令后先换行返回
”>”
,然后开始接收串口数据
当数据长度满
length
时发送数据。
如果未建立连接或连接被断开,返回
ERROR
如果数据发送成功,返回
SEND OK
说明:
<id>
:
需要用于传输连接的
id
号
<length>
:
数字参数,表明发送数据的长度,最大长度为
2048
发:
收:
断开客户端后再发送一次,得到以下响应:
此时连接已建立,可以进行数据的双向收发。
3. Client
方法收发
(0)
关闭
server
服务
(
如果没有开启
server
服务,可免除此步骤
)
发送命令:
AT+CI
PSERVER
=
0(
设置指令
)
指令:
AT+C
IPSERVER=<mode>[,<port>]
说明:
<mode>
:0-
关闭
server
模式,
1
-
开启
server
模式
<port>:
端口号,缺省值为
333
响应:
OK
说明:
(1)
AT+ CIPMUX=1
时才能开启服务器;关闭
server
模式需要重启
(2)
开启
server
后自动建立
server
监听
,
当有
client
接入会自动按顺序占用一个连接。
关闭server服务如下图所示:
(1)创建服务器
点击Listening,创建成功后,该按钮变为:
(2) 开启多连接模式
发送命令:
AT+CI
PMUX
=
1(
设置指令
)
指令:
AT+C
IPMUX=<mode>
说明:
<mode>
:0-
单路连接模式,
1
-
多路连接模式
响应:
OK
(3) 建立TCP连接
发送命令
AT+CIPSTART=2,"TCP","192.168.1.109",8080
(
设置指令
)
指令:
1)
单路连接时
(+CIPMUX=0)
,指令为:
AT+CIPSTART= <type>,<addr>,<port>
2
)
多路连接时
(+CIPMUX=1)
,指令为:
AT+CIPSTART=<id>,<type>,<addr>,<port>
响应:如果格式正确且连接成功,返回
OK
,否则返回
ERROR
如果连接已经存在,返回
ALREAY CONNECT
说明:
<id>
:0-4
,连接的
id
号
<
t
ype>
:
字符串参数,表明连接类型,
”TCP”
-
建立
tcp
连接,
”UDP”
-
建立
UDP
连接
<addr>
:
字符串参数,远程服务器
IP
地址
<port>
:
远程服务器端口号
如下图所示:
(4) 向服务器发送数据
发送命令
AT+CIP
SEND=2,10(
设置指令
)
(通过上一条指令
AT+CIPSTART
设置为
ID=2
)
指令:
1)
单路连接时
(+CIPMUX=0)
,指令为:
AT+CIPSEND=<length>
2
)
多路连接时
(+CIPMUX=1)
,指令为:
AT+CIPSEND= <id>,<length>
响应:收到此命令后先换行返回
”>”
,然后开始接收串口数据
当数据长度满
length
时发送数据。
如果未建立连接或连接被断开,返回
ERROR
如果数据发送成功,返回
SEND OK
说明:
<id>
:
需要用于传输连接的
id
号
<length>
:
数字参数,表明发送数据的长度,最大长度为
2048
此时连接已建立,可以进行数据的双向收发。
完整的Word格式文档51黑下载地址:
ESP8266入门调试指导(补全).doc
(621.12 KB, 下载次数: 85)
2018-11-13 00:26 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
qyh123456
时间:
2018-11-13 08:17
写的很详细 赞一个!!!
作者:
西点钟灵毓秀
时间:
2019-3-19 23:11
非常好,就是黑比贵
作者:
小小白小小
时间:
2019-4-21 11:16
哇,这个真的写的非常详细了,网上也有很多教程,但没有这个步骤这么详细,就像那个波特率需要设置成115200还有“发送新行”就快把我这个小白卡死了。
本来还打算自己写一篇介绍ESP8266的方法,没想到这里的这么详细。
支持一下!
作者:
qwa1234
时间:
2021-5-30 13:24
西点钟灵毓秀 发表于 2019-3-19 23:11
非常好,就是黑比贵
不要做伸手党,51黑的币是这么多电子论坛中最容易获取的,,,
作者:
nyzhoujinshuai
时间:
2021-6-2 08:45
写的很详细 赞一个!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1