WIFI ESP8266 +TCP Server/透传实战五

前言:本章节主要介绍TCP/UDP 透传以及TCP Server 实战。

ESP8266 AT 默认仅在 TCP client 单连接或 UDP 传输模式时,⽀支持透传

TCP Client 单连接透传
以下为 ESP8266 作为 station 实现 TCP client 单连接透传的举例,ESP8266 作为 softAP可同理实现透传。

1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
响应 :OK

2. 连接路路由器器
AT+CWJAP=“SSID”,“password” // SSID and password of router
响应 :OK

3. 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,“192.168.4.1”
+CIFSR:APMAC,“1a:fe:34:a5:8d:c6”
+CIFSR:STAIP,“192.168.3.133”
+CIFSR:STAMAC,“18:fe:34:a5:8d:c6”
OK

4. PC 与 ESP8266 设备连接同⼀一路路由器器,在 PC 端使⽤用⽹网络调试⼯工具,建⽴立⼀一个 TCP 服
务器。

  • 假设,PC 创建的服务器 IP 地址为 192.168.3.116,端口为 8080。

5. ESP8266 设备作为 TCP client 连接到上述服务器
AT+CIPSTART=“TCP”,“192.168.3.116”,8080 //protocol, server IP and port
响应 :OK

6. 使能透传模式
AT+CIPMODE=1
响应 :OK

7. ESP8266 设备向服务器器发送数据
AT+CIPSEND

//From now on, data received from UART will be transmitted to server automatically.
⚠ 注意:
• 发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):

  • 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK。
  • 超出⻓长度的部分数据被认为是⽆无效数据,不被接受。

8. 退出发送数据:
在透传发送数据过程中,若识别到单独的⼀一包数据 “+++”,则退出透传发送。

  • 如果使⽤用键盘打字输⼊入 “+++” ,可能耗时太⻓长,不被认为是连续的三个 “+”,建议使
    用串口工具⼀次性发送 “+++”,并请注意不要携带空格或换行符等不可⻅见字符。
  • 之后,请至少间隔 1 秒,再发下一条 AT 指令。
    注意:
    “+++“ 退出透传发送数据,回到正常 AT 指令模式。此时,TCP 连接仍然是保持的,可以再发 AT+CIPSEND
    指令,重新开始透传。

9. 退出透传模式
AT+CIPMODE=0
响应 :
OK

10.断开 TCP 连接
AT+CIPCLOSE
响应 :
CLOSED
OK

UDP 透传

以下为 ESP8266 作为 softAP 实现 UDP 透传的举例例,ESP8266 作为 station 可同理实现透传。

1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
响应 :
OK

2. PC 连⼊入 ESP8266 softAP

3. 在 PC 端使⽤用⽹网络调试⼯工具,建⽴立⼀一个 UDP 传输。

  • 假设,PC 创建的 UDP 自身 IP 地址为 192.168.4.2,端口为 1001。

4. ESP8266 与 PC 对应端口建立固定对端的 UDP 传输
AT+CIPSTART=“UDP”,“192.168.4.2”,1001,2233,0
响应 :
OK

5. 使能透传模式
AT+CIPMODE=1
响应 :
OK

6. ESP8266 设备向服务器器发送数据
AT+CIPSEND

//From now on, data received from UART will be transmitted to server automatically.
注意:
• 发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):

  • 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK。
  • 超出长度的部分数据被认为是无效数据,不被接受。

7. 退出发送数据:
在透传发送数据过程中,若识别到单独的一包数据 “+++”,则退出透传发送。

  • 如果使⽤用键盘打字输⼊入 “+++” ,可能耗时太⻓长,不被认为是连续的三个 “+”,建议使
    用串串口工具一次性发送 “+++”,并请注意不要携带空格或换行行符等不可见字符。
  • 之后,请至少间隔 1 秒,再发下一条 AT 指令。
    ⚠ 注意:
    “+++“ 退出透传发送数据,回到正常 AT 指令模式。此时,TCP 连接仍然是保持的,可以再发 AT+CIPSEND
    指令,重新开始透传。

8. 退出透传模式
AT+CIPMODE=0
响应 :
OK

9. 断开 TCP 连接
AT+CIPCLOSE
响应 :
CLOSED
OK

多连接 TCP Server

ESP8266 AT 仅⽀支持建立一个 TCP 服务器器,且必须使能多连接,即允许连接多个 TCP client。
以下为 ESP8266 作为 softAP ,建⽴立 TCP 服务器器的举例例;如果是 ESP8266 作为 station,可在连接路由后,同理建立服务器。

1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
响应 :
OK

2. 使能多连接
AT+CIPMUX=1
响应 :
OK

3. 建⽴立 TCP server
AT+CIPSERVER=1 // default port = 333
响应 :
OK

4. PC 连⼊入 ESP8266 softAP

5. 在 PC 端使⽤用⽹网络调试工具,建立一个 TCP client,连接 ESP8266 的 TCP server。

⚠ 注意:
ESP8266 作为 TCP server 有超时机制,如果连接建⽴立后,一段时间内无数据来往,ESP8266 TCP server 会将 TCP client 踢掉。因此,请在 PC TCP client 连上 ESP8266 TCP server 后建立一个 2s 的循环数据送,
用于保持连接。

6. 发送数据
// ID number of connection is defaulted to be 0.
AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0

test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK
注意:
• 发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):

  • 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK。
  • 超出长度的部分数据被认为是无效数据,不被接受。

7. 接收数据。
当 ESP8266 设备接收到服务器器发来的数据,将提示如下信息:
+IPD,0,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx

8. 断开 UDP 传输
AT+CIPCLOSE=0
响应 :
0,CLOSED
OK

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王先森001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值