ESP8266新手入门调试指导补全.docx
《ESP8266新手入门调试指导补全.docx》由会员分享,可在线阅读,更多相关《ESP8266新手入门调试指导补全.docx(31页珍藏版)》请在冰豆网上搜索。
ESP8266新手入门调试指导补全
ESP8266ESP-01调试全过程–使用指导测试&编写&汇总byfairyhui
一接线
注意:
本系统是3.3V!
请勿接5V!
新版(全IO口引出版):
此版本若想从FLASH启动进入AT系统,只需CH-PD引脚接VCC或接上拉(不接上拉的情况下,串口可能无数据),其余三个引脚可选择悬空或接VCC(但群里(@云海之梦)反映接VCC后导致无法正常启动)
(GPIO0为高电平代表从FLASH启动,GPIO0为低电平代表进入系统升级状态,此时可以经过串口升级内部固件
RST(GPIO16)可做外部硬件复位使用)
测试系统不同,接线方法也选择多多,请各位根据自己的情况进行选择,推荐接法:
在CH-PD和VCC之间焊接电阻后,将UTXD,GND,VCC,URXD连上USB-TTL(两者的TXD和RXD交叉接)即可进行测试
旧版(AT指令版):
该版本中间四根线悬空即可。
群里(@ZR(小R))反应:
接线正确的情况下,连上USB转TTL,红灯蓝灯闪烁一下以后全灭,此现象为模块电流过大,超过了USB转TLL模块的承受范围。
解决办法:
1.CH-PD换一个阻值更大的上拉电阻;2.换个承受电流大一点USB转TLL模块(群众们也可以自己改造)
(@ZR(小R))反应:
在供电不足的情况下,收到的响应为乱码。
请各位检查下供电电压是否足够。
二上电:
正常工作验证
本模块可以工作在三种模式:
1.STA2.AP3.AP+STA,出厂设置为第三种
上电后,蓝色灯微弱闪烁后熄灭,红灯长亮
1.搜索无线网络,可见ESP_XXXXXX已经处于列表中(后面的数字是MAC地址后几位)
连接该网络以后,查看连接状态:
手机搜索该网络,也可连接上:
2.使用USR-TCP232-Test.exe进行测试:
软件配置如下图:
注意:
(1)波特率一般在出厂情况下默认的是115200。
如果在115200情况下收到的是乱码可以试试其他波特率(旧版本的默认波特率可能是其他数值)。
(2)在输入命令后必须再按一下回车键,然后再按发送!
3.使用sscom42.exe进行测试
注意:
勾选上“发送新行”
发送命令AT+RST(重启模块),返回如下:
三测试
测试前先阅读:
(1)EspressifIoTAT指令集_v0.1.5.pdf描述了该模块支持的AT命令
该网页命令描述更清晰一些
(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=
说明:
:
1-Station模式,2-AP模式,3-AP兼Station模式
响应:
OK
说明:
需重启后生效(AT+RST)
(3)配置AP参数
发送命令:
AT+CWSAP=”TEST”,”123456123456”,1,3(设置指令)
指令:
AT+CWSAP=,,,
说明:
指令只有在AP模式开启后有效
:
字符串参数,接入点名称
:
字符串参数,密码最长64字节,ASCII
:
通道号
:
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+CWLIF
说明:
查看已接入设备的IP
响应:
OK
说明:
:
已接入设备的IP地址
如果返回命令如下:
表示网络成功建立,目前无设备连入。
如果无线网络实际已连接上,请等待几分钟后再发送AT+CWLIF命令进行查询。
(4)查询本机IP地址
发送命令:
AT+CIFSR(执行指令)
指令:
AT+CIFSR
说明:
查看本模块的IP地址
注意:
AP模式下无效!
会造成死机现象!
响应:
说明:
:
本模块IP地址
但实际测试中并未发生死机现象。
查看本机配置模式:
CWMODE=2,为AP模式。
发送命令:
AT+CIFSR=?
(测试指令),返回响应如下:
同样未出现死机现象。
2.Server方法收发
(0)查询此时模块状态(该步骤可省略)
发送命令AT+CWMODE?
(查询指令)
指令:
AT+CWMODE?
说明:
查看本模块的WIFI应用模式
响应:
+CWMODE:
OK
说明:
:
1-Station模式,2-AP模式,3-AP兼Station模式
发送命令AT+CIPMUX?
(查询指令)
指令:
AT+CIPMUX?
说明:
查询本模块是否建立多连接
响应:
+CIPMUX:
OK
说明:
:
0-单路连接模式,1-多路连接模式
发送命令AT+CIPMODE?
(查询指令)
指令:
AT+CIPMODE?
说明:
查询本模块的传输模式
响应:
+CIPMODE:
OK
说明:
:
0-非透传模式,1-透传模式
发送命令AT+CIPSTO?
(查询指令)
指令:
AT+CIPSTO?
说明:
查询本模块的服务器超时时间
响应:
+CIPSTO:
OK
说明:
服务器超时时间,0~2880,单位为s
(1)开启多连接模式
发送命令:
AT+CIPMUX=1(设置指令)
指令:
AT+CIPMUX=
说明:
:
0-单路连接模式,1-多路连接模式
响应:
OK
查询可知,设置成功
(2)创建服务器
发送命令:
AT+CIPSERVER=1,8080(设置指令)
指令:
AT+CIPSERVER=[,]
说明:
:
0-关闭server模式,1-开启server模式
:
端口号,缺省值为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+CIPSTO=2880(设置指令)
指令:
AT+CIPSTO=
说明:
服务器超时时间,0~2880,单位为s
响应:
OK
(4)建立客户端
(5)查看当前连接
发送命令AT+CIPSTATUS(执行指令)
指令:
AT+CIPSTATUS
响应:
STATUS:
+CIPSTATUS:
,,,,
OK
说明:
:
连接的id号0-4
:
字符串参数,类型TCP或UDP
:
字符串参数,IP地址
:
端口号
:
0-本模块做client的连接,1-本模块做server的连接
(之前电脑的USB无线网卡发烫厉害,拔出后重新插上,再次连接后自动分配的端口产生了变化,所以刷出了两个客户端,实际中存在的仅有ID=1的客户端)
(6)向某个连接发送数据
发送命令AT+CIPSEND=1,6(设置指令)(通过上一条指令AT+CIPSTATUS得知ID=1)
指令:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSEND=
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSEND=,
响应:
收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回SENDOK
说明:
:
需要用于传输连接的id号
:
数字参数,表明发送数据的长度,最大长度为2048
断开客户端后再发送一次,得到以下响应:
发送数据长度大于LENGTH时响应如下(HELLO!
为之前一次发送的数据):
此时连接已建立,可以进行数据的双向收发。
用客户端向ESP8266发送数据,正常。
3.Client方法收发
(0)关闭server服务(如果没有开启server服务,可免除此步骤)
发送命令:
AT+CIPSERVER=0(设置指令)
指令:
AT+CIPSERVER=[,]
说明:
:
0-关闭server模式,1-开启server模式
:
端口号,缺省值为333
响应:
OK
说明:
(1)AT+CIPMUX=1时才能开启服务器;关闭server模式需要重启
(2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。
关闭server服务如下图所示:
(1)创建服务器
点击Listening,创建成功后,该按钮变为:
(2)开启多连接模式
发送命令:
AT+CIPMUX=1(设置指令)
指令:
AT+CIPMUX=
说明:
:
0-单路连接模式,1-多路连接模式
响应:
OK
(3)建立TCP连接
发送命令AT+CIPSTART=2,"TCP","192.168.4.101",8080(设置指令)
指令:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSTART=,,
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSTART=,,,
响应:
如果格式正确且连接成功,返回OK,否则返回ERROR
如果连接已经存在,返回ALREAYCONNECT
说明:
:
0-4,连接的id号
:
字符串参数,表明连接类型,”TCP”-建立tcp连接,”UDP”-建立UDP连接
:
字符串参数,远程服务器IP地址
:
远程服务器端口号
如下图所示:
(4)向服务器发送数据
发送命令AT+CIPSEND=2,8(设置指令)(通过上一条指令AT+CIPSTART设置为ID=2)
指令:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSEND=
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSEND=,
响应:
收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回SENDOK
说明:
:
需要用于传输连接的id号
:
数字参数,表明发送数据的长度,最大长度为2048
接收正确,超过8个字符的部分不接收。
此时连接已建立,可以进行数据的双向收发。
用服务器向ESP8266发送数据,正常。
(二)STA模式
1.建立STA
(1)重启模块
发送命令:
AT+RST(执行指令)
指令:
AT+RST
响应:
OK
(2)设置模块
发送命令:
AT+CWMODE=3或AT+CWMODE=1(设置指令)
指令:
AT+CWMODE=
说明:
:
1-Station模式,2-AP模式,3-AP兼Station模式
响应:
OK
说明:
需重启后生效(AT+RST)
将模块设置为模式1,此时刷新网络列表可见由ESP8266建立的网络从列表中消失了
(3)查看当前无线路由器列表
发送命令:
AT+CWLAP(执行指令)
指令:
响应:
正确:
(终端返回AP列表)
+CWLAP:
,,
OK
错误:
ERROR
说明:
:
0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
:
字符串参数,接入点名称
:
信号强度
如搜索不到信号,响应:
请重新上电并严格按照AT命令再发送一遍。
没有列表返回的时候请耐心等待,否则会出现“busy”
(4)加入当前无线网络
发送命令:
AT+CWJAP=”MERSAIN”,”XXXXXXXX”(设置指令)
指令:
AT+CWJAP=,
说明:
:
字符串参数,接入点名称
:
字符串参数,密码,最长64字节ASCII
响应:
正确:
OK
错误:
ERROR
检测是否真的连上该路线网络
发送命令:
AT+CWJAP?
(查询指令)
指令:
AT+CWJAP?
响应:
返回当前选择的AP
+CWJAP:
OK
说明:
:
字符串参数,接入点名称
断电。
上电后发送AT+CWJAP?
,返回同上,系统保持上次的状态。
查看模块IP地址
发送命令:
AT+CIFSR(执行指令)
指令:
AT+CIFSR
响应:
正确:
+CIFSR:
OK
错误:
ERROR
说明:
:
字符串参数,接入点名称
群里(@云海之梦)反映:
错误的SSID也可以连接上,测试后发现果然如此,输入实际不存在的账号密码返回也是OK
但发送AT+CIFSR(查看模块地址),返回ERROR,可通过此命令来判断有没有真正连接上。
2.Server方法收发
(0)查询此时模块状态(该步骤可省略)
发送命令AT+CWMODE?
(查询指令)
指令:
AT+CWMODE?
说明:
查看本模块的WIFI应用模式
响应:
+CWMODE:
OK
说明:
:
1-Station模式,2-AP模式,3-AP兼Station模式
发送命令AT+CIPMUX?
(查询指令)
指令:
AT+CIPMUX?
说明:
查询本模块是否建立多连接
响应:
+CIPMUX:
OK
说明:
:
0-单路连接模式,1-多路连接模式
发送命令AT+CIPMODE?
(查询指令)
指令:
AT+CIPMODE?
说明:
查询本模块的传输模式
响应:
+CIPMODE:
OK
说明:
:
0-非透传模式,1-透传模式
发送命令AT+CIPSTO?
(查询指令)
指令:
AT+CIPSTO?
说明:
查询本模块的服务器超时时间
响应:
+CIPSTO:
OK
说明:
服务器超时时间,0~2880,单位为s
(1)开启多连接模式
发送命令:
AT+CIPMUX=1(设置指令)
指令:
AT+CIPMUX=
说明:
:
0-单路连接模式,1-多路连接模式
响应:
OK
查询可知,设置成功
(2)创建服务器
发送命令:
AT+CIPSERVER=1,8080(设置指令)
指令:
AT+CIPSERVER=[,]
说明:
:
0-关闭server模式,1-开启server模式
:
端口号,缺省值为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+CIPSTO=2880(设置指令)
指令:
AT+CIPSTO=
说明:
服务器超时时间,0~2880,单位为s
响应:
OK
(4)建立客户端
界面设置如下图所示:
(5)查看当前连接
发送命令AT+CIPSTATUS(执行指令)
指令:
AT+CIPSTATUS
响应:
STATUS:
+CIPSTATUS:
,,,,
OK
说明:
:
连接的id号0-4
:
字符串参数,类型TCP或UDP
:
字符串参数,IP地址
:
端口号
:
0-本模块做client的连接,1-本模块做server的连接
(6)向某个连接发送数据
发送命令AT+CIPSEND=0,10(设置指令)(通过上一条指令AT+CIPSTATUS得知ID=0)
指令:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSEND=
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSEND=,
响应:
收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回SENDOK
说明:
:
需要用于传输连接的id号
:
数字参数,表明发送数据的长度,最大长度为2048
发:
收:
断开客户端后再发送一次,得到以下响应:
此时连接已建立,可以进行数据的双向收发。
3.Client方法收发
(0)关闭server服务(如果没有开启server服务,可免除此步骤)
发送命令:
AT+CIPSERVER=0(设置指令)
指令:
AT+CIPSERVER=[,]
说明:
:
0-关闭server模式,1-开启server模式
:
端口号,缺省值为333
响应:
OK
说明:
(1)AT+CIPMUX=1时才能开启服务器;关闭server模式需要重启
(2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。
关闭server服务如下图所示:
(1)创建服务器
点击Listening,创建成功后,该按钮变为:
(2)开启多连接模式
发送命令:
AT+CIPMUX=1(设置指令)
指令:
AT+CIPMUX=
说明:
:
0-单路连接模式,1-多路连接模式
响应:
OK
(3)建立TCP连接
发送命令AT+CIPSTART=2,"TCP","192.168.1.109",8080(设置指令)
指令:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSTART=,,
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSTART=,,,
响应:
如果格式正确且连接成功,返回OK,否则返回ERROR
如果连接已经存在,返回ALREAYCONNECT
说明:
:
0-4,连接的id号
:
字符串参数,表明连接类型,”TCP”-建立tcp连接,”UDP”-建立UDP连接
:
字符串参数,远程服务器IP地址
:
远程服务器端口号
如下图所示:
(4)向服务器发送数据
发送命令AT+CIPSEND=2,10(设置指令)(通过上一条指令AT+CIPSTART设置为ID=2)
指令:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSEND=
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSEND=,
响应:
收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回SENDOK
说明:
:
需要用于传输连接的id号
:
数字参数,表明发送数据的长度,最大长度为2048
此时连接已建立,可以进行数据的双向收发。