分享一下 ESP8266 无线wifi AT 的常见指令操作详解,按照官方说明整理,如有问题请私信,再次修改。
指令集分为:
- 基础 AT 命令、
- Wifi 功能 AT 命令、
- TCP/IP 工具箱 AT 命令等。
指令分类
- 测试命令 :“该命令用于查询设置命令或内部程序设置的参数以及其取值范围”
- 查询命令 :“该命令用于返回参数的当前值”
- 设置命令 :“该命令用于设置用户自定义的参数值”
- 执行命令:“该命令用于执行受模块内部程序控制的变参数不可变的功能”
注意:
1)不是每条 AT 指令都具备上述 4 类命令。
2)后文指令中[ ]内数据为缺省值,不必填写或可能不显示。
3)波特率 115200。
4)参数为字符串的,需要加上双引号。例如:AT+CWSAP=“ESP_756190”,“20130826”,1,4
基础 AT 命令、
- AT 测试 AT 响应 OK
- AT+RST 重启模块 响应 OK
- AT+GMR 查看版本信息 响应 8 位版本号
wifi 功能指令
-
AT+CWMODE (选择 WIFI 应用模式 )
说明 此指令需重启后生效(AT+RST)。 指令参数<mode>: 1 - Station 模式; 2 - AP 模式; 3 – AP + Station 共存模式。 示例:AT+CWMODE=1,AT+CWMODE? 获取当前模式
-
AT+CWJAP (加入 AP)
说明 指令参数: <ssid>字符串参数,接入点名称 <pwd>字符串参数,密码最长 64 字节 ASCII 示例:AT+CWJAP="wifi_name","1231456",需要连接的wifi 名称和密码
-
AT+CWLAP 列出当前可用 AP
说明 响应参数说明: <ecn>0 OPEN 1 WEP 2 WPA_PSK 3 WPA2_PSK 4 WPA_WPA2_PSK <ssid>字符串参数,接入点名称 <rssi>信号强度 示例:AT+CWLAP 响应 成功,返回AP列表 + CWLAP: <ecn>,<ssid>,<rssi> OK 或者 失败,返回 ERROR
-
AT+CWQAP (退出与 AP 的连接 )
说明 响应参数说明: <ecn>0 OPEN 1 WEP 2 WPA_PSK 3 WPA2_PSK 4 WPA_WPA2_PSK <ssid>字符串参数,接入点名称 <rssi>信号强度 示例:AT+CWQAP=? 响应 成功,返回AP列表 + CWLAP: <ecn>,<ssid>,<rssi> OK 或者 失败,返回 ERROR
-
AT+CWSAP (设置 AP 模式下的参数)
说明 指令参数: <ssid>字符串参数,接入点名称 <pwd>字符串参数,密码最长 64 字节 ASCII <chl>通道号 <ecn>加密方式 0 OPEN 1 WEP 2 WPA_PSK 3 WPA2_PSK 4 WPA_WPA2_PSK 示例:AT+CWSAP="8266","12345678",6,4 (该模块的名称和链接密码,通道和加密方式) 响应 返回当前 AP 参数+CWSAP:<ssid>,<pwd>,<chl>,<ecn>
-
AT+ CWLIF (查看已接入设备的 IP)
说明 <ip addr> : 已接入设备的 IP 地址 示例:AT+ CWLIF 响应 <ip addr> OK
TCP/IP 指令
8. AT+CIPSTATUS (获得连接状态 )
说明
响应值说明:
<id>连接的 id 号 0-4
<type>字符串参数,类型 TCP 或 UDP
<addr>字符串参数,IP 地址
<port>端口号
<tetype>0:本模块做 client 的连接
1:本模块做 server 的连接
示例:AT+CIPSTATUS=1,"TCP","192.168.0.105",1234,1
响应
返回当前模块的连接状态和连接参数。
STATUS:<stat>+ CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>
OK
-
AT+CIPSTART (建立 TCP 连接或注册 UDP 端口号 )
示例:AT+CIPSTART=2,“TCP”,“192.168.1.122”,8080//建立TCP连接 响应 1) 单路链接:若设置 AT+CIPMUX=0+CIPSTART:(<type>取值列表),(<IP address>范围),(<port>范围)+CIPSTART:(<type>取值列表),(<domain name>范围),(<port>范围) OK 2)多路链接: 若设置 AT+CIPMUX=1+CIPSTART:(id),(<type>取值列表),(<IP address>范围),(<port>范围)+CIPSTART: (id), (<type>取值列表),(<domain name>范围),(<port>范 围) OK - 格式正确且连接成功 或者 ERROR – 失败 或者 ALREAY CONNECT - 连接已存在
-
AT+CIPSEND (发送数据)
说明
指令参数:<id>需要用于传输连接的 id 号<length>数字参数,表明发送数据的长度,最大为 2048
示例:AT+CIPSEND (只在透传模式下有效),当输入单独一包”+++”返回指令模式。
设置指令:
1)单路连接时(+CIPMUX=0)AT+CIPSEND=<length>
2)多路连接时(+CIPMUX=1)AT+CIPSEND=<id>,<length>
响应
响应返回指定长度的数据。收到指令后先换行返回”>”,然后开始接收串口数据,当数据长度满 length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回 SEND OK
- AT+CIPCLOSE (关闭 TCP 或 UDP)
说明
指令参数:<id>需要关闭的连接 id 当 id 为 5 时关闭所有连接(开启server 后 id 为 5 无效)
示例:AT+CIPCLOSE=1
响应
如果输入正确,返回OK
如果没有该连接则,返回Link is not
- AT+CIFSR (获取本地 IP 地址 )
说明
AP 模式下该指令无效。
响应返回:<IP address> - 本机当前 IP 地址(station)
示例:AT+CIFSR
+CIFSR:STAIP,"192.168.0.102"
+CIFSR:STAMAC,"64:v3:ec:12:31:a6"
- AT+CIPMUX (启动多连接)
说明
只有当连接都断开后才能更改,如果开启过 server 需要重启模块。
指令参数:<mode>
0 单路连接模式
1 多路连接模式
查询命令:AT+CIPMUX?
设置指令:AT+CIPMUX=<mode>
示例:AT+CIPMUX=1,AT+CIPMUX=0
响应
OK
如果已经处于连接状态则,返回Link is builded
- AT+CIPSERVER (配置为服务器)
说明
指令参数:<mode>
0 关闭 server 模式
1 开启 server 模式
<port>端口号,缺省值为 333
开启 server 后自动建立 server 监听
当有 client 接入会自动按顺序占用一个连接
AT+ CIPMUX=1 时才能开启服务器
示例:
AT+CIPSERVER=1,8080//创建服务器
AT+CIPSERVER=0,8080//关闭服务器
响应
开启 server 后自动建立 server 监听
OK
关闭 server 需要重启
-
AT+CIPMODE (设置模块传输模式)
说明
指令参数:
0 – 非透传模式;
1 – 透传模式
示例 AT+ CIPMODE=0,AT+ CIPMODE=1
响应 OK -
AT+CIPSTO (设置服务器超时时间)
说明
< time>: 0~28800 服务器超时时间,单位为 s
示例:AT+ CIPSTO =1000
接收的数据
+IPD 接收到的数据
实际应用操作
- AT+CWMODE=1
- AT+CWJAP=“dajiating”,“xxxxxxx”
- AT+CIPSTART=“TCP”,“192.168.0.105”,1234
- AT+SAVETRANSLINK=1,“192.168.0.105”,1234,“TCP”
下面说一下ap,sta 模式的理解