ESP8266+ArduinoUNO新手调试指南.docx
- 文档编号:11823834
- 上传时间:2023-04-03
- 格式:DOCX
- 页数:20
- 大小:676.67KB
ESP8266+ArduinoUNO新手调试指南.docx
《ESP8266+ArduinoUNO新手调试指南.docx》由会员分享,可在线阅读,更多相关《ESP8266+ArduinoUNO新手调试指南.docx(20页珍藏版)》请在冰豆网上搜索。
ESP8266+ArduinoUNO新手调试指南
ESP8266模块使用方法
准备工作-硬件接线
硬件:
Wifi模块ESP8266、ArduinoUNO;软件工具:
串口调试工具、USR-TCP232-Test
硬件说明:
Wifi模块ESP8266:
实物图
接口说明
引脚说明:
引脚名
接线说明
与ArduinoUNO相连的接线图
UTXD
UTXD接单片机的RX
3
URXD
URXD接单片机的TX
2
CH_PO
接3.3V,用来选择AT指令模式;
3.3V
VCC
VCC接3.3V
3.3V,千万不要接成5v
GND
接地
GND
说明:
其他引脚悬空即可
接线示意图如下:
实物图:
准备工作-软串口测试
由于ArduinoUNO只有一个串口,为了方便测试,用2,3引脚做一个软串口,并将该软串口与wifi模块的串口连接。
在测试wifi模块之前,先测试软串口是否正常工作。
测试时将引脚3与0短接。
#include
SoftwareSerialmySerial(3,2);//RX,TX
voidsetup()
{
Serial.begin(9600);
while(!
Serial){;}
Serial.println("hardwareserial!
");
mySerial.begin(9600);
mySerial.println("softwareseria");
}
voidloop()
{
if(mySerial.available())
Serial.write(mySerial.read());
if(Serial.available())
mySerial.write(Serial.read());
}
软串口测试完成后,完成硬件连接,打开串口调试工具,上电后上电后,蓝色灯微弱闪烁后熄灭,红灯长亮,打开串口工具,出现如下图:
软硬串口测试
如果复位出现乱码,改下波特率即可。
(注意:
使用串口调试工具时要勾选
选项)
当然Arduino内置的串口调试工具也可以,但是要记得选择【BothNL&CR】,如下图:
这里使用串口调试工具。
还有一种选择是直接使用USR-TCP232-Test中的串口调试工具。
ESP8266可以配置成station(即client模式)、AP(即wifi热点模式)、station+AP三种模式,就是说模块可以当成一个设备(client)连接局域网内的路由,也可以设置成是一个路由(sever),也可以既作为局域网里面的client同时又是其他client的sever。
同时该模块支持tcp传输,既可以配置为tcpserver也可以配置为tcpclient。
下面分别来介绍一下:
AP模式下做为tcpserver
0.1
发送复位命令:
AT+RST(执行指令)
指令:
AT+RST
响应:
OK
现象如下:
注意:
复位需要时间,需要稍等片刻,等ready出现后再进行下一步操作。
测试时发现,有时候复位已经结束,但是ready字符并没有出现,此时可发送一条指令测试一下。
0.2
发送查询模块传输模式:
AT+CIPMODE?
查询模块传输模式
返回:
1透传,0不透传
配置命令需要在非透传模式下
1
查看版本号
2
发送查询工作模式命令:
AT+CWMODE?
响应:
+CWMODE:
3
OK
说明:
工作模式1-Station模式,2-AP模式,3-AP兼Station模式
3
发送设置工作模式命令:
AT+CWMODE=2(设置指令)
指令:
AT+CWMODE=
说明:
1-Station模式,2-AP模式,3-AP兼Station模式
响应:
OK
特别提醒:
很多资料都说设置了工作模式,需重启后生效(AT+RST),
但是在测试过程中发现一旦重启,模块就回到默认工作模式3了,所以我在测试过程中没有重启。
4
发送查询工作模式命令:
AT+CWMODE?
响应:
+CWMODE:
2
OK
5
发送命令:
AT+CWSAP="ESP8266","0123456789",11,0
指令:
AT+CWSAP=
说明:
指令只有在AP模式开启后有效
字符串参数,接入点名称
字符串参数,密码最长64字节,ASCII
通道号
0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
响应:
OK
设置完成后,就可以通过手机或者电脑连接到ESP8266上了。
连接完成后如下:
6
发送模块IP地址命令:
AT+AT+CIFSR
7
发送查看接入的客户端IP命令:
AT+CWLIF
响应:
已经连接到ap的客户端ip地址
8
发送查询连接模式命令:
AT+CIPMUX?
说明:
默认是单连接,如果作为server必须开启多连接模式
9
发送开启多连接模式命令:
AT+CIPMUX=1
响应:
OK
10
发送查询连接模式命令:
AT+CIPMUX?
11
发送开启服务器模式命令:
AT+CIPSERVER=1,8888(设置指令)
指令:
AT+CIPSERVER=
说明:
0-关闭server模式,1-开启server模式
端口号,缺省值为333
响应:
OK
说明:
(1)AT+CIPMUX=1时才能开启服务器;关闭server模式需要重启
(2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。
11.1可选
设置服务器超时时间
发送命令AT+CIPSTO=2880(设置指令)
指令:
AT+CIPSTO=
说明:
服务器超时时间,0~2880,单位为s
响应:
OK
12
设置完成后。
关闭串口调试工具,然后打开USR-TCP232-Test工具,设置连接。
同样不要忘记先配置一下串口数据发送,如下:
网络连接:
注意:
测试的时候如果发现连接不上,可以更换端口试试。
如果连接不上常见原因是网络断了,重新连接一下即可。
模块做server时,默认的ip地址为:
192.168.4.1
13
发送查询连接信息命令:
AT+CIPSTATUS
说明:
返回当前模块的连接状态和连接参数
STATUS:
参数说明:
本模块做client的连接1:
本模块做server的连接
14
发送命令AT+CIPSEND=0,10(设置指令)(通过上一条指令AT+CIPSTATUS得知ID=0)
15
发送数据
16
总结命令序列:
AT+RST
AT+CIPMODE?
AT+CIPMODE=0
AT+GMR
AT+CWMODE?
AT+CWMODE=2
AT+CWMODE?
AT+CWSAP="ESP8266","0123456789",11,0
AT+CWLIF
AT+CIPMUX?
AT+CIPMUX=1
AT+CIPMUX?
AT+CIPSERVER=1,8888
AT+CIPSTATUS
AT+CIPSEND=0,10
0123456789
Station+AP模式下做为tcpclient
配置过程:
(1)AT+RST//复位
(2)AT+CWMODE?
//查询工作模式,如果不是3则执行下面指令
(3)AT+CWMODE=3//设置为station+ap兼容模式
//注意:
如果重启,重启之后模式也会自动变成3,默认是3模式
(4)AT+CWLAP//查看可以网络
前面几步的结果如下:
(5)AT+CWJAP="lilywang-2.4G","密码"
//连接自己要连接的网络,前面是SSID,后面是密码,具体AT指令可以参考官方的AT集,测试时发现一个很奇怪的问题,这条指令会导致模块复位。
注意:
有可能会出现假连接的情况,明明没有连接成功,也显示连接成功,会导致后面建立连接时失败,如果发现后面创建连接失败,可重复该命令,保证连接成功。
(6)AT+CIFSR//返回模块的IP地址说明已经正确连接到路由器
(7)AT+CIPMUX=1//打开多连接否则会报错Linktyperror
(8)AT+CIPSERVER=0//设置为tcp客户端模式,即关闭server模式,注意此处一定要注意,如果该步骤没有成功则连接时会出现错误:
注意:
很多资料都说需要重启,但是不重启发现也可以,如果配置中发现有问题可以试下重启。
然后,在USR-TCP232-Test工具中打开监听,首先获取pc机或者笔记本的ip和端口号,查看方法:
开始-运行-cmd打开命令行工具,输入命令:
ipconfig
打开pc端的监听,如下:
(9)AT+CIPSTART=0,"TCP","192.168.1.11",9999,建立连接id=0,tcp连接,连接服务器地址192.168.1.11,端口号为9999,执行成功如下:
如果连接已经成功,重复连接,会出现如下结果:
注意:
如果连接不成功,一般出现以下错误
此时,注意重新执行AT+CIPSERVER=0命令即可
(10)查看已经创建的连接信息,发送指令AT+CIPSTATUS,结果如下:
说明模块已经以客户端的身份与192.168.1.11通过端口9999建立了tcp连接,连接号id=0。
(11)发送数据AT+CIPSEND=0,10//发送10个字符给服务器,如果响应为>,则代表连接成功,发送数据即可。
0123456789//要发送的数据
注意:
有时候,发送数据指令会发生错误,如:
出现该错误的原因一般是因为发送数据时的id和建立连接时的id不匹配。
此时,执行查询连接信息指令:
AT+CIPSTATUS,查看连接id,重新发送即可。
正确的结果如下:
(12)总结一下指令序列:
AT+RST
AT+CWMODE?
AT+CWLAP
AT+CWJAP="lilywang-2.4G","8505251234"
AT+CIFSR
AT+CIPMUX=1
AT+CIPSERVER=0
AT+CIPSTART=0,"TCP","192.168.1.11",9999
AT+CIPSTATUS
AT+CIPSEND=0,10
01234567890
Station模式下做为tcpclient
命令序列:
AT+RST
AT+CWLAP
AT+CWMODE?
AT+CWMODE=1
AT+CWMODE?
AT+CWJAP="lilywang-2.4G","8505251234"
AT+CIFSR
AT+CIPMUX=1
AT+CIPSERVER=0
AT+CIPSTART=0,"TCP","192.168.1.11",9999
AT+CIPSTATUS
AT+CIPSEND=0,10
0123456789
注意:
由于测试中发现AT+CWLAP指令会导致模块复位,所以该指令放在前面做。
其他模式
其他模式与上面的步骤类似,不再赘述。
ESP8266常用AT指令
指令
说明
AT+GMR
查看版本号
AT+RST
重启
AT+CWMODE=mode
设置工作模式(mode=1、2、3:
1为station模式,2为AP模式,3为station+ap,默认为3)
AT+CWMODE?
查询工作模式
AT+CWLIF
查看接入的客户端IP
AT+CWLAP
返回AP列表
AT+CWJAP="ssid","密码"
加入AP
AT+CIFSR
获取本模块ip
AT+CIPSTART=id,"TCP",ip,port
连接服务器,例如AT+CIPSTART=0,"192.168.1.2",8888,含义:
连接192.168.1.2的端口8888,连接id=0
AT+CIPMODE?
查询模块传输模式 1透传,0不透传
AT+CIPMODE=1
设置模块传输模式
AT+CIPMUX=1
0单路连接模式,1多路连接模式
AT+CIPMUX?
查询连接模式
AT+CIPSERVER=1,8888
配置为服务器,并监听端口8888
AT+CIPSERVER=0
配置为客户端模式
指令:
AT+CIPSERVER=
说明:
0-关闭server模式,1-开启server模式
端口号,缺省值为333
响应:
OK
说明:
(1)AT+CIPMUX=1时才能开启服务器;关闭server模式需要重启
(2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。
AT+CIPSTATUS
返回当前模块的连接状态和连接参数
STATUS:
本模块做client的连接1:
本模块做server的连接
AT+CIPSEND=id,发送数据长度
Eg:
AT+CIPSEND=0,10
通过id=0的连接发送10个字符数据
指令说明:
1)单路连接时(+CIPMUX=0),指令为:
AT+CIPSEND=
2)多路连接时(+CIPMUX=1),指令为:
AT+CIPSEND=
响应:
收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回SENDOK
说明:
需要用于传输连接的id号
数字参数,表明发送数据的长度,最大长度为2048
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ESP8266 ArduinoUNO 新手 调试 指南