ESP32-WROOM-32 TCP通讯AT指令例程

ESP32-WROOM-32

在这里插入图片描述

前言

软硬件准备:
ESP32-WROOM-32、USB数据线、USB转TTL模块、手机(本文用手机测试,也可以用电脑测试)、杜邦线、
乐鑫官方ESP32-WROOM-32的出厂AT固件、Flash Download Tools、串口助手、TCP调试助手APP(手机\电脑)

固件烧录

固件烧录要用到ESP32-WROOM-32、USB数据线、乐鑫官方ESP32-WROOM-32的出厂AT固件和Flash Download Tools烧录工具。
在这里插入图片描述
打开下载软件后载入,固件包里路径为

X:XXX\ESP32-WROOM-32_AT_Bin_V2.4.0.0\ESP32-WROOM-32-V2.4.0.0\factory

里面名为“factory_WROOM-32.bin”的固件,起始地址为0,勾选上“DoNotChgBin”,选好串口开始下载。
在这里插入图片描述

测试AT指令

乐鑫官方的这个AT固件UART1只能打印日志,需要发送AT指令的话需要用UART2,ESP32-WROOM-32一般是把UART1接到串口芯片转USB口引出,而UART2只是把引脚引出来,没有接转USB芯片,这时就要用到USB转TTL了。
USB转TTL接到ESP32-WROOM-32的UART2上,上电,
打开串口助手
波特率为115200,停止位1,数据位8,无校验
发送“AT”,查看烧录的AT固件是否正常运行

ESP32 USB转TTL
RX2 TX
TX2 RX
GND GND
VCC 5V

在这里插入图片描述
AT固件正常运行。

TCP通讯\透传

ESP32配置SoftAP

在实现ESP32和手机之间进行TCP通讯\透传之前,需要让两者通过WIFI连接,下文以ESP32的SoftAP为例。

  1. 接着上面的AT指令测试后,发送
AT+CWMODE=2			//打开ESP32的SoftAP模式
/*
AT+CWMODE=<mode>[,<auto_connect>]
<mode>:模式
  0: 无 Wi-Fi 模式,并且关闭 Wi-Fi RF
  1: Station 模式
  2: SoftAP 模式
  3: SoftAP+Station 模式
<auto_connect>
是否启用自动连接 AP 的功能,参数缺省使用默认值,启用自动连接 AP 的功能
参数为0时禁用自动连接 AP 的功能
*/

上面命令用于开启ESP32的SoftAP模式,后面用到的指令不再讲解对应参数的具体内容(太长了),感兴趣的可以自行查看AT指令集。

  1. 配置AP的具体参数,发送
AT+CWSAP="YouXin","1234567890",5,3
/*
SSID为YouXin
password为1234567890
可自行更改上面的参数
*/
  1. 发送
AT+CWDHCP=1,1
/*
开启DHCP,默认DHCP地址池为192.168.4.2-192.168.101,地址池可改
*/
  1. 开启了DHCP后,手机下载一个TCP调试助手(自行网上找),手机找到ESP32的WIFI,上面配置的SSID为YouXin,所以去找名为YouXin的WIFI并连接。

ESP32作TCP Client连接TCP Server通讯/透传

普通传输模式

–接上–

  1. 手机连上ESP32的WIFI后,打开TCP调试助手。
  2. 选择“TCP服务端”,不同的软件可能会名字不同,有可能会叫“TCP服务器”,
  3. 新建TCP服务,Load IP为手机本机的IP地址,不知道是多少的话可以看ESP32的串口输出,连接 上WIFI后ESP32的串口会输出连接信息,其中就有连接设备的IP地址。端口号输入一个没有占用的,本次测试以1000为例。
  4. 在串口助手发送连接TCP Server的指令
AT+CIPSTART="TCP","192.168.4.2",1000		//ESP32连接TCP服务器
/*
第一个参数表示网络连接类型,本次是TCP连接,所以网络连接类型为TCP
第二个参数为TCP Server的地址
第三个参数为远端端口号
*/

发送上面的建立 TCP 连接指令后,如果成功连接串口助手会返回相关信息。
到了这一步,手机通过TCP调试助手已经可以发送数据给ESP32了,ESP32接收到数据后会在串口打印输出。
虽然ESP32可以收到了手机发过来的数据了,但是这个时候如果想从ESP32发送数据到手机上,串口助手会返回ERROR,并且没有把数据发出去,这时进行下一步。

  1. 发送
AT+CIPSEND=<Length>		//发送指定长度的数据请求
/*
由于这次实验ESP32充当的是TCP Client,所以是单连模式,这条指令就只有Length一个参数
Length:需要发的数据长度
*/

当发送上面指令成功后,ESP32进入指定长度数据发送的状态,可以发送一次数据长度小于Length的数据,发送完后,ESP32会返回AT模式,每次发送数据都要先发AT+CIPSEND=XX(太麻烦了不是?),进入透传后就不需要发,发送指定长度数据请求的指令了。

演示

普通传输

在这里插入图片描述

WIFI透传

  1. 发送
AT+CIPCLOSE		//断开TCP连接

断开TCP连接后再发送

AT+CIPSTART="TCP","192.168.4.2",1000		//ESP32连接TCP服务器

重新连接TCP Server

  1. 发送
AT+CIPMODE=1		//进入WIFI透传模式

进入WIFI透传模式,注意WIFI透传模式仅支持TCP单连模式、UDP 固定通信对端、SSL 单连接的情况。

  1. 进入WIFI透传模式后,发送开始传输的指令即可开始透传
AT+CIPSEND		//开始发送数据

这一步成功后,ESP32的就进入了WIFI输出据透传状态,期间发送AT指令无效

  1. 退出透传,当完成了透传后,不需要透传了,ESP32返回AT指令状态发送
+++	

注意 发送退出透传的指令时,不要带换行

  1. 发送
17.AT+CIPCLOSE	//断开TCP连接

断开ESP32与TCP Server的连接,WIFI透传结束。

演示

WIFI透传

在这里插入图片描述

ESP32做TCP Server连接TCP Client通讯

ESP32作为TCP Server连接TCP Client通讯与上面的一样,前面都是需要配置AP和连接WIFI,所以直接接着 ESP32配置SoftAP这一节的最后一步,进行第五步操作开始进行ESP32作为TCP Server与手机建立TCP连接通讯

  1. 设置ESP32的的连接模式为多连接,发送
AT+CIPMUX=1		//设置为多连模式
  1. 创建TCP服务,发送
AT+CIPSERVER=1,80		//建立TCP服务器
/*
参数一为建立服务,该参数为0时,关闭服务
第二个参数为端口号
*/
  1. 上面发送完建立TCP服务后,手机打开TCP调试助手APP ,选择“TCP客户端”。
  2. 手机在TCP调试助手“TCP客户端”界面,输入TCP Server的IP,默认是192.168.4.1,端口号上面配置的是80,所以手机在TCP调试助手“TCP客户端”界面端口号输入80,点击连接。
  3. 由于是多连模式,所以手机通过TCP联机到ESP32后,ESP32的串口会打印出LinkID,后面ESP32发送数据到手机上时需要用到这个LinkID
  4. ESP32通过TCP发送数据到手机
AT+CIPSEND=<link ID>,<length>		//ESP32发数据到手机的发送请求
/*
第一个参数Link ID为Client连接上后TCP Server用于区分Client而分配的ID,如果只是连了一台设备的话一般为0;
第二个参数Length:需要发的数据长度
*/

上面指令发送成功后即可发送小于Length长度的数据到手机上,手机可直接发送数据到ESP32上面。
由于是多连模式,所以无法进入WIFI透传,上面发送WIFI透传的指令时有说明,所以ESP32作为TCP Server连接TCP Client通讯只能是普通传输模式。

演示

普通传输

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42250136/article/details/130726689