关于对ESP-WROOM-02模组的AT指令配置学习记录
使用模块需要注意的部分问题
1、确保ESP-WROOM-02模组(内嵌ESP8266EX芯片)的芯片有固件,不然需要到官网下载固件包进行烧录,烧录有一些需要注意的地方(管脚的拉高拉低等),给出固件库参考链接:AT固件库。一般我们购买的模组芯片都会带有固件包。
2、供电电压以及供电电流要达到数据手册给出的要求(3.3V 500mA),数据手册链接如下:ESP-WROOM-02 技术规格书。
3、如遇到使用模块进行配置测试时,发送AT指令无返回ok情况,首先检查供电有无问题。如无问题,用示波器观测发送端管脚TXD的波形,一路监测信号到模块的RXD管脚,如无问题,则AT指令信号成功发入模块,若此情况下还是没返回任何指令。用示波器观测模块的TXD管脚,若无波形,恭喜你,模块坏了换一个吧,若有波形则一路观测该信号线至连接PC端处,寻找问题。
4、在解决问题问题3时,需要先确保PC 串串⼝口⼯工具,⽤用于向 ESP8266 发送 AT 指令满足(如下图所示):(1)波特率设置为 115200 (2)AT 指令要求以新⾏行行(CR LF)结尾,串串⼝口⼯工具应⽀支持 “新⾏行行模式”。
硬件准备
1、硬件:串口+ESP-WROOM-02模组
2、连接方式
在功能测试时,IO0悬空或者拉高,下载固件库时才将IO0拉低,如图所示;
一、基本AT指令配置学习
1、AT启动
AT //指令,在串口调试助手中输入,记得加上新行。
OK //串口调试助手返回信息
2、模块重启
AT+RST //指令,在串口调试助手中输入,记得加上新行。
OK //串口调试助手返回信息
3、查询版本信息
AT+GMR //指令,在串口调试助手中输入,记得加上新行。
//串口调试助手返回信息
AT version:1.6.2.0(Apr 13 2018 11:10:59) //AT版本信息
SDK version:2.2.1(6ab97e9) //ADK版本信息
compile time:Jun 7 2018 19:34:26 //编译生成时间
Bin version(Wroom 02):1.6.2
OK
4、恢复出厂设置
AT+RESTORE //指令
OK //串口调试助手返回信息
二、WIFI AT指令配置学习
1、单连接 TCP Client
AT+CWMODE=3 // 配置WIFI模式 softAP+station mode
OK
AT+CWJAP_CUR="TP-TPX","C7TX52I68" //连接路由器
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIFSR //查询设备的IP地址
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"4e:11:ae:01:e2:eb"
+CIFSR:STAIP,"192.168.1.133"
+CIFSR:STAMAC,"14:cf:11:22:33:05"
OK
接下来使用网络调试助手建立一个TCP服务器,由上可知无线IP为192.168.113,创建一个
IP为192.168.1.177的服务器,端口号设置为15000(一般建议不要用8080端口号);
如下图所示:
AT+CIPSTART="TCP","192.168.1.177",15000 //ESP8266 设备作为TCP client
连接到上述服务器
CONNECT
OK
AT+CIPSEND=4 //ESP8266 设备向服务器器发送数据
> PTXK
Recv 4 bytes
当 ESP8266 设备接收到服务器器发来的数据(PTXKBeiJing),将提示如下信息:
+IPD,11:PTXKBeiJing //11代表字符个数
2、UDP传输(UDP 传输不不区分 server 或者 client)
AT+CWMODE=3 // 配置WIFI模式为混合模式
OK
/* 连接路由器、 查询IP地址、等指令按单连接TCP方式设置*/
/*在网络调试助手创建UDP IP为:192.168.1.117 端口号为:15000 */
AT+CIPMUX=1 //使能多连接
OK
AT+CIPSTART=4,"UDP","192.168.1.177",15000,1112,0 //创建 UDP 传输,分配号4
4,CONNECT
OK
说明:
示例例指令中的参数说明如下:
• "1192.168.1.177",15000 为 UDP 传输的远端 IP 和端⼝口,即前⽂文步骤 4 中
PC 建⽴立的 UDP 端⼝口;
• 1112 为 ESP8266 本地的 UDP 端⼝口,⽤用户可⾃行设置,如不不设置则为随机值;
• 0 表示当前 UDP 传输建⽴立后,UDP 远端不不会被其他设备更更改;
即使有其他设备通过 UDP 协议发数据到ESP8266 UDP 端⼝口 1112,ESP8266 的第4号
UDP 传输的远端也不不会被替换,使⽤用指令“AT+CIPSEND=4, X” 发送数据,仍然是当
前固定的 PC 端收到。
AT+CIPSEND=4,7 // Send 7 bytes to transmission NO.4 发送数据
OK
>
busy s...
Recv 7 bytes
SEND OK
当 ESP8266 设备接收到服务器器发来的数据(PTXKBeiJing ),将提示如下信息:
+IPD,4,11:PTXKBeiJing // received 11 bytes, data=PTXKBeiJing
AT+CIPCLOSE=4 //断开UDP传输
4,CLOSED
OK
当使⽤用 AT+CIPSTART 指令创建 UDP 通信,将最后⼀一个参数设置为 2 时,
UDP 通信的远端可改变。(在此之前先改为单连接模式)
AT+CIPMUX=0 //关闭多连接
OK
AT+CIPSTART="UDP","192.168.1.177",15000,1112,2 //创建UDP传输
CONNECT
OK
AT+CIPSEND=7 // Send 7 bytes 发送数据
OK
> pdxkudp
busy s...
Recv 7 bytes
SEND OK
AT+CIPCLOSE //断开UDP传输
OK
三、透传
3.1 单连接TCP透传
AT+CWMODE=3 // softAP+station mode
OK
/* 连接路由器、 查询IP地址、等指令按单连接TCP方式设置*/
/*在网络调试助手创建TCP服务器 IP为:192.168.1.117 端口号为:15000 */
AT+CIPSTART="TCP","192.168.1.177",15000 //ESP8266 设备作为 TCP client
连接到上述服务器
CONNECT
OK
AT+CIPMODE=1 // 使能透传模式
OK
AT+CIPSEND // ESP8266 设备向服务器器发送数据
/* 开启透传后,模块作为client端与PC端服务器连接,可以无限互相发送数据*/
/*在透传发送数据过程中,若识别到单独的⼀一包数据 “+++”,则退出透传发送。数
据包“+++”取消新行模式,即不发送新行,等待数秒退出透传状态(此时还未断开连接)*/
AT+CIPMODE=0 //断开透传模式
OK
AT+CIPCLOSE //断开TCP连接
CLOSED
OK
3.2 UDP透传
AT+CWMODE=3 //配置WIFI模式
OK
/* 连接路由器、 查询IP地址、等指令按UDP传输方式设置*/
/*在网络调试助手创建UDP IP为:192.168.1.117 端口号为:15000 */
AT+CIPSTART="UDP","192.168.1.117",15000,2233,0 //建立UDP连接
OK
AT+CIPMODE=1 //使能透传模式
OK
/* 开启透传后,模块通过UDP方式与服务器可以无限互相发送数据*/
/*在透传发送数据过程中,若识别到单独的⼀一包数据 “+++”,则退出透传发送。数
据包“+++”取消新行模式,即不发送新行,等待数秒退出透传状态(此时还未断开连接)*/
AT+CIPMODE=0 //断开透传模式
OK
AT+CIPCLOSE //断开TCP连接
CLOSED
OK
补充
1、ESP8266的应用模式:ESP266支撑单AP模式、单STA模式和混合模式。简单的来说就是:
AP:可以将ESP8266作为热点,可以让其他的设备连接上它;
STA:可以连接上当前环境下的WIFI热点。
AP+STA混合模式:既具备AP功能,又可使用STA功能。
2、什么是透传模式?
透传就是指不需要关心wifi协议是如何实现的。所需要做的就是A通过串口发数据,B通过串口收数据,整个过程中A串口和B串口就像是用导线直接连接起来了一样。则对于开发人员来看,就是完全透明的。
也可以下面这样简单理解:
如果不开启透传模式,我们怎么发送数据呢?在每次发数据之前都要发送AT+CIPSEND=4指令,如下:
AT+CIPSEND=4
OK
> //在 > 后面输入要上传的数据
但是在开启透传模式后(AT+CIPMODE=1),不需要在每次发送数据前都发送指令AT+CIPSEND=param (字符个数)了,只需要发送一次AT+CIPSEND,之后发送的所有内容全部当成是数据了!
如果不想发数据了,就要退出透传模式再发其他指令,怎么退出?发送数据"+++"就可以了。注意:此时“+++”后面,不接“发送新行”!
PS:第一次发文档,如有不当之处请多多指教,希望能够与大家共同学习共同进步,如有错误之处欢迎大家指出。