我是靠谱客的博主 酷炫小蘑菇,最近开发中收集的这篇文章主要介绍ESP8266 ESP-01调试全过程– 使用指导,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

ESP8266 ESP-01调试全过程– 使用指导                    测试&编写&汇总by fairyhui  

一 接线

注意:本系统是3.3V ! 请勿接5V !

新版(全IO口引出版):

此版本若想从FLASH启动进入AT系统,只需CH-PD引脚接VCC或接上拉(不接上拉的情况下,串口可能无数据),其余三个引脚可选择悬空或接VCC

GPIO0为高电平代表从FLASH启动,GPIO0为低电平代表进入系统升级状态,此时可以经过串口升级内部固件

RSTGPIO16)可做外部硬件复位使用)

测试系统不同,接线方法也选择多多,请各位根据自己的情况进行选择,推荐接法:在CH-PDVCC之间焊接电阻后,将UTXD,GND,VCC,URXD连上USB-TTL(两者的TXDRXD交叉接)即可进行测试


旧版(AT指令版):

 该版本中间四根线悬空即可。

 

群里(@ZR(小R))反应:接线正确的情况下,连上USB转TTL,红灯蓝灯闪烁一下以后全灭,此现象为模块电流过大,超过了USB转TLL模块的承受范围。解决办法:1. CH-PD换一个阻值更大的上拉电阻;2.换个承受电流大一点USB转TLL模块(群众们也可以自己改造)

(@ZR(小R))反应:在供电不足的情况下,收到的响应为乱码。请各位检查下供电电压是否足够。

二 上电:正常工作验证

本模块可以工作在三种模式:1. STA  2.AP  3 .AP+STA,出厂设置为第三种

上电后,蓝色灯微弱闪烁后熄灭,红灯长亮

1. 搜索无线网络,可见ESP_XXXXXX已经处于列表中(后面的数字是MAC地址后几位)

 

连接该网络以后,查看连接状态:

 

手机搜索该网络,也可连接上:

 

2.       使用USR-TCP232-Test.exe进行测试:

软件配置如下图:

注意:(1)波特率一般在出厂情况下默认的是115200。如果在115200情况下收到的是乱码可以试试其他波特率(旧版本的默认波特率可能是其他数值)。

(2)在输入命令后必须再按一下回车键,然后再按发送!

 

3.       使用sscom42.exe进行测试

注意:勾选上“发送新行”

发送命令AT+RST(重启模块),返回如下:

 

三 测试

测试前先阅读:(1)Espressif IoT AT指令集_v0.1.5.pdf         描述了该模块支持的AT命令

 测试例程  

原来推荐的测试例程比较粗略,这里放上我自己的测试过程,理解可能有误,仅供参考。

请勿直接复制指令,部分格式经过WORD编辑后有误!可能导致出错!

(一)AP模式

1. 建立AP      

  (1)重启模块

        发送命令:AT+RST(执行指令)

        指令:AT+RST

    响应:OK

  (2)设置模块

        发送命令:AT+CWMODE=3AT+CWMODE=2(设置指令)

        指令:AT+CWMODE=<mode>

       说明:<mode>:1-Station模式,2-AP模式,3-APStation模式

        响应: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-OPEN1-WEP2-WPA_PSK3-WPA2_PSK4-WPA_WPA2_PSK

        响应:OK

 

刷新无线网络列表,可见到SSID为TEST的无线网络列于其中:

 

注意:此时连接网络会可能出现连接不上的情况,请发送AT+RST命令并等待几分钟之后再连接

(4)查看已接入设备的IP

连接上TEST后发送命令:AT+CWLIF(执行指令)

指令:AT+CWLIF

说明:查看已接入设备的IP

响应:<ip addr>

     

OK

说明:<ip addr>:已接入设备的IP地址

 

如果返回命令如下:

表示网络成功建立,目前无设备连入。

如果无线网络实际已连接上,请等待几分钟后再发送AT+CWLIF命令进行查询。

(4)查询本机IP地址

发送命令:AT+CIFSR(执行指令)

指令:AT+CIFSR

说明:查看本模块的IP地址

      注意:AP模式下无效!会造成死机现象!

响应:<ip addr> 

说明:<ip addr>:本模块IP地址

 

实际测试中并未发生死机现象

查看本机配置模式:CWMODE=2,为AP模式。

 

发送命令:AT+CIFSR=?(测试指令),返回响应如下:

 

同样未出现死机现象。

2. Server方法收发

(0)查询此时模块状态(该步骤可省略)

  发送命令 AT+CWMODE?(查询指令)

指令:AT+CWMODE?

说明:查看本模块的WIFI应用模式

响应:+CWMODE:<mode>

     

OK

说明:<mode>:1-Station模式,2-AP模式,3-APStation模式

发送命令AT+CIPMUX? (查询指令)

指令:AT+CIPMUX?

说明:查询本模块是否建立多连接

响应:+CIPMUX:<mode>

 

OK

说明:<mode>:0-单路连接模式,1-多路连接模式

 

发送命令AT+CIPMODE? (查询指令)

指令:AT+CIPMODE?

说明:查询本模块的传输模式

响应:+ CIPMODE:<mode>

 

OK

说明:<mode>:0-非透传模式,1-透传模式

 

发送命令AT+CIPSTO? (查询指令)

指令:AT+CIPSTO?

说明:查询本模块的服务器超时时间

响应:+ CIPSTO:<time>

 

OK

说明:<time>:服务器超时时间,0~2880,单位为s

(1)开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=<mode>

说明:<mode>:0-单路连接模式,1-多路连接模式

响应:OK

 

查询可知,设置成功

 

(2)创建服务器

发送命令:AT+CIPSERVER=1,8080(设置指令)

指令:AT+CIPSERVER=<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+CIPSTO=2880 (设置指令)

指令:AT+CIPSTO=<time>

说明:<time>:服务器超时时间,0~2880,单位为s

响应:OK

(4) 建立客户端

  (5)查看当前连接

发送命令AT+CIPSTATUS (执行指令)

指令:AT+CIPSTATUS

响应:STATUS:<stat>

+CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>

     

      OK

说明:<id>:连接的id0-4

<type>:字符串参数,类型TCPUDP

<addr>:字符串参数,IP地址

<port>:端口号

<tetype>: 0-本模块做client的连接,1-本模块做server的连接

(之前电脑的USB无线网卡发烫厉害,拔出后重新插上,再次连接后自动分配的端口产生了变化,所以刷出了两个客户端,实际中存在的仅有ID=1的客户端)

  (6) 向某个连接发送数据

发送命令AT+CIPSEND=1,6(设置指令(通过上一条指令AT+CIPSTATUS得知ID=1

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length>

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= <id>,<length>

响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满length时发送数据。

如果未建立连接或连接被断开,返回ERROR

如果数据发送成功,返回 SENDOK

说明:<id>:需要用于传输连接的id

<length>:数字参数,表明发送数据的长度,最大长度为2048

断开客户端后再发送一次,得到以下响应:

 

发送数据长度大于LENGTH时响应如下(HELLO!为之前一次发送的数据)

    此时连接已建立,可以进行数据的双向收发。

用客户端向ESP8266发送数据,正常。

 

3. Client方法收发

  (0) 关闭server服务   (如果没有开启server服务,可免除此步骤)

发送命令:AT+CIPSERVER=0(设置指令)

指令:AT+CIPSERVER=<mode>[,<port>]

说明:<mode>:0-关闭server模式,1-开启server模式

     <port>:端口号,缺省值为333

响应:OK

说明:(1) AT+ CIPMUX=1时才能开启服务器;关闭server模式需要重启

(2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。

关闭server服务如下图所示:

 

(1) 创建服务器

 

 

点击Listening,创建成功后,该按钮变为:

 

(2) 开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=<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

如果连接已经存在,返回 ALREAYCONNECT

说明:<id>:0-4,连接的id

<type>:字符串参数,表明连接类型,”TCP”-建立tcp连接,”UDP”-建立UDP连接

<addr>:字符串参数,远程服务器IP地址

<port>:远程服务器端口号

    如下图所示:

 

(4) 向服务器发送数据

发送命令AT+CIPSEND=2,8(设置指令(通过上一条指令AT+CIPSTART设置为ID=2

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length>

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= <id>,<length>

响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满length时发送数据。

如果未建立连接或连接被断开,返回ERROR

如果数据发送成功,返回 SENDOK

说明:<id>:需要用于传输连接的id

<length>:数字参数,表明发送数据的长度,最大长度为2048

 

接收正确,超过8个字符的部分不接收。

此时连接已建立,可以进行数据的双向收发。用服务器向ESP8266发送数据,正常。

 

 

(二)STA模式

1.建立STA

(1) 重启模块

发送命令:AT+RST(执行指令)

        指令:AT+RST

响应:OK

 (2) 设置模块

        发送命令:AT+CWMODE=3AT+CWMODE=1(设置指令)

        指令:AT+CWMODE=<mode>

       说明:<mode>:1-Station模式,2-AP模式,3-APStation模式

        响应:OK

说明:需重启后生效(AT+RST)

 

将模块设置为模式1,此时刷新网络列表可见由ESP8266建立的网络从列表中消失了

(3) 查看当前无线路由器列表

发送命令:AT+CWLAP(执行指令)

指令:AT+CWLAP

       响应:正确:(终端返回AP列表)

+CWLAP: <ecn>,<ssid>,<rssi>

OK

错误:ERROR

说明:<ecn >:0-OPEN1-WEP2-WPA_PSK3-WPA2_PSK4-WPA_WPA2_PSK

<ssid>:字符串参数,接入点名称

<rssi>:信号强度

 

如搜索不到信号,响应:

 

请重新上电并严格按照AT命令再发送一遍。

没有列表返回的时候请耐心等待,否则会出现“busy”

(4) 加入当前无线网络

发送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”(设置指令)

指令:AT+CWJAP=<ssid>,<pwd >

说明:<ssid>:字符串参数,接入点名称

<pwd>:字符串参数,密码,最长64字节ASCII

响应:正确:OK

错误:ERROR

 

检测是否真的连上该路线网络

发送命令:AT+CWJAP?(查询指令)

指令:AT+CWJAP?

响应:返回当前选择的AP

 + CWJAP:<ssid>

 

 OK

说明:<ssid>:字符串参数,接入点名称

 

断电。上电后发送AT+CWJAP?,返回同上,系统保持上次的状态。

查看模块IP地址

发送命令:AT+CIFSR(执行指令)

指令:AT+CIFSR

响应:正确:+CIFSR:<IP address>

           

OK

错误:ERROR

说明:<ssid>:字符串参数,接入点名称

  

2. Server方法收发

(0)查询此时模块状态(该步骤可省略)

  发送命令 AT+CWMODE?(查询指令)

指令:AT+CWMODE?

说明:查看本模块的WIFI应用模式

响应:+CWMODE:<mode>

      OK

说明:<mode>:1-Station模式,2-AP模式,3-APStation模式

发送命令AT+CIPMUX? (查询指令)

指令:AT+CIPMUX?

说明:查询本模块是否建立多连接

响应:+CIPMUX:<mode>

 

OK

说明:<mode>:0-单路连接模式,1-多路连接模式

 

发送命令AT+CIPMODE? (查询指令)

指令:AT+CIPMODE?

说明:查询本模块的传输模式

响应:+ CIPMODE:<mode>

 

OK

说明:<mode>:0-非透传模式,1-透传模式

 

发送命令AT+CIPSTO? (查询指令)

指令:AT+CIPSTO?

说明:查询本模块的服务器超时时间

响应:+ CIPSTO:<time>

 

OK

说明:<time>:服务器超时时间,0~2880,单位为s

(1)开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=<mode>

说明:<mode>:0-单路连接模式,1-多路连接模式

响应:OK

 

查询可知,设置成功

 

(2)创建服务器

发送命令:AT+CIPSERVER=1,8080(设置指令)

指令:AT+CIPSERVER=<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+CIPSTO=2880 (设置指令)

指令:AT+CIPSTO=<time>

说明:<time>:服务器超时时间,0~2880,单位为s

响应:OK

(4) 建立客户端

界面设置如下图所示:

  (5)查看当前连接

发送命令AT+CIPSTATUS (执行指令)

指令:AT+CIPSTATUS

响应:STATUS:<stat>

+CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>

     

      OK

说明:<id>:连接的id0-4

<type>:字符串参数,类型TCPUDP

<addr>:字符串参数,IP地址

<port>:端口号

<tetype>: 0-本模块做client的连接,1-本模块做server的连接

  (6) 向某个连接发送数据

发送命令AT+CIPSEND=0,10(设置指令(通过上一条指令AT+CIPSTATUS得知ID=0

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length>

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= <id>,<length>

响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满length时发送数据。

如果未建立连接或连接被断开,返回ERROR

如果数据发送成功,返回 SENDOK

说明:<id>:需要用于传输连接的id

<length>:数字参数,表明发送数据的长度,最大长度为2048

发:

 收:

断开客户端后再发送一次,得到以下响应:

 

    此时连接已建立,可以进行数据的双向收发。

3. Client方法收发

  (0) 关闭server服务   (如果没有开启server服务,可免除此步骤)

发送命令:AT+CIPSERVER=0(设置指令)

指令:AT+CIPSERVER=<mode>[,<port>]

说明:<mode>:0-关闭server模式,1-开启server模式

     <port>:端口号,缺省值为333

响应:OK

说明:(1) AT+ CIPMUX=1时才能开启服务器;关闭server模式需要重启

(2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。

关闭server服务如下图所示:

 

(1)创建服务器

 

点击Listening,创建成功后,该按钮变为:

 

(2) 开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=<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

如果连接已经存在,返回 ALREAYCONNECT

说明:<id>:0-4,连接的id

<type>:字符串参数,表明连接类型,”TCP”-建立tcp连接,”UDP”-建立UDP连接

<addr>:字符串参数,远程服务器IP地址

<port>:远程服务器端口号

    如下图所示:

 

(4) 向服务器发送数据

发送命令AT+CIPSEND=2,10(设置指令(通过上一条指令AT+CIPSTART设置为ID=2

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length>

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= <id>,<length>

响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满length时发送数据。

如果未建立连接或连接被断开,返回ERROR

如果数据发送成功,返回 SENDOK

说明:<id>:需要用于传输连接的id

<length>:数字参数,表明发送数据的长度,最大长度为2048

 

此时连接已建立,可以进行数据的双向收发。

 

请使用手机"扫一扫"x

最后

以上就是酷炫小蘑菇为你收集整理的ESP8266 ESP-01调试全过程– 使用指导的全部内容,希望文章能够帮你解决ESP8266 ESP-01调试全过程– 使用指导所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部