前言
ESP系列芯片具有高性价比的联网功能,广受大家的认可。然而,在开发过程中,有时候我们想要使用ESP系列芯片的联网功能,却又不想为此编写繁杂的联网逻辑、串口交互逻辑等等。此时,我们可以运用AT指令来实现简洁的联网控制。本文将介绍这种基于AT指令的简单指令和案例,方便大家熟悉。
常用AT指令
这里分三大类基础类
WIFI类
TCP/IP类
,简单的介绍部分常用的AT之类。详细的指令应用案例,可以查看乐鑫官网的AT 命令集,包括AT 命令示例,指令和案例详解都有。然后,一般的AT配置命令,只用指令加个问号,就能查询器件当前的配置情况,例如:选择WIFI Station 模式的为指令为AT+CWMODE=1
,然后AT+CWMODE?
就能在返回数据中,知道查询器件当前的WIFI应用模式。
基础类
指令 |
说明 |
示例 |
参数 |
AT |
响应测试 |
AT |
|
AT+RST |
重启模块 |
AT+RST |
|
AT+GMR |
查看版本信息 |
|
|
WIFI类
指令 |
说明 |
示例 |
参数 |
AT+CWMODE=① |
选择 WIFI 应用模式 |
AT+CWMODE=1 |
①:0: 无 Wi-Fi 模式 1: Station 模式 2: SoftAP 模式 3: SoftAP+Station 模式 |
AT+CWJAP=①,② |
连接 AP |
AT+CWJAP=“K30”,“12345678” |
①: WIFI名称 ②:WIFi密码 |
AT+CWLAP |
列出当前可用 AP |
AT+CWLAP |
|
AT+CWQAP |
断开与 AP 的连接 |
|
|
AT+CWSAP=①,②,③,④ |
配置SoftAP模式参数 |
AT+CWSAP=“ESP”,“1234567890”,5,3 |
①:AP名称 ②:密码 ③:信道号 ④:加密方式 |
TCP/IP类
指令 |
说明 |
示例 |
参数 |
AT+CIPSTATUS |
获得连接状态 |
AT+CIPSTATUS |
|
AT+CIPSTART=①,②,③ |
建立 TCP 连接或注册 UDP 端口号 |
AT+CIPSTART=“TCP”,“192.168.101.110”,1000 |
①:网络连接类型 ②:IPv4 地址 ③:远端端口值 |
AT+CIPSEND=① |
发送数据 |
AT+CIPSEND=50 |
①:发送的数据长度 |
AT+CIPCLOSE |
关闭TCP 或 UDP |
AT+CIPCLOSE |
|
AT+CIFSR |
获取本地 IP 地址 |
AT+CIFSR |
|
AT+CIPMUX=① |
启动多连接 |
AT+CIPMUX=0 |
①:0: 单连接 1: 多连接 |
AT+CIPSERVER=①,② |
配置为服务器 |
AT+CIPSERVER=1,80 |
①:0:关闭 1:开启 ②:端口号 |
AT+CIPMODE=① |
设置模块传输模式 |
AT+CIPMODE=0 |
①:0: 普通传输模式 1: Wi-Fi 透传接收模式,仅支持 TCP 单连接、UDP 固定通信对端、SSL 单连接的情况 |
AT+CIPSTO |
设置服务器超时时间 |
AT+CIPSTO=30 |
①:超时时间(Ms) |
案例
基本配置: 波特率:115200
串口通信时勾选上,发送新行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rirImxrx-1681716930177)(0.png)]
注意:在下面为了方便解释,我在AT指令后面加了注释,实际在使用AT指令时,不要加上。
-
存在测试。发送AT,如器件正常,应该会返回OK。
AT
-
重启模块,基本参数查看。比如,能看到SPI Speed,SPI Mode,SPI Flash Size等。
AT+RST
-
WIFI连接案例
在以下案例中,我用了自己的手机打开热点,创建了一个名称为K30,密码为12345678热点,方便测试。
AT+CWMODE=1 //选择为Station模式
AT+CWJAP="K30","12345678" //连接AP
-
设备做为 TCP 客户端
使用电脑或手机软件做TCP服务端,ESP8266做客户端连接,一直都是失败的,怪。按照官方的示例,流程如以下这样,但是尝试了七八次到不行。很是奇怪,下次有时间在找找问题。二次修改,我用两块ESP01连接调试,一块TCP客服端,一块TCP服务端,连接发送数据就能正常发送。
AT+CWMODE=1
AT+CWJAP="K30","12345678"
AT+CIPSTA?
AT+CIPSTART="TCP","192.168.3.102",8080
AT+CIPSEND=4
-
设备做为 TCP 服务器
//建立TCP服务端流程
AT+CWMODE=2 //设置 Wi-Fi 模式为 softAP
AT+CIPMUX=1 //使能多连接
AT+CWSAP="ESPDemo","12345678",5,3 //设置 softAP
AT+CIPAP? //查询 softAP 信息(可不看)
AT+CIPSERVER=1,80 //建立 TCP 服务器,并指定定端口
//当客户端连接上后
AT+CIPSEND=0,4 //指定id通道,发送指定长度字节信息
//关闭TCP服务端
AT+CIPCLOSE=0
-
设备做为 TCP 客户端, UART Wi-Fi 透传 (未有时间实验,只是分享官方示例)
AT+CWMODE=1 //选择为Station模式
AT+CWJAP="espressif","1234567890"
AT+CIPSTART="TCP","192.168.3.102",8080 //连接端口
AT+CIPMODE=1 //进入 UART Wi-Fi 透传接收模式
AT+CIPSEND //进入 UART Wi-Fi 透传模式 并发送数据
AT+CIPMODE=0 //退出 UART Wi-Fi 透传接收模式
AT+CIPCLOSE //关闭 TCP 连接
使用 +++
可退出 透传模式,回到 透传接收模式,此时 TCP 连接仍然有效。您也可以使用 AT+CIPSEND
命令恢复透传。
-
设备作为 TCP 服务器, UART Wi-Fi 透传 (未有时间实验,只是分享官方示例)
AT+CWMODE=1
AT+CWJAP="espressif","1234567890"
AT+CIPMUX=1
AT+CIPSERVERMAXCONN=1
AT+CIPSERVER=1,8080
AT+CIPMODE=1
AT+CIPSEND
AT+CIPMODE=0
AT+CIPCLOSE
总结
上述案例有些还未来的及测试。不过以测试的,介绍的还是挺详细了。还是能参考参考的。