前言:
本⽂文描述 ESP8266 AT 指令集功能以及使⽤用方法。
指令集主要分为:基础 AT 指令、Wi-Fi 功能 AT 指令、TCP/IP 相关的 AT 指令
TCP/IP 指令描述
AT+CIPSTATUS—查询⽹网络连接信息
参数说明
• :ESP8266 Station 接⼝口的状态
‣ 2:ESP8266 Station 已连接 AP,获得 IP 地址
‣ 3:ESP8266 Station 已建⽴立 TCP 或 UDP 传输
‣ 4:ESP8266 Station 断开⽹网络连接
‣ 5:ESP8266 Station 未连接 AP
• :⽹网络连接 ID (0 ~ 4),⽤用于多连接的情况
• :字符串串参数,“TCP” 或者 “UDP”
• :字符串串,远端 IP 地址
• :远端端⼝口值
• :ESP8266 本地端⼝口值
• :
‣ 0:ESP8266 作为客户端
‣ 1:ESP8266 作为服务器器
AT+CIPDOMAIN—域名解析功能
参数说明:待解析的域名,可⽀支持⻓长度⼩小于 64 的域名
示例例
AT+CWMODE=1 // set Station mode
AT+CWJAP=“SSID”,“password” // access to the internet
AT+CIPDOMAIN=“iot.espressif.cn” // DNS function
AT+CIPSTART—建⽴立 TCP 连接,UDP 传输或 SSL 连接
参数说明
• :⽹网络连接 ID (0 ~ 4),⽤用于多连接的情况
• :字符串串参数,连接类型,“TCP”,“UDP"或"SSL”
• :字符串串参数,远端 IP 地址
• :远端端⼝口号
• []:TCP keep-alive 侦测时间,默认关闭此功能
‣ 0:关闭 TCP keep-alive 功能
‣ 1 ~ 7200:侦测时间,单位为 1s
示例例
AT+CIPSTART=“TCP”,“iot.espressif.cn”,8000
AT+CIPSTART=“TCP”,“192.168.101.110”,1000
详细请参考 ESP8266 AT 指令使⽤用示例例。
建⽴UDP 传输
示例
AT+CIPSTART=“UDP”,“192.168.101.110”,1000,1002,2
详细请参考 ESP8266 AT 指令使⽤用示例。
建立 SSL 连接
注意
• ESP8266 最多仅⽀支持建⽴立 1 个 SSL 连接。
• SSL 连接不不⽀支持透传。
• SSL 需要占⽤用较多空间,如果空间不不⾜足,会导致系统重启。⽤用户可以使⽤用指令
AT+CIPSSLSIZE= 增⼤大 SSL 缓存。
示例例
AT+CIPSSLSIZE=4096
AT+CIPSTART=“SSL”,“iot.espressif.cn”,8443
AT+CIPSSLSIZE—设置 SSL Buffer 容量
参数说明:SSL buffer ⼤大⼩小,取值范围:[2048, 4096]。
示例AT+CIPSSLSIZE=4096
AT+CIPSEND—发送数据
参数说明
• :⽹网络连接 ID 号 (0 ~ 4),⽤用于多连接的情
况
• :数字参数,表明发送数据的⻓长度,最⼤大⻓长
度为 2048
• []:UDP 传输可以设置对端 IP
示例详细请参考 ESP8266 AT 指令使⽤用示例。
AT+CIPSENDEX—发送数据
参数说明
• :⽹网络连接 ID 号 (0 ~ 4),⽤用于多连接的情况
• :数字参数,表明发送数据的⻓长度,最⼤大⻓长度为 2048
• 当接收数据⻓长度满 length 或者遇到字符 \0 时,发送数据,回到普通指令模式,等待下⼀一条 AT 指令。
• ⽤用户如需发送 \0,请转义为 \0。
AT+CIPSENDBUF—数据写⼊入 TCP 发包缓存
参数说明
• :⽹网络连接 ID 号 (0 ~ 4),⽤用于多连接的情况;
• :uint32,给每包写⼊入数据分配的 ID,从 1 开始计数,每写⼊入⼀一包则⾃自加⼀一,计数满则重
新从 1 计数;
• :数据⻓长度,超过⻓长度的数据则丢弃。
说明本指令将数据写⼊入 TCP 发包缓存,⽆无需等待 SEND OK,可连续调⽤用;发送成功后,会返回数据包 ID 及SEND OK。
在数据没有传⼊入完成时,传⼊入 +++ 可退出发送,之前传⼊入的数据将直接丢弃。
SSL 连接不不⽀支持使⽤用本指令。
AT+CIPBUFRESET—重新计数
参数说明:⽹网络连接 ID 号 (0 ~ 4),⽤用于多连接的情况。
注意本指令基于 AT+CIPSENDBUF 实现功能。
AT+CIPBUFSTATUS—查询 TCP 发包缓存的状态
参数说明
• 最多记录最后的 32 个 segment ID 数据包的状态。
• []:⽹网络连接 ID (0~4),⽤用于多连接的情况;
• :调⽤用 AT+CIPSENDBUF 写⼊入数据时分配的 ID;
• :
‣ FALSE:发送失败;
‣ TRUE:发送成功。
注意本指令基于 AT+CIPSENDBUF 实现功能。
AT+CIPCLOSE—关闭 TCP/UDP/SSL 传输
参数说明
AT+CIFSR—查询本地 IP 地址
参数说明
:
ESP8266 SoftAP 的 IP 地址
ESP8266 Station 的 IP 地址
:
ESP8266 SoftAP 的 MAC 地址
ESP8266 Station 的 MAC 地址
注意ESP8266 Station IP 需连上 AP 后,才可以查询。
AT+CIPMUX—设置多连接
注意
• 默认为单连接;
• 只有⾮非透传模式 (AT+CIPMODE=0),才能设置为多连接;
• 必须在没有连接建⽴立的情况下,设置连接模式;
• 如果建⽴立了了 TCP 服务器器,想切换为单连接,必须关闭服务器器 (AT+CIPSERVER=0),服务器器仅⽀支持多连接。
示例AT+CIPMUX=1
AT+CIPSERVER—建立 TCP 服务器器
注意
• 多连接情况下 (AT+CIPMUX=1),才能开启 TCP 服务器器。
• 创建 TCP 服务器器后,⾃自动建⽴立 TCP 服务器器监听。
• 当有 TCP 客户端接⼊入,会⾃自动占⽤用⼀一个连接 ID。
示例AT+CIPMUX=1
AT+CIPSERVER=1,1001
**AT+CIPSERVERMAXCONN—设置服务器器允许建⽴立的最⼤大连接数 ***
注意如需设置最⼤大连接数,请在创建服务器器之前设置。
示例AT+CIPMUX=1
AT+CIPSERVERMAXCONN=2
AT+CIPSERVER=1,80
AT+CIPMODE—设置传输模式
注意
• 本设置不不保存到 Flash。
• 透传模式传输时,如果连接断开,ESP8266 会不不停尝试重连,此时单独输⼊入 +++ 退出透传,则停⽌止重
连;普通传输模式则不不会重连,提示连接断开。
示例AT+CIPMODE=1
AT+SAVETRANSLINK—保存透传到 Flash
注意
• 本设置将透传模式及建⽴立的 TCP 连接均保存在 Flash system parameter 区域,下次上电⾃自动建⽴立 TCP 连
接并进⼊入透传。
• 只要远端 IP,端⼝口的值符合规范,本设置就会被保存到 Flash。
示例例AT+SAVETRANSLINK=1,“192.168.6.110”,1002,"TCP"
AT+CIPSTO—设置 TCP 服务器器超时时间
注意
• ESP8266 作为 TCP 服务器器,会断开⼀一直不不通信直⾄至超时了了的 TCP 客户端连接。
• 如果设置 AT+CIPSTO=0,则永远不不会超时,不建议这样设置。
示例
AT+CIPMUX=1
AT+CIPSERVER=1,1001
AT+CIPSTO=10
AT+PING—Ping 功能
参数说明
• :字符串串参数,IP 地址
•
AT+CIUPDATE—通过 Wi-Fi 升级软件
说明
• 升级过程由于⽹网络条件的好坏,有快慢差异;
• 升级失败会提示 ERROR,请耐⼼心等待。
注意
• 若直接使⽤用乐鑫提供的 AT BIN (/ESP8266_NONOS_SDK/bin/at),本指令将从 Espressif Cloud 下载 AT
固件升级。
• 若⽤用户⾃自⾏行行编译 AT 源代码,则请⾃自⾏行行实现 AT+CIUPDATE 指令的升级功能,乐鑫提供本地升级的 Demo 作
为参考(/ESP8266_NONOS_SDK/example/at)。
• 建议升级 AT 固件后,调⽤用 AT+RESTORE 恢复出⼚厂设置,重新初始化。
AT+CIPDINFO—接收⽹网络数据时是否提示对端 IP 和端⼝口
参数说明
:字符串串参数,IP 地址
• 0:不不显示对端 IP 和端⼝口
• 1:显示对端 IP 和端⼝口
示例例AT+CIPDINFO=1
+IPD—接收⽹网络数据
参数说明
此指令在普通指令模式下有效,ESP8266 接收到⽹网络数据时向串串⼝口发送 +IPD 和数据。
• []:⽹网络通信对端 IP,由指令 AT+CIPDINFO=1 使能显示
• []:⽹网络通信对端端⼝口,由指令 AT+CIPDINFO=1 使能
• :收到⽹网络连接的 ID 号
• :数据⻓长度
• :收到的数据
AT+CIPSNTPCFG—设置时域和 SNTP 服务器器
说明设置指令若未填写 SNTP server,则默认使⽤用 “cn.ntp.org.cn”,“ntp.sjtu.edu.cn”,“us.pool.ntp.org”
示例例AT+CIPSNTPCFG=1,8,“cn.ntp.org.cn”,“ntp.sjtu.edu.cn”,“us.pool.ntp.org”
AT+CIPSNTPTIME—查询 SNTP 时间
示例
AT+CWMODE=1 //设置为 station 模式
AT+CWJAP=“DemoAP”,“password” //连接到路由器,连接网络
AT+CIPSNTPCFG=1,8 //设置时区
AT+CIPSNTPTIME? //查询时间
AT+CIPDNS_CUR—⾃自定义 DNS 服务器器,不不保存到 Flash
说明
• 对于指令 AT+CIPDNS_CUR=1(即设置使能⾃自定义 DNS 服务器器,但未填写 参数),则
默认使⽤用 “208.67.222.222” 作为 DNS 服务器器。
• 对于指令 AT+CIPDNS_CUR=0 (即不不使能⾃自定义 DNS 服务器器),则默认使⽤用 “208.67.222.222” 作为
DNS 服务器器。并且,在与路路由器器交互的过程中,DNS 服务器器可能随着路路由器器的配置更更改。
示例AT+CIPDNS_CUR=1,“208.67.220.220”
AT+CIPDNS_DEF—⾃自定义 DNS 服务器器,保存到 Flash
说明
• 本设置将保存到 Flash ⽤用户参数区。
• 对于指令 AT+CIPDNS_DEF=1(即设置使能⾃自定义 DNS 服务器器,但未填写 参数),则
默认使⽤用 “208.67.222.222” 作为 DNS 服务器器。
• 对于指令 AT+CIPDNS_DEF=0 (即不不使能⾃自定义 DNS 服务器器),则默认使⽤用 “208.67.222.222” 作为
DNS 服务器器。并且,在与路路由器器交互的过程中,DNS 服务器器可能随着路路由器器的配置更更改。
示例例AT+CIPDNS_DEF=1,“208.67.220.220”
以下 ESP8266 AT 指令会保存设置到 Flash:
ESP8266 AT 指令中的提示信息说明如下: