打印
[技术问答]

ESP8266 无线wifi AT 指令操作详解

[复制链接]
4073|56
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
saservice|  楼主 | 2023-8-26 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
指令集分为:

基础 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”
————————————————
版权声明:本文为CSDN博主「闰土小蒋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35653974/article/details/126700280

使用特权

评论回复
沙发
tpgf| | 2023-9-8 13:11 | 只看该作者
AT指令是应用于终端设备与PC应用之间的连接与通信的指令

使用特权

评论回复
板凳
xiaoqizi| | 2023-9-8 13:26 | 只看该作者
每个AT命令行中只能包含一条AT指令

使用特权

评论回复
地板
木木guainv| | 2023-9-8 13:51 | 只看该作者
对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)

使用特权

评论回复
5
晓伍| | 2023-9-8 14:16 | 只看该作者
AT指令以回车作为结尾,响应或上报以回车换行为结尾

使用特权

评论回复
6
八层楼| | 2023-9-8 15:06 | 只看该作者
每个指令执行成功与否都有相应的返回

使用特权

评论回复
7
磨砂| | 2023-9-8 18:20 | 只看该作者
AT指令以回车作为结尾,响应或上报以回车换行为结尾

使用特权

评论回复
8
benjaminka| | 2023-11-5 10:09 | 只看该作者
AT指令的基本格式为“AT+命令=参数”,其中“AT+”为固定前缀,“命令”为指令名称,“参数”为指令参数。

使用特权

评论回复
9
houjiakai| | 2023-11-5 10:58 | 只看该作者
需要使用 AT+CWLAP 命令列出可用的 AP 列表,然后使用 AT+CWJAP 命令将 ESP8266 无线WiFi模组连接到指定 AP。在命令后面加上“OK”表示连接成功,否则表示失败。

使用特权

评论回复
10
hilahope| | 2023-11-5 11:46 | 只看该作者
一些指令之间存在依赖关系,需要按照正确的顺序执行。

使用特权

评论回复
11
beacherblack| | 2023-11-5 14:53 | 只看该作者
AT指令的执行需要一定的时间,需要等待执行结果返回后再执行下一条指令。

使用特权

评论回复
12
1988020566| | 2023-11-5 15:32 | 只看该作者
ESP8266的AT指令集分为测试命令和执行命令。测试命令用于查询设置命令或内部程序设置的参数以及其取值范围,执行命令用于执行受模块内部程序控制的变参数不可变的功能。

使用特权

评论回复
13
uptown| | 2023-11-5 16:26 | 只看该作者
ESP8266的AT指令集非常丰富,包括测试命令、执行命令、配置命令、操作命令等。

使用特权

评论回复
14
jackcat| | 2023-11-5 17:30 | 只看该作者
AT指令需要以“\r\n”结尾,表示回车和换行。并且,AT指令的执行结果会返回到串口,需要通过串口读取结果。此外,AT指令的执行需要一定的时间,需要等待执行结果返回后再执行下一条指令。

使用特权

评论回复
15
sesefadou| | 2023-11-5 19:57 | 只看该作者
可以通过 AT+CIPSTART 命令启动客户端或服务器模式,连接到远程服务器。如果连接成功,返回的值应为 OK。如果出现异常,可以使用 AT+CIPCLOSE 命令断开连接,以避免持续占用连接资源。

使用特权

评论回复
16
mikewalpole| | 2023-11-5 20:08 | 只看该作者
ESP8266的AT指令执行后,会返回一个结果。如果指令执行成功,返回的值通常为“OK”,否则返回的值可能为“Error”。

使用特权

评论回复
17
cashrwood| | 2023-11-5 20:26 | 只看该作者
ESP8266的AT指令集可以通过加密等方式进行安全性保护,以防止未经授权的访问和操作。

使用特权

评论回复
18
fengm| | 2023-11-5 21:44 | 只看该作者
ESP8266的AT指令操作涉及多个方面,包括基础指令、设置指令和查询指令等。

使用特权

评论回复
19
kmzuaz| | 2023-11-5 21:56 | 只看该作者
在进行AT命令操作时,需要确保命令已被正确接收并执行。如果命令执行失败,可能会导致ESP8266无法正常运行。

使用特权

评论回复
20
chenci2013| | 2023-11-5 22:21 | 只看该作者
ESP8266的AT指令可以进行重写,但需要注意,重写指令可能会导致一些设置被覆盖,因此在重写前需要确保已经保存好相关设置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1277

帖子

2

粉丝