秋葵炒什么好吃| 泌尿系统感染吃什么药| 吃卡培他滨禁止吃什么| 吃饭不规律会导致什么问题| 笔记本电脑什么品牌好| 杨少华什么辈分| 虾片是什么做的| 什么是c字裤| 骷髅是什么意思| 什么人不能吃玉米| fe是什么元素| 司空见惯什么意思| 什么夺天工| 吃无花果有什么好处和坏处| 什么是穿刺| 下面瘙痒用什么药膏| 口腔溃疡吃什么维生素| 给孕妇送什么礼物好| 子午相冲是什么意思| ferragamo是什么牌子| 窦性心律早期复极是什么意思| venus是什么星球| 眼力见是什么意思| 柏树长什么样子| 耳膜炎是什么原因引起的| 羊冲什么生肖| 精卫填海是什么意思| 梦到捡金子首饰是什么意思| 茉莉花茶属于什么茶类| 恶寒发热是什么意思| 排骨炖什么比较好吃| 指甲扁平是什么原因| 移动迷宫到底讲的什么| 大便黑色什么原因| gpt是什么| 做爱女生是什么感觉| 玻璃水是什么| 外婆菜是什么菜| 恃势之刑是什么意思| 牛后腿肉适合做什么| 擦汗表情是什么意思| 小便粉红色是什么原因| 怀孕查甲功是什么意思| 火影忍者什么时候出的| 北极熊代表什么生肖| 鼠的五行属什么| 北极为什么没有企鹅| 中药不能和什么一起吃| 左眼屈光不正是什么意思| 历程是什么意思| 长春有什么特产| 酒精胶是粘什么的| 黑色素缺失吃什么补充最快| 乙肝复查检查什么项目| 四五月份是什么星座| 鸡拉稀吃什么药| nl是什么单位| 大名鼎鼎是什么意思| 抗链球菌溶血素o偏高是什么原因| 黄体酮不足吃什么| 爱哭的人是什么性格| 射频消融是什么手术| 扎巴依是什么意思| 1959年是什么年| 女人的排卵期是什么时候| 葫芦藓是什么植物| 麻头是什么| afp检查是什么意思| 小肚胀是什么原因| 油性皮肤适合用什么护肤品| 社会很单纯复杂的是人是什么歌| 2000年出生属什么| 一个木一个西读什么| 在家里做什么能赚钱| 艾滋病吃什么药| 东面墙适合挂什么画| 备是什么意思| 乙肝25阳性什么意思| 检查血液挂什么科| 红色的对比色是什么颜色| 西凤酒是什么香型| 农历今天属什么生肖| 鸟来家里预示什么| 不打破伤风针会有什么后果| 不丹为什么不跟中国建交| 什么地叹气| 夏天穿什么鞋| 压榨是什么意思| 晚上11点多是什么时辰| 无与伦比是什么意思| 眼袋肿了是什么原因| 面试要准备什么东西| 无氧运动是什么| 精力是什么意思| 眼睛红红的是什么原因| 星期天左眼皮跳是什么预兆| 吃什么对心脏有好处| 2000年为什么叫千禧年| 甲基蓝治疗什么鱼病| 39岁属什么| 去脚气用什么药最好| 以爱之名什么意思| 恩字五行属什么| 天麻能治什么病| 3ph是什么意思| 黄精药材有什么功效| 黄皮不能和什么一起吃| 试管都有什么方案| 一进去就射是什么原因| 香榧是什么东西| 金银花什么时候开花| 身上无力是什么原因| 麾下是什么意思| 月半是什么意思| 早搏吃什么药最管用| 小腿抽筋是什么原因引起的| 痔疮吃什么消炎药好得快| 苹果a1661是什么型号| 遇难呈祥是什么生肖| 脑瘤是什么原因引起的| 孙俪最新电视剧叫什么| 夜深人静是什么意思| 水肿是什么原因引起的| 中性是什么意思| 女人手心热吃什么药好| 羊蝎子是什么| 蔻驰和古驰有什么区别| 叛变是什么意思| 骨髓捐赠对自己有什么影响没有| 清洁度111是什么意思| 山东特产是什么生肖| 小孩子拉肚子吃什么药| 三十六计第一计是什么| 脸上为什么长斑| 龙蛇混杂是什么意思| 飞蚊症是什么原因造成的能治愈吗| 广州五行属什么| 宫闱是什么意思| 舌苔厚黄吃什么药最好| 流清鼻涕吃什么药| 总lge是什么意思| 张国立的老婆叫什么名字| 陈皮是什么| 厚黑学什么意思| 7.31什么星座| 木加号读什么| 做梦梦见死去的亲人是什么意思| 生理期能吃什么水果| 吃什么水果补铁| 上海市市委书记是什么级别| 做梦死人了是什么征兆| 1946年属狗的是什么命| Years什么意思| 彩色多普勒超声常规检查是什么| 9月27是什么星座| 送医生什么礼物好| 辅警是什么编制| 宝贝是什么意思| 蚊虫叮咬涂什么药| 南京市徽为什么是貔貅| 提携是什么意思| 6月28号是什么星座| 吃什么水果补铁| 物欲横流什么意思| 安罗替尼适合什么肿瘤| 五味子长什么样| 做梦梦见打架是什么意思| 爬是什么结构| 考护师需要什么条件| 睡莲和碗莲有什么区别| 为什么一直睡不着| 除日是什么意思| 胃肠道功能紊乱吃什么药| 鹅口疮有什么症状| 疫苗是什么| 感统失调是什么意思| 拔牙挂什么科室| 手指甲有黑色条纹是什么原因| 三杯鸡为什么叫三杯鸡| 支气管舒张试验阳性说明什么| 糠是什么东西| 放疗和化疗有什么区别| pnp是什么意思| 泰迪狗长什么样子| 9.11是什么星座| 香蕉为什么是弯的| 因特网是什么意思| 肠炎发烧吃什么药| 激素吃多了对身体有什么副作用| 手心痒痒是什么预兆| 腿总是抽筋是什么原因| ln是什么| 热病是什么病| 准备好了吗时刻准备着是什么歌| 为什么白带是绿色| 南方元旦吃什么| 经期不能吃什么| 看肛门挂什么科| 乳腺癌ki67是什么意思| 鸟加一笔变成什么字| 胆结石忌吃什么| 王加玉念什么| 无动于衷什么意思| 嗜碱性粒细胞偏低说明什么| 芒果什么季节成熟| 小孩子晚上睡觉磨牙是什么原因| 卵泡长得慢是什么原因造成的| 耳鸣是什么原因| 脂肪肝喝什么茶最好最有效| 大脚趾头疼是什么原因| 胃不好喝什么茶好| 太阳穴长痘痘是什么原因| 头发染什么颜色显皮肤白显年轻| 1114是什么星座| 十里八乡什么意思| 督导是什么| sobranie是什么烟| 肺肿了是什么病严重吗| 睾丸积液吃什么药最好| 治疗静脉曲张有什么药| 西洋参有什么作用| 卧轨什么意思| 甲状腺一度肿大是什么意思| 桥本氏甲状腺炎吃什么药| 胆汁酸高是什么意思| 奄奄一息的息是什么意思| 樟脑是什么| 湛蓝湛蓝的什么| 如来佛祖叫什么名字| 女人脖子后面有痣代表什么| 推车是什么意思| 5.13是什么星座| 咖啡因是什么东西| 怀孕六个月出血是什么原因| 肝炎吃什么药好| 洋葱不能和什么食物一起吃| 长粉刺是什么原因| 什么是阴阳| 艾滋病有什么症状| 吃什么食物能补钾| 托人办事送什么礼物较好| 梦见自己吃面条是什么意思| 肚子隐隐作痛什么原因| 小孩抽多动症吃什么药最好| 背痛是什么原因引起的| 补刀什么意思| 辟谷是什么意思| 乳腺看什么科室| 霉菌性阴道炎是什么症状| 女性口臭都是什么原因| 野兔子吃什么| 5.13是什么星座| 肠炎可以吃什么水果| 女性阴部痒是什么原因| 9是什么意思| 肚脐眼上面是什么部位| 梦到买房子是什么意思| 紧迫感是什么意思| 农历12月18日是什么星座| 无机磷偏低有什么影响| 梦见别人开车翻车是什么预兆| 心态崩了什么意思| 榴莲对孕妇有什么好处| 1月15号是什么星座| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? DIY与开源设计 ? 电子DIY ? 【ESP-IDF系列】【ESP32】使用ESP-32-S3进行UDP通讯实现数据

共5条 1/1 1 跳转至

【ESP-IDF系列】【ESP32】使用ESP-32-S3进行UDP通讯实现数据收发

工程师
2025-08-04 16:31:06     打赏
百度   当晚7点30分,话剧正式开始。

简介

UDP(User Datagram Protocol,用户数据报协议)是一种无连接、轻量级的传输层协议,它属于 TCP/IP 协议族。UDP 协议的主要特点是传输速度快、延迟低,适合需要快速、实时传输数据的应用场景。不过,它并不保证数据传输的可靠性,也就是说,数据可能丢失、乱序或重复。但是相对于TCP, 它的传输速度更快, 传输过程中开销更小. 在本文中我们将探索如何使用ESP32-S3在ESP-IDF的环境下使用UDP和上位机实现数据的收发功能.


需求设备

ESP32-S3 * 1 

Python 上位机服务端


网络拓扑

未命名绘图.png


其主要的步骤为使用ESP32作为UDP客户端, 使用Python作为服务端. 当两者服务启动后, ESP32-S3 将会向指定IP地址和端口的UDP服务端发起连接. 当两者连接成功之后即可进行数据的收发.

首先, 我们需要在Python中新建一个UDP服务器, 并且成功的启动服务. 

import socket

# 配置
HOST = "0.0.0.0"  # 绑定所有局域网 IP
PORT = 12345      

# 创建 UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((HOST, PORT))

print(f"UDP server is listening on {HOST}:{PORT}...")

while True:
    data, addr = sock.recvfrom(1024)  # 接收数据(最大1024字节)
    print(f"Received from {addr}: {data.decode()}")

    # 给数据加 tag
    response = f"[RECV] {data.decode()}".encode()

    # 发送回客户端
    sock.sendto(response, addr)

使用上述代码, 可以成功的启动一个UDP的服务端, 并且对局域网内的所有设备可用. 其监听的端口为12345, 当有客户端连接到服务端的时候, 那么它将接受客户端的消息,然后将消息打上一个tag再返回给服务端. 接下来我们来完成ESP-32的客户端程序开发.


对于客户端而言, 首先需要初始化UDP的客户端, 然后当连接上之后来每隔一秒向服务端发送消息.  核心代码如下

static void udp_client_task(void *pvParameters)
{
    struct sockaddr_in server_addr, client_addr;
    int sock;
    char udp_buffer[BUFFER_SIZE];
    socklen_t client_addr_len = sizeof(client_addr);

    // 创建 UDP Socket
    sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if (sock < 0)
    {
        ESP_LOGE(TAG, "Socket creation failed");
        vTaskDelete(NULL);
        return;
    }

    // 配置服务器地址
    memset(&server_addr, 0, sizeof(server_addr));
    server_addr.sin_family = AF_INET;
    server_addr.sin_port = htons(UDP_SERVER_PORT);
    server_addr.sin_addr.s_addr = inet_addr(UDP_SERVER_IP);

    ESP_LOGI(TAG, "UDP client started, sending and receiving data...");

    while (1)
    {
        // 发送 "hello world"
        const char *message = "hello world";
        int message_len = strlen(message);
        int sent_len = sendto(sock, message, message_len, 0, (struct sockaddr *)&server_addr, sizeof(server_addr));
        if (sent_len < 0)
        {
            ESP_LOGE(TAG, "Error occurred during sending: errno %d", errno);
            break;
        }
        ESP_LOGI(TAG, "Sent message: %s", message);

        // 接收数据
        int len = recvfrom(sock, udp_buffer, sizeof(udp_buffer) - 1, 0, (struct sockaddr *)&client_addr, &client_addr_len);
        if (len < 0)
        {
            ESP_LOGE(TAG, "Error occurred during receiving: errno %d", errno);
            break;
        }
        else if (len > 0)
        {
            udp_buffer[len] = '\0'; // 确保字符串以 NULL 结尾
            ESP_LOGI(TAG, "Received data: %s", udp_buffer);
        }

        vTaskDelay(1000 / portTICK_PERIOD_MS); // 每秒发送一次数据
    }

    // 关闭 Socket
    close(sock);
    vTaskDelete(NULL);
}

由于服务端是接受到消息之后才给消息打上一个TAG然后再发送回来, 因此需要客户端先发送消息. 上述代码在连接上了服务端之后便会每秒向服务端发送一条消息. 


效果如下所示(客户端发送消息和接受来自服务端打了标签的数据)

image.png


服务端接受到的数据

image.png


总结

在本文中主要对UDP的通讯进行了概述,并且探究了如何在ESP-IDF下使用UDP和服务端进行通讯. 从而实现了上位机和UDP进行双向的数据通讯. 甚至并不需要使用上位机, 也可以使用两个ESP32来完成上述的所有操作.

Esp32s3-client.zip




关键词: ESP-IDF     ESP-32     UDP通讯    

专家
2025-08-04 20:01:03     打赏
2楼

感谢分享


专家
2025-08-04 20:05:00     打赏
3楼

感谢分享


院士
2025-08-04 23:36:31     打赏
4楼

我也想玩玩ESP32,试用一下ESP32的Arduino开发环境



院士
2025-08-04 17:46:08     打赏
5楼

那就听大佬的了。直接上手idf


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
20是什么意思 三百年前是什么朝代 手麻是什么病的前兆 安踏是什么品牌 金银花搭配什么泡水喝好
好汉不吃眼前亏是什么意思 珩字五行属什么 咽喉疼痛吃什么药好 小孩智力发育迟缓挂什么科 胆囊切除对身体有什么影响
外阴白斑瘙痒用什么药 波奇饭是什么意思 甲状腺结节吃什么散结 胸外科是看什么病的 吃葵花籽有什么好处和坏处吗
区长什么级别 甲鱼蛋什么人不能吃 杨字五行属什么 心肌缺血用什么药 5月2号是什么星座
折什么时候读shehcv9jop3ns4r.cn 血脂异常是什么意思hcv7jop7ns2r.cn 头发油腻是什么原因hcv8jop8ns5r.cn 湖北有什么山hcv9jop0ns1r.cn 声字五行属什么hcv9jop5ns1r.cn
小学生什么时候开学hcv8jop1ns5r.cn 没意思是什么意思hcv8jop8ns6r.cn titus手表属于什么档次96micro.com 心源性猝死是什么意思hcv8jop4ns9r.cn 小暑是什么时候hcv9jop3ns5r.cn
胃胀胃不舒服吃什么药dajiketang.com 电轴不偏是什么意思hcv9jop6ns3r.cn 哈怂是什么意思hcv8jop0ns4r.cn 马走日是什么意思zsyouku.com 壮丁是什么意思hcv7jop5ns1r.cn
下属是什么意思hcv7jop9ns7r.cn 女性黄体期是什么意思hcv9jop0ns4r.cn 女人左眼下有痣代表什么hcv7jop5ns1r.cn 什么是偏印hcv8jop1ns0r.cn 流鼻血去药店买什么药hcv9jop7ns2r.cn
百度