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 服务器可能会根据设备所连接的路由器的配置而改变。