ESP8266-01S的TCP/IP相关的AT指令

server/2025/1/23 3:04:26/

目录

1、AT+CIPSTATUS——查询网络连接信息

2、AT+CIPDOMAIN——域名解析功能

3、AT+CIPSTART建立TCP连接、UDP传输、SSL连接

4、AT+CIPSSLSIZE——设置SSl buffer容量

5、AT+CIPSEND——发送数据

6、AT+CIPSENDEX——发送数据;达到设置长度或者遇到字符"\0"时,则发送数据

7、AT+CIPSENDBUF——数据写入TCP发包缓存

8、AT+CIPBUFRESET——重置计数(TCP发包缓存)

9、AT+CIPBUFSTATUS——查询TCP发包缓存状态

10、AT+CIPCHECKSEQ——查询写入TCP发包缓存的某个包是否发送成功

11、AT+CIPCLOSE——关闭TCP/UDP/SSL连接

12、AT+CIFSR——查询本地IP地址

13、AT+CIPMUX——设置多连接

14、AT+CIPSERVER——设置TCP server

15、AT+CIPMODE——设置传输模式

16、AT+SAVETRANSLINK——保存透传连接到flash

17、AT+CIPSTO——设置TCP server超时时间

18、AT+PING——PING功能

19、AT+CIUPDATE——通过WIFI升级软件

20、AT+CIPDINFO——接收网络数据时,“+IPD”是否提示对端IP和端口

21、+IPD——接收网络数据


1、AT+CIPSTATUS——查询网络连接信息

执行指令:AT+CIPSTATUS

响应:STATUS:<stat>

           +CIPSTATUS:<link ID>,<type>,<remote IP>,<remote port>,<local port>,<tetype>

参数说明:

<stat>:

        1:ESP8266 station结构的状态
        2:ESP8266 station已连接AP,获得IP地址

        3:ESP8266 station已建立TCP或UDP传输

        4:ESP8266 station断开网络连接
        5:ESP8266 station 未连接AP

<linkID>:网络连接ID(0~4),用于多连接的情况

<type>:字符串参数,“TCP”或者“UDP”
<remote IP>:字符串,远端IP地址
<remote port>;远端端口号

<local port>:ESP8266本地端控制
<tetype>
        0:ESP8266作为client

        1:ESP8266作为server

2、AT+CIPDOMAIN——域名解析功能

执行指令:
AT+CIPDOMAIN=<domain name>

响应 :

+CIPDOMAIN :<IP address>

参数说明:

<domain name>:待解析的域名

3、AT+CIPSTART——建立TCP连接、UDP传输、SSL连接

TCP连接:

设置指令:
①TCP单连接(AT+CIPMUX=0)时:
AT+CIPSTART=<type>,<remote IP>,<remote port>,[<TCP keep alive>]

 
②TCP多连接(AT+CIPMUX=1)时:
AT+CIPSTART=<link ID>,<type>,<remote IP>,<remote port>,[<TCP keep alive>]

响应:OK或者ERROR

如果连接已经存在,则返回ALREADY CONNECT

参数说明:

<linkID>:网络连接D(0~4),用于多连接的情况

<type>:字符串参数,连接类型,“TCP”或者“UDP’

<remote IP>:字符串参数,远端IP地址

<remote port>:远端端口号

[<TCP keep alive>]:TCP keep alive侦测时间,默认关闭此功能

        0:关闭TCP keep alive功能

        1~7200:侦测时间,单位为s

UDP传输:

设置指令:
①单连接模式(AT+CIPMUX=0)时
AT+CIPSTART=<type>,<remote IP>,

<remote port>,[<UDP local port>,

<UDP mode>]


②TCP多连接(AT+CIPMUX=1)时:
AT+CIPSTART=<link ID>.
<type>,<remote IP>,<remote port>,

[<UDPlocal port>,<UDP mode>]

响应:OK或者ERROR
如果连接已经存在,则返回
ALREADY CONNECT

参数说明:
<link ID>:网络连接D(0~4),用于多连接的情况

<type>:字符串参数,连接类型,“TCP”或者“UDP”

<remote IP>:字符串参数,远端P地址

<remote port>:远端端口号

<UDP localport>:UDP传输时,设置本地端口

<UDP mode>:UDP传输的属性,若透传,则必须为0
        0:收到数据后,不更改远端目标,默认值为0
        1:收到数据后,改变一次远端目标

        2:收到数据后,改变远端目标

 SSL连接:

设置指令:
AT+CIPSTART=[<link D>],<type>,<remoteIP>,<remote port>,[<TCP keep alive>]

响应:OK或者ERROR

如果连接已经存在,则返回ALREADY CONNECT

参数说明:
<link ID>:网络连接ID(0~4),用于多连接的情况

<type>:字符串参数,连接类型,“SSL”

<remote lP>:字符串参数,远端IP地址

<remote port>:远端端口号

[<TCP keep alive>]:keep alive侦测时间,默认关闭此功能

        0:关闭keep alive功能

        1~7200:侦测时间,单位为s

4、AT+CIPSSLSIZE——设置SSl buffer容量

设置指令:
AT+CIPSSLSIZE=<size>
响应:OK或者ERROR
参数说明:
<size>:SSLbuffer大小,取值范围为[2048,4096]

5、AT+CIPSEND——发送数据

设置指令:
①单连接时 :
(+CIPMUX=0)

AT+CIPSEND=<length>


②多连接时:
(+CIPMUX=1)
AT+CIPSEND=<link ID>,<length>


③如果是UDP传输,可以设置远端IP和端口:
AT+CIPSEND=[<link ID>],<length>,
<remote P>, <remote port>

响应:发送指定长度的数据

收到此命令后先换行返回“>”,

然后开始接收串口数据,当数

据长度满length时发送数据,回

到普通指令模式,等待下一条

AT指令如果未建立连接或连接被断开,则返回
ERROR
如果数据发送成功,则返回
SEND OK

参数说明:
<link ID>:网络连接ID(0~4),用于多连接的情况

<length>:数字参数,表明发送数据的长度,最大值为2048

[<remote IP>]:UDP传输可以设置对端IP

[<remote port>]:UDP传输可以设置对端端口

6、AT+CIPSENDEX——发送数据;达到设置长度或者遇到字符"\0"时,则发送数据

设置指令:
①单连接时:(+CIPMUX=0)

AT+CIPSENDEX=<length>


② 多连接时 :(+CIPMUX=1)
AT+CIPSENDEX=<link ID>,<length>


③如果是UDP传输,可以设置远端IP和端口:
AT+CIPSENDEX=[<link ID>],<length>,[<remote IP>,<remote port>]

响应:发送指定长度的数据
收到此命令后先换行返回“>”,然后开始接收串口数据,当数据长度满length或者遇到字符“\0”时,发送数据
如果未建立连接或连接被断开,则返回ERROR
如果数据发送成功,则返回
SEND OK
参数说明:
<link ID>:网络连接ID号(0~4),用于多连接的情况
<length>:数字参数,表明发送数据的长度,最大值为2048;
        当接收数据长度满length或者遇到字符“0”时,发送数据,回到普通指令模式,等待下一条 AT指令
        用户如需发发送“\0”,请转义为“\0”

7、AT+CIPSENDBUF——数据写入TCP发包缓存

① 单连接时 :
(+CIPMUX=0)
AT+ CIPSENDBUF=<length>


②)多连接时 :
(+CIPMUX=1)
AT+CIPSENDBUF=<linkID>,<length>

响应:<本次 segmentlD>,<已成功发送的segment ID>

①单连接时:
        如果某包数据发送成功,则返回 <segmentID>,SENDOK>

②多连接时:
        如果某包数据发送成功,则返回<linkID>,<segmentID>,SEND OK 

参数说明:
<link ID>:网络连接ID(0~ 4),用于多连接的情况
<segment ID>:unint32,给每包写入数据分配的ID,从1开始计数,每写一包则自加一,计数满则重新从1开始计数

<length>:数据长度,超过长度的数据则丢弃

8、AT+CIPBUFRESET——重置计数(TCP发包缓存)

①单连接时:
(+CIPMUX=0)
AT+CIPBUFRESET
②)多连接时:
(+CIPMUX=1)
AT+CIPBUFRESET=<link ID>
响应:OK
如果有数据包未发送完毕,或者连接不存在,则返回
ERROR

参数说明:
<link ID>:网络连接DD(0~4),用于多连接的情况

9、AT+CIPBUFSTATUS——查询TCP发包缓存状态

①单连接时:
(CIPMUX=0)
AT+CIPBUFSTATUS
② 多连接时 :
(CIPMUX=1)
AT+CIPBUFSTATUS=<link ID>
响应:<下次的segmentD>,<已发送的segment ID>,<成功发送的segment ID>,<remain buffer size>,<queue number>
参数说明:
<下次的segmentID>:下次调用AT+CIPSENDBUF将分配的ID
<已发送的segmentID>:已发送的TCP数据包ID
<成功发送的segmentI>:成功发送的TCP数据包D
<remain buffer size>:TCP发包缓存剩余的空间
<queue number>:底层可用的queue数目,并不可靠,仅供参考

10、AT+CIPCHECKSEQ——查询写入TCP发包缓存的某个包是否发送成功

①单连接时:(+CIPMUX=0)

        AT+CIPCHECKSEQ=<segment ID>
②多连接时 :(+CIPMUX=1)
        AT+CIPCHECKSEO=<link ID>,<segment ID>

响应:[<link ID>],<segment ID>,<status>OK

<link ID>:网络连接ID(0~4),用于多连接的情况

<segment ID>:调用AT+CIPSENDBUF写入数据时分配的ID

<status>:FALSE,发送失败;TRUE,发送成功

11、AT+CIPCLOSE——关闭TCP/UDP/SSL连接

设置指令:用于多连接的情况
AT+CIPCLOSE=<link ID>

执行指令:用于单连接的情况
AT+CIPCLOSE

响应:OK
参数说明:
<link ID>:需要关闭的连接ID号
当ID为5时,关闭所有连接(开启server后ID为5无效)

12、AT+CIFSR——查询本地IP地址

执行指令:
AT+CIFSR

响应:+CIFSR :<IP address>

        +CIFSR :<IP address >

        OK 

参数说明:
<IP address> :
        ESP8266 sofAP的IP地址

        ESP8266 station的IP地址

 

13、AT+CIPMUX——设置多连接

设置指令:
AT+CIPMUX=<mode>

查询指令:
AT+CIPMUX ?

响应:+CIPMUX :<mode>

        OK

参数说明:

<mode>
        0:单连接模式

        1:多连接模式

14、AT+CIPSERVER——设置TCP server

设置指令:

AT+CIPSERVER=<mode>,[<port>]

响应:OK

参数说明:
<mode>
        0:关闭server
        1:建立server

<port>:端口号,默认为333

15、AT+CIPMODE——设置传输模式

设置指令:
AT+CIPMODE=<mode>

查询指令:
AT+CIPMODE ?

响应:+CIPMODE:<mode>

        OK

参数说明:

<mode>
        0:普通传输模式
        1:透传模式,仅支持ICP单连接和UDP固定通信对端的情况

16、AT+SAVETRANSLINK——保存透传连接到flash

AT+SAVETRANSLINK功能一:保存透传连接(TCP单连接)到Flash 

设置指令:
AT+SAVETRANSLINK
=<mode>, <remote IP or damainname>,<remote port>,<type>,[<TCP keep alive>]
响应:OK或者ERROR

参数说明:
<mode>
        0:取消开机透传
        1:保存开机进入透传模式
<remote IP>:远端IP或者域名

<remote port>:远端port
<type>:选填参数,TCP或者UDP,缺省默认为TCP

[<TCP keep alive >]:选填参数,TCP keep alive 侦测,缺省默认关闭此功能

0:关闭TCP keep alive功能
1~7200:侦测时间,单位为s

 AT+SAVETRANSLINK功能二:保存透传连接(UDP传输)到Flash

设置指令:
AT+SAVETRANSLINK=<mode>,<remote IP>,
<remote port>,<type>,[<UDP
local port>]
响应:OK或者ERROR
参数说明:
<mode>
        0:取消开机透传
        1:保存开机进入透传模式
<remote IP>:远端IP
<remote port>:远端port
<type>:UDP,若缺省则默认为TCP
[<UDP local port>l:选填参数开机进入UDP传输时使用的本地端口

17、AT+CIPSTO——设置TCP server超时时间

设置指令:
AT+CIPSTO=<time>

查询指令:
AT+CIPSTO ?

响应:+CIPSTO :<time>
OK
参数说明:
<time>:TCP server超时时间,取值范围为0~7200s

18、AT+PING——PING功能

设置指令:
AT+PING=<IP>
响应:+<time>
OK
或者ERROR//表示PING失败

参数说明:
<IP>:字符串参数,IP地址

<time>:PING响应时间

19、AT+CIUPDATE——通过WIFI升级软件

执行指令:
AT+CIUPDATE
响应:+CIPUPDATE :<n>
        OK
参数说明:
<n>
        1:找到服务
        2:连接到服务器
        3:获得软件版本
        4:开始升级

20、AT+CIPDINFO——接收网络数据时,“+IPD”是否提示对端IP和端口

设置指令:
AT+CIPDINFO=<mode>
响应:OK
参数说明:
<mode>
0:不显示对端IP和端口
1:显示对端IP和端口

21、+IPD——接收网络数据

①单连接时:
(+CIPMUX=0)
+IPD,<len>,[<remote IP>,
<remote port>]:<data>
② 多连接时:
(+CIPMUX=1)
+IPD,<ink ID>,<len>,[<remote
IP>,<remote port>]: <data>

[<remote IP>]:网络通信对端IP,由指令“AT+CIPDINFO=1”使能显示

[<remote port>]:网络通信对端端口,由指令“AT+CIPDINFO=1”使能

<linkID>:接收到网络连接的ID号
<len>:数据长度
<data>:收到的数据


http://www.ppmy.cn/server/160632.html

相关文章

PHP基础(下)

一.数组 1.数组的基本概念 介绍&#xff1a;在 PHP 中&#xff0c;数组是一种非常重要的数据结构&#xff0c;它可以存储多个值。这些值可以是不同的数据类型&#xff0c;包括整数、浮点数、字符串、对象&#xff0c;甚至是其他数组。 2.数组类型 A.索引数组 介绍&#xff…

校园水电费管理小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

在 Ubuntu 22.04 上安装 Kubernetes(Kubeadm 安装方式)

使用 Kubeadm、Containerd 和 Calico 网络插件搭建 Kubernetes 集群教程 1.安装前准备&#xff08;所有节点执行&#xff09; 关闭防火墙 sudo systemctl disable --now ufw设置服务时区 # 设置为亚洲的上海时区 sudo timedatectl set-timezone Asia/Shanghai # 重启时间同…

Uniapp判断设备是安卓还是 iOS,并调用不同的方法

在 UniApp 中&#xff0c;可以通过 uni.getSystemInfoSync() 方法来获取设备信息&#xff0c;然后根据系统类型判断当前设备是安卓还是 iOS&#xff0c;并调用不同的方法。 示例代码 export default {onLoad() {this.checkPlatform();},methods: {checkPlatform() {// 获取系…

52.this.DataContext = new UserViewModel(); C#例子 WPF例子

“对于这个(this)窗口(View)&#xff0c;请使用这个实例(UserViewModel)作为其数据源(DataContent)。” 下面是对this.DataContext new UserViewModel();这行代码的详细解释&#xff1a; this关键字&#xff1a; 在这个上下文中&#xff0c;this指的是当前的View对象&#xf…

25/1/15 嵌入式笔记 初学STM32F108

GPIO初始化函数 GPIO_Ini&#xff1a;初始化GPIO引脚的模式&#xff0c;速度和引脚号 GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA的引脚0 GPIO输出控制函数 GPIO_SetBits&#xff1a;将指定的GPIO引脚设置为高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将GPIO…

Vue3轮播图左右联动

1、轮播图部分&#xff0c;右边鼠标移入&#xff0c;左边对应展示轮播图 可以在swiper 官网 Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 选择vue中使用swiper npm i swiper 左右两边的联动&#xff1a;左边的轮播图和右边的小的列表他们的列表组成结构是一样的&#…

【Red Hat8】:搭建FTP服务器

目录 一、匿名FTP访问 1、新建挂载文件 2、挂载 3、关闭防火墙 4、搭建yum源 5、安装VSFTPD 6、 打开配置文件 7、设置配置文件如下几个参数 8、重启vsftpd服务 9、进入图形化界面配置网络 10、查看IP地址 11、安装ftp服务 12、遇到拒绝连接 13、测试 二、本地…