跳到主要内容

UDP实验

WIFI UDP

前言

对于 lwIP 的 Socket 的使用方式,它与文件操作非常相似。在文件操作中,我们首先打开文件,然后进行读/写操作,最后关闭文件。在TCP/IP网络通信中,也存在着相同的操作流程,但所使用的接口不再是文件描述符或 FILE*,而是被称为 Socket 的描述符。通过 Socket,我们可 以进行读、写、打开和关闭操作来进行网络数据的传输。此外,还有一些辅助函数,如查询域名/IP 地址和设置 Socket 功能等。在本章中,我们将使用 Socket 编程接口来实现 UDP 实验。

本实验对应的工程文件夹为:<开发板A盘路径>/4,程序源码/v_5.5版本例程/2,扩展例程-IDF版/2,WiFi例程/05_WiFi_UDP

实验准备

1.Socket 编程 UDP 连接流程 。

启动流程

在实现 UDP协议之前,用户需要按照以下步骤配置结构体 sockaddr_in的成员变量,以便建立 UDP 连接:
1,配置 ESP32-S3 设备连接网络(必须的,因为 WiFi 是无线通信,所以需搭建通信桥梁)。
2,将 sin_family 设置为 AF_INET,表示使用 IPv4 网络协议。
3,设置 sin_port 为所需的端口号,例如 8080。
4,设置 sin_addr.s_addr 为本地 IP 地址。
5,调用函数 Socket 创建 Socket 连接。请注意,该函数的第二个参数指定连接类型。SOCK_STREAM 表示 TCP 连接,而 SOCK_DGRAM 表示 UDP 连接。
6,调用函数 bind 将本地服务器地址与 Socket 进行绑定。
7,调用适当的收发函数来接收或发送数据。

  1. 硬件设计
例程功能与硬件资源

本实验主要通过 Socket 编程接口实现了一个 UDP 服务器。这个服务器具有以下功能:首先,可以通过按键发送 UDP 广播数据给其他 UDP 客户端。其次,能够接收其他 UDP 客户端发送的广播数据。最后,实时将接收到的数据显示在 LCD 屏幕上。
1,LED(RED) - IO1_1
2,正点原子 2.4 寸LCD屏幕
3,ESP32-S3 内部 WiFi

3.原理图

原理图

本章实验使用的 WiFi 为 ESP32-S3 的片上资源,因此并没有相应的连接原理图。

  1. 软件设计
软件设计

程序启动后初始化并连接网络,创建key、led和send任务。按键触发发送消息,UDP接收并串口输出,发送任务根据flag状态发送数据并清除标志,LED循环闪烁提示状态。

  1. 将对应接口的电源线接入 DNESP32S3 BOX3 开发板底板的 USB Type-C 接口,为其进行供电。

实验现象

在程序中,首先需要设置好能够连接的网络账号和密码。然后,使用笔记本电脑作为终端,确保它与 ESP32-S3 设备处于同一网络段内。当 ESP32-S3 设备成功连接到网络时,它的 LCD 显示屏上会显示相应的内容:

01

打开网络调试助手,然后配置网络参数,如 UDP 协议、端口号、目标主机设置等,设置内容如下图所示:

01

在确保网络连接正常后,可以通过按下开发板上的 KEY0 按键来发送数据至网络调试助手。当网络调试助手接收到“ALIENTEK DATA”字符串时,它会在显示区域展示这个信息。此外,用户还可以在调试助手的发送区域自行输入要发送的数据,然后点击发送键,将数据发送至ESP32-S3 设备。此时, ESP32-S3 的串口将打印接收到的数据,具体操作和输出如下图所示:

01