在本教程中,我将向您展示一些重要的和经常使用的ESP8266 AT命令或AT指令集。
ESP8266 WiFi模块为我们的DIY (Do-it-yourself)和物联网(IoT)项目提供完整的网络解决方案。它通过其完整的TCP/IP栈提供WiFi连接到任何微控制器。
ESP8266 WiFi模块可与单片机接口UART微控制器通过广泛的AT命令实现对ESP模块的控制。
ESP8266 WiFi模块的AT命令用于控制模块的所有操作,如重启、连接WiFi、切换操作模式等。因此,理解ESP8266 AT命令非常重要,即使不是全部,至少也要理解一些重要的命令。
ESP8266 AT命令类型
在详细介绍AT命令集以及如何划分AT命令之前,您需要了解不同类型的AT命令。
ESP8266 AT命令基本上可以分为四类:
- 测试
- 查询
- 集
- 执行
下表让您清楚地了解了这些不同类型的AT命令。在这里,我将使用一个示例命令“TEST”来演示它们之间的区别。
命令类型 |
在命令格式 | 函数 |
测试 |
在+测试= ? | 返回参数的取值范围 |
查询 |
在+测试? | 返回当前值 |
集 |
在parameter2 +测试= parameter1,… | 设置配置 |
执行 | 在测试+ | 执行一个动作 |
测试命令:ESP8266 WiFi模块的Test AT命令用于获取命令的参数和范围。
查询命令:查询命令返回命令参数的当前值。
设置命令:设置命令用于设置命令中的参数值,并执行命令。
执行命令:Execute Commands将运行不带参数的命令。
注意:不是所有的ESP8266 AT命令都支持这四种命令类型。
现在我们已经了解了不同类型的ESP8266 AT命令,让我们继续实际的AT命令列表。
ESP8266 AT命令设置
ESP8266 AT命令集分为三类。它们是:
- 基本在命令
- 无线网络在命令
- TCP / IP在命令
ESP8266 WiFi模块共有88条AT命令。我不会讨论所有的88个AT命令,只讨论几个重要的。
如果您想了解所有ESP8266 AT命令的详细信息,建议您访问Espressif Systems (ESP8266EX SoC的制造商)提供的官方文档页面。ESP8266 AT官方命令文档可以在“ESP8266 AT命令文档”中查看在这里.
让我们看看每个类别中的不同ESP8266 AT命令,以及它们的格式(语法)和响应。
请注意:[]中提到的参数是可选的。
ESP8266 AT基本命令
根据来自Espressif Systems的官方文档,总共有23个基本AT命令。
基本在命令 |
在 |
在+ RST |
在+ GMR |
在
这是测试AT启动的基本命令,即AT系统是否正常工作。如果AT启动成功,那么响应是OK的。
命令 | 响应 |
在 | 好吧 |
在+ RST
该命令用于重启(复位)ESP8266 WiFi模块。
命令 | 响应 |
在+ RST | 好吧 |
在+ GMR
该命令用于查看固件和SDK的版本信息。响应由三部分组成:AT Firmware版本、SDK版本和BIN文件的编译时间。
命令 | 响应 |
在+ GMR | <版本> > < SDK版本 <编译时间> 好吧 |
其他重要的AT基本命令:AT+GSLP、ATE和AT+UART。
无线网络在命令
WiFi AT命令用于控制ESP8266模块的WiFi功能,如设置WiFi模式、获取WiFi网络列表、连接WiFi网络、设置接入点(AP)、控制DHCP、WPS、MAC地址、IP地址等。
根据官方文档,ESP8266模块有40条WiFi AT命令。让我介绍几个重要的AT命令。
无线网络在命令 |
在+ CWMODE |
在+ CWJAP |
在+ CWLAP |
在+ CWQAP |
在+ CIPSTA |
在+ CWSAP |
在+ CWLIF |
在+ CWMODE
该命令用于设置WiFi运行模式为Station模式、AP (Soft Access Point)或Station和AP的组合。CWMODE命令支持“测试”、“查询”和“设置”类型命令。
下表给出了该命令的语法、响应和参数(在Set命令中)。
在+ CWMODE | |||||
命令类型 | 测试 | 查询 | 集 | ||
格式 | 在+ CWMODE = ? | 在+ CWMODE吗? | 在+ CWMODE = <模式> | ||
响应 | + CWMODE: <模式> 好吧 |
+ CWMODE: <模式> 好吧 |
好吧 | ||
参数 | <模式> 1:站 2:软接入点(AP) 3:站+软ap |
||||
函数 | 返回当前WiFi模式 | 集无线模式 | |||
在+ CWLAP
该命令列出ESP8266可访问的所有WiFi网络。它同时具有Set和Execute Command类型。
在+ CWLAP | ||
命令类型 | 集 | 执行 |
格式 | 在+ CWLAP[= <名称>,< mac >, <频道>,< scan_type > , < scan_time_min >、< scan_time_max >) |
在+ CWLAP |
响应 | + CWLAP: < ecn >, <名称>,< rssi >, < mac >, <频道>,< 频率偏移量>、<频率卡利>、< pairwise_cipher >, < group_cipher >、< bgn >、< wps > 好吧 |
注意:有关参数的更多信息,请参考原始文档。
在+ CWJAP
这个命令是连接到一个接入点(如路由器)。
在+ CWJAP | ||
命令类型 | 查询 | 集 |
格式 | 在+ CWJAP吗? | + CWJAP = <名称>,< pwd >, < bssid >) |
响应 | + CWJAP: <名称>,< bssid >, <频道>,< rssi > 好吧 |
好吧 或 误差+ CWJAP: < > 失败 |
参数 | < pwd >:密码。 [ 当多个ap具有相同SSID时。) < >错误 1:连接超时。 2:错误的密码。 3:找不到目标AP。 4:连接失败。 |
在+ CWQAP
该命令用于断开ESP8266与接入点的连接。
命令 | 响应 |
在+ CWQAP | 好吧 |
在+ CIPSTA
该命令用于设置ESP8266 WiFi模块Station模式下的静态IP地址。该命令同时具有查询和设置类型的命令。
在+ CIPSTA | ||
命令类型 | 查询 | 集 |
格式 | 在+ CIPSTA吗? | 在+ CIPSTA = < ip >、<网关>,<子网掩码>) |
响应 | ip + CIPSTA: < > 网关+ CIPSTA: < > + CIPSTA: <子网掩码> 好吧 |
好吧 |
参数 | < ip >: ip地址 <网关>:网关 <子网掩码>:子网掩码 |
|
函数 | 返回IP地址,网关和Netmask。 | 设置“IP地址”、“网关”和“掩码”。 |
在+ CWSAP
该命令用于配置ESP8266 WiFi模块的AP (Soft Access Point)模式。该命令的查询和设置类型都可用。
在+ CWSAP | ||
命令类型 | 查询 | 集 |
格式 | 在+ CWSAP吗? | + CWSAP = <名称>,< pwd >, <背影>,< ecn >, <马克斯 康涅狄格州>][,<名称>隐藏) |
响应 | + CWSAP: <名称>,< pwd >, <背影>,< ecn >, <马克斯康涅狄格州>,<名称>隐藏 | 好吧 或 错误 |
参数 | < pwd >:密码。 <背影>:频道ID。 < ecn >:加密方法。 0:开放 2: WPA_PSK 3: WPA2_PSK 4: WPA_WPA2_PSK <名称>隐藏: 0:广播SSID。(默认) 1:不广播SSID; |
在+ CWLIF
通过该命令,可以获取与ESP8266相连的station的IP地址,该station的IP地址是通过软tap方式配置的。
在+ CWLIF | |
格式(执行命令) | 在+ CWLIF |
响应 | < ip addr >、< mac > 好吧 |
参数 |
TCP / IP在命令
TCP/IP AT命令负责互联网上的通信。ESP8266 WiFi模块共有25条TCP/IP AT命令。这里提到了一些重要的因素。
TCP / IP命令 |
在+ CIPSTATUS |
在+ CIPSTART |
在+ CIFSR |
在+ CIPMUX |
在+ CIPSERVER |
在+ CIUPDATE |
在+ CIPSTATUS
ESP8266 WiFi模块的TCP/IP AT命令用于获取连接的信息或状态。只有Execute type命令可用。
在+ CIPSTATUS | |
命令类型 | 执行 |
格式 | 在+ CIPSTATUS |
响应 | 状态:<统计> + CIPSTATUS: < linkID >, <类型>,< remoteIP >, < remoteport >, < localport >, < tetype > |
参数 | <统计>: 2:表示已连接AP,并获取AP的IP地址。 3:创建TCP或UDP传输。 4:断开连接。 5:不连接。 < tetype >: 0:客户端。 1:服务器。 |
在+ CIPSTART
此AT命令用于建立TCP、UDP或SSL三种连接之一。根据TCP连接的类型(单个或多个),Set命令的格式会有所不同。
在+ CIPSTART | ||
命令类型 | 集 | |
格式 | 单一TCP连接 | 多个TCP连接 |
在+ CIPSTART = < >类型, < remoteIP >、< remoteport > [, < TCPkeepalive >) |
在+ CIPSTART = < linkID >, <类型>, < remoteIP >、< remoteport > [, < TCPkeepalive >) |
|
响应 | 好吧 或 错误 (TCP连接建立时的响应: 已经连接) |
|
参数 | :连接ID。 [ |
注意:上面的表格显示了仅用于建立TCP连接的命令。关于建立UDP和SSL连接,请参考官方文档。
在+ CIFSR
该AT命令用于获取ESP8266 WiFi模块的IP地址。
在+ CIFSR | |
命令类型 | 执行 |
格式 | 在+ CIFSR |
响应 | + CIFSR: APIP, < SoftAPIPaddress > + CIFSR: APMAC, < SoftAPMACaddress > + CIFSR: STAIP, < StationIPaddress > + CIFSR: STAMAC, < StationMACaddress > 好吧 |
参数 |
在+ CIPMUX
AT命令用于启用或禁用多个TCP连接。
在+ CIPMUX | ||
命令类型 | 查询 | 集 |
格式 | 在+ CIPMUX吗? | 在+ CIPMUX = <模式> |
响应 | + CIPMUX: <模式> 好吧 |
好吧 |
参数 | < >模式: 0:单一的连接 1:多个连接 |
在+ CIPSERVER
该AT命令用于创建或删除TCP服务器。
在+ CIPSERVER | |
命令类型 | 集 |
格式 | 在+ CIPSERVER = <模式>,<端口>) |
响应 | 好吧 |
参数 | < >模式: 0:删除服务器。 1:创建服务器。 |
注意:只有当AT+CIPMUX=1,即启用多个连接时,才能创建TCP Server。
在+ CIUPDATE
此AT命令用于通过WiFi连接更新软件,即over the air (OTA)更新。
在+ CIUPDATE | |
命令类型 | 执行 |
格式 | 在+ CIUPDATE |
响应 | n + CIPUPDATE: < > 好吧 |
参数 | < n >: 1:查找服务器 2:连接服务器 3:获取软件版本 4:开始更新 |
相关文章:
5的反应
很好
你好兄弟,谢谢你的邮件,但是我如何得到我客户的MAC地址?例如,esp8266模式:station webserver,我需要得到我的客户端的mac地址,使用AT命令。
再一次,非常感谢你的帖子。
在+ CWLIF
请告诉我有什么软件或者我必须在哪里运行这些命令?
优秀的编译-非常好的解释