介绍
ESP-07S 是基于 ESP8266 芯片的 WiFi 模块,它支持通过 AT 指令集进行控制和通信。AT 指令集允许用户通过串口(UART)发送命令来配置和控制 ESP8266 模块,比如连接 WiFi 网络、设置 IP 地址、发送和接收数据等。
指令
以下是一些常用的 ESP8266 AT 指令的示例:
AT+RST:重启模块。
发送:AT+RST
响应:OK
AT+GMR:获取固件版本。
发送:AT+GMR
响应:
<AT version info>
<SDK version info>
<compile time>
OK
参数说明:
<AT version info> AT 版本信息
<SDK version info> 基于的 SDK 版本信息
<compile time> 编译⽣成时间
AT+CWMODE=<mode>:设置 WiFi 模式。不建议使用。建议使用
AT+CWMODE_CUR=<mode>
或者
AT+AT+CWMODE_DEF=<mode>
<mode> 可以是 1(Station 模式)、2(SoftAP 模式)、3(Station+SoftAP 模式)。
发送:AT+CWMODE=1
响应:OK
AT+CWJAP="<SSID>","<password>":连接到 WiFi 网络。
<SSID> 是你的 WiFi 网络名称,<password> 是密码。
发送:AT+CWJAP="my_wifi_ssid","my_wifi_password"
响应:
OK
或者
+CWJAP:<error code>
FAIL
AT+CIFSR:查询模块 IP 地址。
发送:AT+CIFSR
响应:
+ CIFSR:<IP address>
+ CIFSR:<MAC address>
OK
或者
ERROR
实际测试返回
+CIFSR:STAIP,"192.168.1.111"
+CIFSR:STAMAC,"b4:8a:0a:df:ed:3e"
OK
AT+CIPSTART="TCP","<remote_ip>","<remote_port>":建立 TCP 连接。
<remote_ip> 是远程服务器的 IP 地址,<remote_port> 是端口号。
发送:AT+CIPSTART="TCP","192.168.1.100",8080
响应:
OK 或者 ERROR
如果连接已经存在,则返回
ALREADY CONNECT
AT+CIPSEND=<length>:发送数据到服务器。
<length> 是要发送的数据的长度。
发送:AT+CIPSEND=5(假设你要发送的数据长度是 5 字节)
响应:
发送指定⻓度的数据。
收到此命令后先换⾏返回">",然后开始接收串⼝数据,当数据⻓度满length 时发送数据,回到普通指令模式,等待下⼀条 AT 指令。
如果未建⽴连接或连接被断开,返回
ERROR
如果数据发送成功,返回
SEND OK
AT+CIPCLOSE=<id>:关闭 TCP 连接。
<id> 是之前通过 AT+CIPSTART 命令获得的连接 ID。
发送:AT+CIPCLOSE=0
响应:
OK
或者
ERROR
AT+CIPSTATUS : 查询网络连接信息
发送:AT+CIPSTATUS
响应:
STATUS:<stat>
+CIPSTATUS:<link ID>,<type>,<remote IP>,<remote port> ,<local port>,<tetype>
OK
参数说明:
<stat>
2:获得 IP
3:已连接
4:断开连接
5:未连接到 WiFi
<link ID> 网络连接 ID (0~4),⽤于多连接的情况
<type> 字符串参数,"TCP" 或者 "UDP"
<remote IP> 字符串,远端 IP 地址
<remote port> 远端端⼝值
<local port> ESP8266 本地端⼝值
<tetype>
0: ESP8266 作为 client
1: ESP8266 作为 server
AT+CWDHCP=<mode>,<en>:设置 DHCP,不建议使用,可替换为以下
AT+CWDHCP_CUR=<mode>,<en> //本设置不保存到 flash
或者
AT+CWDHCP_DEF=<mode>,<en> //保存到flash
参数说明:
<mode>
0 : 设置 ESP8266 softAP
1 : 设置 ESP8266 station
2 : 设置 ESP8266 softAP 和 station
<en>
0 : 关闭 DHCP
1 : 开启 DHCP
发送:AT+CWDHCP=1,1
响应:
OK
AT+CIPSTA_CUR=<ip> [,<gateway>,<netmask>] : 设置 ESP8266 station 的 IP 地址,不保存到 flash
参数说明:
<ip> 字符串,ESP8266 station 的 IP 地址
[<gateway>] ⺴关
[<netmask>] ⼦⺴掩码
响应:
OK
示例:AT+CIPSTA_CUR="192.168.6.100","192.168.6.1","255.255.255.0"
AT+CWMODE_CUR=<mode>:设置 ESP8266 当前 WiFi 模式,本设置不保存到 flash
参数说明:
<mode>1 : station 模式
2 : softAP 模式
3 : softAP + station 模式
响应:
OK
AT+CWJAP_CUR=<ssid>,<pwd>[,<bssid>] 临时连接 AP,设置 ESP8266 station 需连接的 AP,不保存到 Flash
参数说明:
<ssid> 字符串参数,目标 AP 的 SSID
<pwd> 字符串参数,密码最⻓64字节ASCII
[<bssid>] 字符串参数,母标 AP 的 bssid (MAC 地址),⼀般⽤于有多个 SSID 相同的 AP 的情况
<error code> 仅供参考,并不可靠
1 连接超时
2 密码错误
3 找不到目标 AP
4 连接失败
参数设置需要开启 station 模式,若 SSID 或者 password 中含有特殊符号,例如 ’ , ’ 或者 ’ " ’ 或者 ’ \ ’ 时,需要进⾏转义,其它字符转义⽆效.
发送:AT+CWJAP_CUR="abc","123456789"
响应:
+ CWJAP_CUR:<ssid>,<bssid>,<channel>,<rssi>
OK
AT+CWQAP:断开与 AP 的连接
发送:AT+CWQAP
响应:
OK
AT+CWAUTOCONN=<enable> :上电是否⾃动连接 AP
参数
<enable>:
0:上电不⾃动连接 AP
1: 上电⾃动连接 AP
ESP8266 Station 默认上电⾃动连接 AP。
响应:
OK
实际测试:
AT+RST,重启模块
AT+GMR,固件版本查询
这些只是 ESP8266 AT 指令集的一部分。具体的命令和参数可能会根据 ESP8266 的固件版本和制造商有所不同。此外,发送 AT 指令时,通常需要在每条指令的末尾加上(\r\n)来确保指令被正确解析和执行。
连接wifi测试过程
//上电不⾃动连接 AP
AT+CWAUTOCONN=0
//复位
AT+RST
//设置为 station
AT+CWMODE_CUR=1
//设置为dhcp
AT+CWDHCP_CUR=1,1
//设置静态ip
AT+CIPSTA_CUR="192.168.6.100","192.168.6.1","255.255.255.0"
//列出可⽤的 AP 信息
AT+CWLAP
//连接AP
AT+CWJAP_CUR="abc","123456789"
// 查询网络连接信息
AT+CIPSTATUS
// 查询IP
AT+CIFSR
//断开AP
AT+CWQAP
参考:
ESP8266 AT 指令集