TCP/IP指令集¶
AT+ CIPSTATUS:查询TCP/UDP/SSL连接状态和信息¶
查询命令
命令:
AT+CIPSTATUS?
返回:
+BIPSTATUS:<type>,<remoteip>,<port>,<localport>,<tetype>
参数
<type>:连接类型
0: “TCP”
1: “UDP”
2: “TLS”
3: “DTLS”
<remoteip>:远程连接IP
<port>:远程连接的端口
<localport>:连接的本地端口
<tetype>:
0: 设备作为客户端
1: 设备作为服务器
AT+CIPSTART:建立TCP连接、UDP 传输或 TLS连接¶
执行命令
命令:
AT+CIPSTART=<linkID>,<"type">,<remotehost>,<remoteport>[,<keepalive>,"localport"],<"localip">
返回:
OK
参数
<linkID>:网络连接 ID (0 ~ 5),最多支持6个连接
<”type”>:连接类型
0: “TCP”
1: “UDP”
2: “TLS”
3: “DTLS”
<remotehost>:远程连接IP
<remoteport>:远程连接的端口
<keepalive>:TCP keep-alive 间隔,默认值:0
0: 禁用 TCP keep-alive 功能
1 ~ 7200: 检测间隔,单位:秒
说明
只能TCP有效,UDP不需要设置,此参数最终会配置到 socket 选项 TCP_KEEPIDLE,keepalive 另外的 socket 选项。
TCP_KEEPINTVL 默认会使用 1,TCP_KEEPCNT 默认会使用 3。
<”localport”>:本地端口,当需要设置为server时需要设置此端口。
<”localip”>:本地IP,当需要配置为server时需要配置此IP。
示例
//1.建立连接ID为0,keep-alive 1800秒一次的TCP 连接
AT+CIPSTART=0,"tcp","192.168.0.103",20108,1800
//2. 建立连接ID为1的TCP Server连接
AT+CIPSTART=2,"tcp","192.168.0.103",20108,1800, 5637, "192.168.0.107"
//3. 建立连接ID为1的UDP client连接
AT+CIPSTART=1,"udp","192.168.0.103",20108
//4.建立连接ID为1,本地端口为5637的UDP Server连接
AT+CIPSTART=1,"udp","192.168.0.103",20108,5637, "192.168.0.107"
AT+CIPSEND:在普通传输模式或 Wi-Fi 透传模式下发送数据¶
执行命令
命令:
//执行TCP数据发送
AT+CIPSEND=<linkID>,<length>
//执行UDP数据发送
AT+CIPSEND=<linkID>,<length>[,<"remotehost">,<remote port>]
返回:
>
上述响应表示 AT 已准备好接收串行数据,此时您可以输入数据,当AT接收到的数据长度达到<length>后,数据传输开始。 如果未建立连接或数据传输时连接被断开,返回:
CMDRSP:ERROR
如果数据传输成功,返回:
SEND OK
执行命令
功能:
进入 Wi-Fi 透传模式
命令:
AT+CIPSEND
返回:
>
或
CMDRSP:ERROR
说明
进入 Wi-Fi 透传模式,设备每次最大接收 1024 字节,最大发送 1460 字节;如果当前接收的数据长度大于最大发送字节数,AT 将立即发送;否则,接收的数据将在 20 ms 内发送。当输入单独一包+++ 时,退出透传模式下的数据发送模式,请至少间隔 1 秒再发下一条 AT 命令。本命令必须在开启透传模式 以及单连接下使用。
参数
<linkID>:网络连接 ID (0 ~ 4),用于多连接的情况
<length>:数据长度,最大值:2048 字节
<”remote host”>:UDP 传输可以指定对端主机:IPv4 地址或域名
<remote port>:UDP 传输可以指定对端端口
AT+CIPCLOSE:关闭 TCP/UDP/SSL 连接¶
执行命令
命令:
AT+CIPSEND=<linkID>
返回:
OK
参数
<linkID>:需关闭的网络连接 ID,如果设为 5,则表示关闭所有连接
AT+CIPMUX:启用/禁用多连接模式¶
查询命令
命令:
AT+CIPMUX?
返回:
+CIPMUX:<mode>
OK
执行命令
命令:
AT+CIPMUX=<mode>
返回:
OK
参数
<mode>:连接模式,默认值:0
0: 单连接
1: 多连接
说明
只有当所有连接都断开时才可更改连接模式
只有普通传输模式 (AT+CIPMODE=0),才能设置为多连接
AT+CIPMODE:查询/设置传输模式¶
查询命令
命令:
AT+CIPMODE?
返回:
+CIPMODE:<mode>
OK
执行命令
命令:
AT+CIPMODE=<mode>
返回:
OK
参数
<mode>:
0: 普通传输模式
1: Wi-Fi 透传接收模式,仅支持 TCP 单连接、UDP 固定通信对端、SSL 单连接的情况
AT+CIPSNTPCFG:查询/设置NTP服务器¶
查询命令
命令:
AT+CIPSNTPCFG?
返回:
+CIPSNTPCFG:<enable>,<timezone>,<SNTP server>
OK
执行命令
命令:
AT+CIPSNTPCFG=<enable>,<timezone>,<SNTP server>
返回:
OK
参数
<enable>:设置 SNTP 服务器:
1: 设置 SNTP 服务器。
0: 不设置 SNTP 服务器。
<timezone>:
数值范围:[-12,12],它以小时为单位,通过与协调世界时 (UTC) 的偏移来标记大多数时区(UTC−12:00 至 UTC+12:00)
[<SNTP server>]: SNTP 服务器地址或域名。
示例
//使能 SNTP 服务器,设置中国时区 (UTC+08:00)
AT+CIPSNTPCFG=1,8,"cn.ntp.org.cn"
//使能 SNTP服务器,设置美国纽约的时区 (UTC−05:00)
AT+CIPSNTPCFG=1,-5,"0.pool.ntp.org"
AT+CIPSNTPTIME:查询SNTP时间¶
查询命令
命令:
AT+CIPSNTPTIME?
返回:
+CIPSNTPTIME:<asctime style time>
OK
示例
AT+CIPSNTPTIME?
+CIPSNTPTIME:2022-10-21 19:20:39
OK
AT+PING:ping对端主机¶
执行命令
命令:
AT+PING=<"host">
返回:
+PING:<time>
或
+PING:TIMEOUT
参数
<”host”>:字符串参数,表示对端主机的 IPv4 地址或域名。
<time>:ping 的响应时间,单位:毫秒。
AT+CIPDOMAIN:域名解析¶
执行命令
命令:
AT+CIPDOMAIN=<"domain name">
返回:
+CIPDOMAIN:<"IP address">
OK
参数
<”domain name”>:待解析的域名
<”IP address”>:解析出的 IP 地址
说明
目前仅支持解析为 IPv4 地址
AT+CIPDNS:查询/设置 DNS 服务器信息¶
查询命令
命令:
AT+CIPDNS?
返回:
+CIPDNS:<enable>[,<"DNS IP1">,<"DNS IP2">,<"DNS IP3">]
OK
执行命令
命令:
AT+CIPDNS=<enable>[,<"DNS IP1">,<"DNS IP2">,<"DNS IP3">]
返回:
OK
或
ERROR
参数
<enable>:设置 DNS
0: 启用自动获取 DNS 设置,DNS 将会恢复为 208.67.222.222,只有当 DHCP 更新时才会生效。
1: 启用手动设置 DNS 信息,如果不设置参数 <DNS IPx> 的值,则使用默认值 208.67.222.222。
<DNS IP1>:第一个 DNS IP 地址,对于执行命令,只有当 <enable> 参数为 1 时,也就是启用手动 DNS 设置,本参数才有效。
<DNS IP2>:第二个 DNS IP 地址,对于执行命令,只有当 <enable> 参数为 1 时,也就是启用手动 DNS 设置,本参数才有效。
<DNS IP3>:第三个 DNS IP 地址,对于执行命令,只有当 <enable> 参数为 1 时,也就是启用手动 DNS 设置,本参数才有效。
说明
若AT+SYSSTORE=1,配置更改将保存在 NVS 区。
AT+CIPSSLCPSK:查询/设置 SSL 客户端的 PSK¶
查询命令
命令:
AT+CIPSSLCPSK?
返回:
+CIPSSLCPSK:<linkID>,<"psk">,<"hint">
OK
执行命令
命令:
//单连接:(AT+CIPMUX=0)
AT+CIPSSLCPSK=<"psk">,<"hint">
//多连接:(AT+CIPMUX=1)
AT+CIPSSLCPSK=<linkID>,<"psk">,<"hint">
返回:
OK
参数
<linkID>:网络连接 ID (0 ~ max),在单连接的情况下,本参数值为 0;在多连接的情况下,若参数值设为 max,则表示所有连接;本参数默认值为 5。
<”psk”>:PSK identity,最大长度:48。
<”hint”>:PSK hint,最大长度:48。
说明
如果想要本配置立即生效,请在建立 SSL 连接前运行本命令。
AT+CIPDNS:查询/设置 DNS 服务器信息¶
查询命令
命令:
AT+CIPDNS?
返回:
+CIPDNS:<enable>[,<"DNS IP1">,<"DNS IP2">,<"DNS IP3">]
OK
执行命令
命令:
AT+CIPDNS=<enable>[,<"DNS IP1">,<"DNS IP2">,<"DNS IP3">]
返回:
OK
或
ERROR
参数
<enable>:设置 DNS
0: 启用自动获取 DNS 设置,DNS 将会恢复为 208.67.222.222,只有当 DHCP 更新时才会生效;
1: 启用手动设置 DNS 信息,如果不设置参数 <DNS IPx> 的值,则使用默认值 208.67.222.222。
<DNS IP1>:第一个 DNS IP 地址。
<DNS IP2>:第二个 DNS IP 地址。
<DNS IP3>:第三个 DNS IP 地址。
说明
若AT+SYSSTORE=1,配置更改将保存在 NVS 区。
这三个参数不能设置在同一个服务器上。
当 <enable> 为 0 时,DNS 服务器可能会根据设备所连接的路由器的配置而改变。