ESP8266—01模块的3种工作模式
ESP8266有三种工作模式
1、station(客户端模式):类似于手机,小爱音响等设备(client)
2、AP(接入点模式):类似于路由器(server),可以让其他设备访问
3、station+AP(客户端+接入点模式)
注:配置ESP8266的AT指令时每条指令后面都要加回车再发送。
文章中标号为步骤。
一、Station模式(作为设备需要连接路由器)
1、AT+CWMODE=1 响应OK //工作模式在station模式下,设置参数保存到flash
说明:选择 WIFI 应用模式: 1-Station 模式,2-AP 模式,3-AP 兼 Station 模式
2、AT+RST 模式切换时需要用到 返回结果为 ready
说明:重启模块的命令
3、AT+CWMODE? +AT+CWMODE:2 (换行) 响应OK //查询当前模式指令,可以不要
4、AT+CWLAP 响应 可以连接的热点(AP) 格式+ CWLAP: <ecn>,<ssid>,<rssi>,<mac>
说明:列出当前可用 AP
<ssid>:类型 字符串, 接入点名称
<pwd>:类型 字符串, 密码(最大64字节)
<chl>: 通道号
<ecn>; 加密类型0 — OPEN,1—WEP,2—WPA_PSK,3—WPA2_PSK,4—WPA_WPA2_PSK
5、AT+CWJAP="Redmi","ch123456" 响应WIFI CONNECTED OK
说明: 连接WIFI,设置参数保存到flash 12306 (wifi名称),12345qwer(wifi密码)
AT+ CWJAP =<ssid>,< pwd >
<ssid>:类型 字符串, 接入点名称
<pwd>:类型 字符串, 密码(最大64字节)
6、AT+CWJAP? 响应 +CWJAP:"Redmi","6a:ab:eb:6b:4b:ae",1,-48
说明:查询连接的WIFI名称
7、AT+CIFSR 响应 +CIFSR:STAIP,"192.168.43.57"
+CIFSR:STAMAC,"cc:50:e3:1d:c3:5a"
说明:获取本机目前的 IP 地址,第一行为 AP 下的 IP,第二行为 STAMAC下的 IP
ESP8266的寄存器可以使用电脑ping通
8、AT+CIPSTA_CUR="192.168.6.100","192.168.6.1","255.255.255.0" 响应OK
说明:分配固定IP地址,可以不要
9、打开电脑WIFI连接ESP8266的网络,用网络调试助手配置TCP Server模式并激活
10、AT+CIPSTART="TCP","192.168.43.104",8080 响应CONNECT OK
说明: 建立 TCP 连接或注册 UDP 端口号 , 本例中192.168.43.104为服务器IP地址,8080为端口
单路连接:(+CIPMUX=0)AT+CIPSTART=<type>,<addr>,<port>
多路连接:(+CIPMUX=1)AT+CIPSTART=<id><type>,<addr>,<port>
<id> 0-4 连接的 id 号
<type> 字符串参数,表明连接类型”TCP”建立 tcp 连接”UDP”建立 UDP 连接
<addr> 字符串参数,远程服务器 IP 地址
<port> 远程服务器端口号
11、AT+CIPSEND=4 响应OK
说明 响应
发送指定长度的数据。收到此命令后先换行返回”>”,然后开始接收串口数据,当数据长度满 length 时发送数据。如果未建立连接或连接被断开,返回ERROR如果数据发送成功,返回SEND OK
单路连接时:(+CIPMUX=0)AT+CIPSEND=<length>
多路连接时:(+CIPMUX=1)AT+CIPSEND=<id>,<length>
<id>需要用于传输连接的 id 号
<length>数字参数,表明发送数据的长度,最大长度为2048
12、ABCD 响应SEND OK
13、把网络调试助手的“连接对象”选择成模块IP地址,在下面输入:CDEFG,点发送,然后串口工具会受到+IPD,5:CDEFG。意识是接受的数据长度是5个字节,CDEFG为数据内容。
二、AP模式(作为路由器)
1、AT+CWMODE=2 响应OK //工作模式为AP模式,相当于路由器
说明:选择 WIFI 应用模式: 1-Station 模式,2-AP 模式,3-AP 兼 Station 模式
2、AT+RST 模式切换时需要用到 返回结果为 ready
说明:重启模块的命令
2、AT+CWMODE? +AT+CWMODE:2 (换行) 响应OK //查询当前模式指令,可以不要
3、AT+CWSAP="Text","ch123456",11,4 响应OK
说明: 指令AT+ CWSAP=<ssid>,<pwd>,<chl>,<ecn>;
<ssid>:类型 字符串, 接入点名称
<pwd>:类型 字符串, 密码(最大64字节)
<chl>: 通道号
<ecn>; 加密类型0 — OPEN,1—WEP,2—WPA_PSK,3—WPA2_PSK,4—WPA_WPA2_PSK
注:修改通道后需要(AT+RST)重启模块
4、AT+CIPMUX=1 响应OK
说明:建立 TCP 连接或注册 UDP 端口号
1) 设置 AT+CIPMUX=0 单路连接
+CIPSTART:(<type>取值列表),(<IP address>范围),(<port>范围)
+CIPSTART:(<type>取值列表),(<domain name>范围),(<port>范围)
2) 设置 AT+CIPMUX=1 多路连接
+CIPSTART:(id),(<type>取值列表),(<IP address>范围),(<port>范围)
+CIPSTART: (id), (<type>取值列表),(<domain name>范围),(<port>范围)
配合AT+CIPSTART指令使用
开启多连接模式,只有在多连接模式下才能开启服务器模式,
注:透传只能在单连接模式下进行
5、AT+CIPSERVER=1,8080 响应OK
说明: 开启模块本地的 TCP 服务器
其中 1 为开启, 如果设为 0 则关闭; 设置端口为8080
6、然后配置好手机的网络调试助手,就可以发送数据到ESP8266,断开网络调试助手连接后会返回 CLOSED 网络调试助手模式为"TCP Client"模式,添加”IP:192.168.4.1(模块默认的IP)”端口号8080
7、AT+CIPSEND=0,10 响应OK
说明:发送数据 0是端口号,10是数据长度
发送指定长度的数据。收到此命令后先换行返回”>”,然后开始接收串口数据,当数据长度满 length 时发送数据。如果未建立连接或连接被断开,返回ERROR如果数据发送成功,返回SEND OK
单路连接时:(+CIPMUX=0)AT+CIPSEND=<length>
多路连接时:(+CIPMUX=1)AT+CIPSEND=<id>,<length>
<id>需要用于传输连接的 id 号
<length>数字参数,表明发送数据的长度,最大长度为2048
AT+CIPSEND
响应 收到此命令后先换行返回”>”然后就进入了透传模式,每包数据以 20ms 间隔区分,每包最大 2048 字节。当输入单独一包”+++”返回指令模式。该指令必须在开启透传模式以及单连接模式下使用
补充:
AT+CIFSR 响应 +CIFSR:STAIP,"192.168.43.57"
+CIFSR:STAMAC,"cc:50:e3:1d:c3:5a"
说明:获取本机目前的 IP 地址,第一行为 AP 下的 IP,第二行为 STAMAC下的 IP
获取本地IP地址,默认IP:192.168.4.1
AT+CIPSTO=<time> 响应 OK
说明: < time>0~28800 服务器超时时间,单位为 s
设置超时时间(当ESP8266作为客户端(路由器)时,如果一段时间(超时时间)内没有数据传输会自动断开)
三、Station - AP模式
1、AT+CWMODE=3 响应OK //工作模式为station-AP模式,相当于路由器模式和station模式下,设置参数保存到flash
说明:选择 WIFI 应用模式: 1-Station 模式,2-AP 模式,3-AP 兼 Station 模式
2、AT+RST 模式切换时需要用到 返回结果为 ready
说明:重启模块的命令
2、AT+CWMODE? +AT+CWMODE:3 (换行) 响应OK //查询当前模式指令,可以不要
3、AT+CWSAP="Text","ch123456",11,4 响应OK
说明: 指令AT+ CWSAP=<ssid>,<pwd>,<chl>,<ecn>;
<ssid>:类型 字符串, 接入点名称
<pwd>:类型 字符串, 密码(最大64字节)
<chl>: 通道号
<ecn>; 加密类型0 — OPEN,1—WEP,2—WPA_PSK,3—WPA2_PSK,4—WPA_WPA2_PSK
4、打开电脑WIFI连接上ESP8266,然后打开网络调试助手,TCP server-配置-激活-能看到此时手机的IP和端口号
5、AT+CIPMODE=1 响应OK //开启透传模式
说明:设置模块传输模式 响应OK
如果已经处于连接状态则,返回Link is builded
AT+CIPMODE=<mode>
<mode>0 非透传模式1 透传模式
6、AT+CIPMUX=0 响应OK //开启单路模式
说明:建立 TCP 连接或注册 UDP 端口号
1) 设置 AT+CIPMUX=0 单路连接
+CIPSTART:(<type>取值列表),(<IP address>范围),(<port>范围)
+CIPSTART:(<type>取值列表),(<domain name>范围),(<port>范围)
2) 设置 AT+CIPMUX=1 多路连接
+CIPSTART:(id),(<type>取值列表),(<IP address>范围),(<port>范围)
+CIPSTART:(id), (<type>取值列表),(<domain name>范围),(<port>范围)
配合AT+CIPSTART指令使用
7、AT+CIPSTART="TCP","192.168.4.2",1234 响应CONNECT OK
说明:建立 TCP 连接或注册 UDP 端口号
响应:如果格式正确且连接成功,返回OK
否则返回ERROR
如果连接已经存在,返回ALREAY CONNECT
单路连接:(+CIPMUX=0)AT+CIPSTART=<type>,<addr>,<port>
多路连接:(+CIPMUX=1)AT+CIPSTART=<id><type>,<addr>,<port>
<id> 0-4 连接的 id 号
<type> 字符串参数,表明连接类型 ”TCP”建立 tcp 连接”UDP”建立 UDP 连接
<addr> 字符串参数,远程服务器 IP 地址
<port> 远程服务器端口号
192.168.4.2为手机的服务器IP地址,1234为手机的端口号。
8、AT+CIPSEND 响应OK //ESP8266发送数据到手机。
说明:发送数据
单路连接时:(+CIPMUX=0)AT+CIPSEND=<length>
多路连接时:(+CIPMUX=1)AT+CIPSEND=<id>,<length>
响应
发送指定长度的数据。收到此命令后先换行返回”>”,然后开始接收串口数据,当数据长度满 length 时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回SEND OK
<id>需要用于传输连接的 id 号
<length>数字参数,表明发送数据的长度,最大长度为2048
AT+CIPSEND
响应收到此命令后先换行返回”>”然后就进入了透传模式,每包数据以 20ms 间隔区分,每包最大 2048 字节。当输入单独一包”+++”返回指令模式。该指令必须在开启透传模式以及单连接模式下使用
此时电脑可以和ESP8266双向通信。
工具资源链接:https://download.csdn.net/download/qq_37387733/13108078