在这里插入图片描述

在这里插入图片描述

行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。

主要特点
集成摄像头&内置算法,可进行离线图像检测
集成麦克风&内置算法,可进行离线语音识别
集成扬声器&内置算法,可进行离线语音合成
2.8寸彩色屏幕,数据展示更清晰
集成度高,利于教学
接口丰富,兼容软件多,扩展性好

在这里插入图片描述
行空板K10的网络服务模块,都在这里
在这里插入图片描述
添加WIFI和UDP广播模块

在这里插入图片描述
相关积木
在这里插入图片描述
在这里插入图片描述

辅助:屏幕显示相关积木

在这里插入图片描述
LED控制模块

在这里插入图片描述

知识点:行空板 K10 WiFi 局域网 UDP 广播

一、UDP 基础概念
UDP 全称用户数据报协议,属于 TCP/IP 网络协议,是无连接、广播式、尽力传输的通信方式。
放到行空板场景:所有设备连同一个 WiFi 路由器,组成局域网,依靠 IP + 端口收发数据;支持一台发送、全网所有设备同时接收,也就是 UDP 广播。
和 TCP 最大区别:不用提前握手建立连接,发消息直接抛到局域网里,速度快、代码简单,但不自动重传丢包数据。

二、运行硬性前提(必须满足)
全部通信行空板 K10 连接同一个 WiFi 热点;
设备自动获取同一段内网 IP(常见 192.168.4.xxx、192.168.1.xxx);
通信双方设置完全一致的端口号(截图示例固定 8888);
程序开头必须先执行 WiFi 配网连接,没连上 WiFi,UDP 模块无法启动。

三、相关图形积木功能解析

  1. 基础服务端积木
    设置 UDP 服务器端口 8888
    本机开启 UDP 监听服务,占用 8888 端口,持续等候局域网内所有广播数据包。一块板子可同时做服务端 + 客户端。
    当 UDP 服务器收到 广播消息
    事件回调块:一旦局域网内有设备发出广播数据,立刻触发内部执行逻辑(点灯、屏幕打印、动作指令)。
    UDP 服务器发送消息 “xxx”
    向外发送全网广播包,当前 WiFi 局域网里所有开启 UDP 8888 端口的设备全部收到这条内容。
  2. 基础客户端积木
    设置 UDP 客户端连接到服务器 IP 192.168.4.1 端口 8888
    客户端绑定目标服务端的内网 IP 与端口,建立通信目标;广播场景下 IP 可填局域网广播地址,实现一对多群发。
    UDP 客户端发送消息 “xxx”
    两种用法:①定向发给上面填写的单个服务器 IP;②发送全网广播,所有同端口设备接收。
    当 UDP 客户端收到 广播消息
    客户端独立监听广播数据包,收到数据后执行内部程序逻辑。

四、两种常用工作模式
模式 1:一对多广播(教学最常用)
1 块主控发送,N 台从板同步接收动作
主控(发送端):WiFi 联网 → UDP 开启 8888 端口 → 按键 / 陀螺仪触发「服务器发送消息」;
所有从板:WiFi 连同一个热点 → UDP 端口 8888 → 绑定「收到广播消息」回调,识别指令点灯、动作;
特点:一块板子下发指令,几十台设备同步响应。
模式 2:点对点双向通信
A 板客户端连 B 板服务端 IP,双向互发消息,适合一问一答、状态回传(比如小车上报速度、传感器数值回传给主控)。

五、完整积木程序标准结构
发送主控模板
【连接 WiFi】填入 WiFi 名称、密码(第一步必加)
【设置 UDP 服务器端口 8888】
循环 / 按键触发:【UDP 服务器发送消息 “hong”】
接收从板模板
【连接 WiFi】同一个 WiFi 账号密码
【设置 UDP 服务器端口 8888】
【当 UDP 服务器收到广播消息】
判断收到文本,匹配hong/bai/qian等指令,执行 RGB 变色、屏幕文字。

六、UDP 核心优缺点
优点
天然一对多广播:一次发送全网同端口设备接收,批量控制效率高;
速度快延迟低:无握手、无校验重传,体感几乎无卡顿;
兼容多设备:行空板、电脑、手机、ESP32 全都能互通;
数据承载量大:相比离线 Radio 射频,UDP 支持长文本、大量传感器数值、中等长度数据流;
覆盖范围广:路由器 WiFi 全屋覆盖,穿墙能力优于 2.4G 私有射频。
缺点
强依赖 WiFi 网络:无路由器、无 WiFi 环境完全无法运行,户外断电场景不能用;
无可靠传输:干扰、信号弱时会丢包,没有自动补发;稳定场景可重复发送 2 次指令;
功耗更高:WiFi 模块持续通电工作,电池续航比离线 Radio 短;
多组隔离麻烦:多小组实验要分不同 WiFi 热点才能互不干扰,不像 Radio 简单改 Group 数字。

七、实操避坑关键点
WiFi 必须一模一样:发送、接收板子 WiFi 名称、密码完全一致,大小写不能错;
端口号统一:所有设备 UDP 端口必须都是 8888,数字不同收不到;
广播无需精准匹配单个 IP:发全网广播时不用填每台从板 IP,局域网全部 8888 端口设备自动接收;
不要超大段文本发送,过长数据包容易分包乱码;
程序逻辑里不要加超长delay(),会阻塞 UDP 消息监听;
路由器 2.4G WiFi 稳定性优于 5G,行空板优先连 2.4G 频段。

在这里插入图片描述
在这里插入图片描述

局域网(Local Area Network,简称LAN)是一种在相对较小的地理范围(如一个办公室、一栋楼或者一个校园)内连接计算机和其他设备的计算机网络系统。局域网的特点是覆盖范围小、传输速度快、没有长距离通信费用。

在局域网中,用户可以共享硬件(如打印机)、软件和数据。局域网中的设备可以通过有线(如以太网)或无线(如Wi-Fi)技术连接。局域网的主要用途包括共享资源、传输数据和通信。

在这里插入图片描述

以行空板为例进行组网。

在这里插入图片描述

在这里插入图片描述

【花雕动手做】行空板K10系列实验之UDP广播双行空板K10双向通信点亮LED
实验开源代码(UDP广播服务器)

// 引入DF官方物联网WiFi驱动库,支持开启SoftAP自建热点、读取热点网关IP、WiFi状态管理
#include <DFRobot_Iot.h>
// 行空板K10整机硬件驱动库,封装屏幕、画布、A按键、RGB彩灯等全部板载外设
#include "unihiker_k10.h"
// WiFi UDP服务端专用库,用于搭建标准局域网UDP监听服务,接收客户端消息、广播回复数据
#include <DFRobot_UDPServer.h>

// 前置函数声明:编译器提前识别两个事件回调函数,用于绑定UDP接收、按键按下动作
void onButtonAPressed();
void onUdpServerRecvMsg(String message);

// 行空板K10全局硬件控制对象,统一调度屏幕、按键、RGB灯、绘图画布资源
UNIHIKER_K10      k10;
// 屏幕显示方向配置参数3,可根据设备摆放角度切换画面翻转
uint8_t           screen_dir=3;
// WiFi物联网管理实例,控制热点开启、IP查询、无线参数配置
DFRobot_Iot       myIot;
// UDP服务端通信实例,负责监听指定端口、绑定接收回调、向局域网发送UDP广播消息
DFRobot_UDPServer myserver;

/**
 * setup:上电仅执行一次的初始化入口函数
 * 执行顺序:硬件底层初始化→绑定UDP接收回调→屏幕画布初始化→绑定A按键触发事件→绘制白色背景标题→开启本机WiFi热点→屏幕打印热点网关IP→开启UDP8888监听端口
 */
void setup() {
    // 初始化K10全部底层硬件总线、IO引脚、屏幕驱动、RGB驱动、系统时钟
	k10.begin();

	// 为UDP服务端绑定消息接收回调函数:后台监听到客户端UDP数据包,自动执行onUdpServerRecvMsg
	myserver.setCallback(onUdpServerRecvMsg);

	// 根据预设数值3初始化屏幕显示朝向
	k10.initScreen(screen_dir);
	// 创建内存画布缓冲区,文字先写入缓存再一次性刷新屏幕,降低画面闪烁
	k10.creatCanvas();

	// 给板载A物理按键绑定按下中断回调:按下A键立刻运行onButtonAPressed发送消息函数
	k10.buttonA->setPressedCallback(onButtonAPressed);

	// 设置屏幕整体背景底色为纯白色(十六进制色值0xFFFFFF)
	k10.setScreenBackground(0xFFFFFF);
	// 在画布第3行写入红色标题文字,标记本机身份为UDP服务端
	k10.canvas->canvasText("        行空板K10-服务器", 3, 0xFF0000);

	// 开启本机SoftAP无线热点模式,本机变身小型无线路由器
	// 热点名称:AP ;连接密码:88888888
	myIot.setSoftAP("AP", "88888888");

	// 拼接字符串,读取并打印本机热点网关IP地址,放置在画布第5行蓝色字体
	k10.canvas->canvasText((String("   获取本机IP:") + String(myIot.getWiFiSoftIP())), 5, 0x0000FF);
	// 将画布内所有文字缓存一次性渲染刷新到实体显示屏
	k10.canvas->updateCanvas();

	// UDP服务端开启8888端口,持续监听局域网内客户端发来的UDP数据包
	myserver.setPort(8888);
}

/**
 * loop:程序无限主循环
 * 本程序采用纯事件驱动架构,WiFi热点、UDP数据包监听、按键检测全部由库后台独立线程处理
 * 无需要循环轮询的业务逻辑,循环体空置即可稳定运行
 */
void loop() {

}

/**
 * A按键按下专属回调函数
 * 触发动作:按下A键,UDP服务端向局域网内所有接入热点、监听8888端口的设备广播文本消息
 */
void onButtonAPressed() {
	// 广播发送UDP字符串:hello,I am server
	myserver.sendUdpMsg("hello,I am server");
}

/**
 * UDP服务端消息接收回调函数
 * 入参message:客户端传输过来的完整字符串数据
 * 触发逻辑:收到任意客户端UDP消息,全部RGB灯点亮浅青蓝色,维持2秒后自动熄灭
 */
void onUdpServerRecvMsg(String message) {
	// 参数-1代表控制板载全部RGB灯珠,灯光颜色赋值浅青蓝色0x33FFFF
	k10.rgb->write(-1, 0x33FFFF);
	// 灯光保持点亮2000毫秒(2秒)
	delay(2000);
	// RGB全部赋值黑色,熄灭所有彩灯
	k10.rgb->write(-1, 0x000000);
}

行空板 K10 自建热点 UDP 服务端代码解读

  1. 头文件与全局定义

#include <DFRobot_Iot.h>
#include “unihiker_k10.h”
#include <DFRobot_UDPServer.h>
DFRobot_Iot.h:WiFi 管理库,负责开启自建热点 (SoftAP)、读取本机热点 IP;
unihiker_k10.h:K10 硬件驱动,管控屏幕、画布、A 按键、RGB 彩灯;
DFRobot_UDPServer.h:标准 WiFi UDP 服务端库,开启端口监听、接收客户端消息、广播发送数据。

// 提前声明两个事件回调函数
void onButtonAPressed();
void onUdpServerRecvMsg(String message);

UNIHIKER_K10 k10; // 整机硬件总控制器
uint8_t screen_dir=3; // 屏幕翻转方向3,适配摆放角度
DFRobot_Iot myIot; // WiFi热点管理对象
DFRobot_UDPServer myserver; // UDP服务端通信对象

  1. setup () 开机一次性初始化

void setup() {
k10.begin();
初始化全部硬件:屏幕总线、按键 IO、RGB 灯、系统底层资源。

myserver.setCallback(onUdpServerRecvMsg);

绑定 UDP 接收回调:后台扫描到客户端 UDP 数据包,自动执行接收函数,不用循环轮询。

k10.initScreen(screen_dir);
k10.creatCanvas();

设置屏幕显示方向;创建画布缓存,文字统一刷新减少屏幕闪烁。

k10.buttonA->setPressedCallback(onButtonAPressed);

绑定 A 按键中断:按下 A 键,立刻执行发送 UDP 消息的函数。

k10.setScreenBackground(0xFFFFFF);
k10.canvas->canvasText("        行空板K10-服务器", 3, 0xFF0000);

屏幕底色纯白;第 3 行红色大字标注本机是 UDP 服务端。

myIot.setSoftAP("AP", "88888888");

核心:本机开启WiFi 热点
热点名称:AP
连接密码:88888888
本机变身小型路由器,其他板子连这个热点就能组成局域网。本机热点固定网关 IP:192.168.4.1

k10.canvas->canvasText((String("   获取本机IP:") + String(myIot.getWiFiSoftIP())), 5, 0x0000FF);
k10.canvas->updateCanvas();

读取本机热点 IP,在第 5 行蓝色字体打印;刷新画布把全部文字显示到屏幕。

myserver.setPort(8888);

}
UDP 服务端开启8888 端口持续监听,等待客户端连接收发消息。

  1. loop () 主循环

void loop() {

}
循环空白,全程事件驱动:
WiFi 热点、UDP 收包、按键检测全部由库后台线程独立运行,不需要在 loop 里反复扫描信号。

  1. 两个回调功能函数
    (1)A 按键按下:主动广播消息

void onButtonAPressed() {
myserver.sendUdpMsg(“hello,I am server”);
}
按下 A 键,向所有连接本热点、监听 8888 端口的设备,广播发送文本 hello,I am server。
(2)收到客户端 UDP 消息触发动作

void onUdpServerRecvMsg(String message) {
k10.rgb->write(-1, 0x33FFFF); // -1 = 全部RGB灯,点亮浅青亮色
delay(2000); // 灯光保持2秒
k10.rgb->write(-1, 0x000000); // 熄灭所有彩灯
}
message变量储存客户端发来的完整文字内容;本段代码只做灯光反馈,没有打印收到的文本。

  1. 整套配对通信规则
    本机(服务端)
    角色:UDP 服务端 + WiFi 热点发射器
    IP:192.168.4.1
    端口:8888
    行为:按 A 发广播;收到消息亮浅青灯 2 秒
    配套客户端要求
    WiFi 必须连接热点 AP、密码88888888;
    UDP 客户端连接地址 192.168.4.1、端口8888;
    客户端按 A 发送消息,服务端灯光响应;服务端按 A 发消息,客户端可屏幕打印文字。

  2. 协议区分重点
    本代码 = 标准 WiFi 局域网 UDP
    完全符合教科书 UDP(User Datagram Protocol)传输层协议,依托 TCP/IP、IP + 端口寻址,和你截图里 IP 端口的 UDP 图形积木是同一套网络方案,必须依赖 WiFi。
    和DFRobot_ESP32_Radio(BLE蓝牙广播)本质区别
    | 项目 | WiFi UDP(当前代码)|BLE 分组广播(Radio 库)|
    |--------|--------------------------------|------------------------------------|
    | 网络依赖 | 必须 WiFi 组网 | 无 WiFi,上电离线通信 |
    | 寻址标识 | IP 地址 + 端口号 | Group 分组数字 |
    | 功耗 | WiFi 功耗偏高,电池续航短 | BLE 低功耗,续航更长 |
    | 传输数据 | 支持较长文本、批量数据 | 仅限 10 字符内短指令 |

  3. 实操注意点
    delay(2000)会阻塞消息接收:亮灯 2 秒内新来的 UDP 消息会延后响应;优化可用非阻塞毫秒计时;
    UDP 无丢包重传,信号差容易丢包,稳定场景可连续两次 send 发送;
    只支持 2.4G WiFi,5G 频段无法连接;
    热点名、密码、端口号两端必须完全一致,大小写不能出错。

Mind+图形编程(UDP广播服务器)

在这里插入图片描述

【花雕动手做】行空板K10系列实验之UDP广播双行空板K10双向通信点亮LED
实验开源代码(UDP广播客户端)

// 引入DF物联网WiFi库,实现连接指定WiFi热点、查询本地IP、检测联网状态
#include <DFRobot_Iot.h>
// 行空板K10硬件驱动库,封装屏幕、画布、A按键、RGB彩灯所有板载外设接口
#include "unihiker_k10.h"
// WiFi UDP客户端专用库,用于主动连接UDP服务端、发送消息、绑定接收回调
#include <DFRobot_UDPClient.h>

// 前置声明两个事件回调函数,编译器预识别函数标识,用于绑定UDP接收、按键按下动作
void onUdpClientRecvMsg(String message);
void onButtonAPressed();

// 行空板整机硬件总控制对象,统一管理屏幕、按键、RGB灯、绘图画布硬件资源
UNIHIKER_K10      k10;
// 屏幕显示朝向参数3,根据设备摆放角度翻转画面显示
uint8_t           screen_dir=3;
// WiFi物联网管理实例,负责热点连接、IP读取、无线状态监测
DFRobot_Iot       myIot;
// UDP客户端通信实例,建立与服务端的UDP通信链路、收发数据包
DFRobot_UDPClient myclient;

/**
 * setup 上电初始化函数,设备开机仅运行一次
 * 执行流程:硬件底层初始化→绑定UDP接收回调→屏幕画布初始化→绑定A按键触发事件→绘制黑色背景标题界面→连接服务端开启的AP热点→阻塞等待WiFi联网成功→屏幕打印联网状态与本机IP→UDP客户端连接服务端192.168.4.1:8888→刷新屏幕所有文字
 */
void setup() {
    // 初始化K10全部底层硬件:屏幕驱动、按键IO、RGB灯驱动、系统时钟、总线资源
	k10.begin();

	// 为UDP客户端绑定消息接收回调:后台监听到服务端下发的UDP数据包,自动执行onUdpClientRecvMsg
	myclient.setCallback(onUdpClientRecvMsg);

	// 根据预设数值3初始化屏幕显示翻转方向
	k10.initScreen(screen_dir);
	// 创建内存绘图画布缓冲区,文字先存入缓存批量刷新,减少屏幕闪烁撕裂
	k10.creatCanvas();

	// 给板载A物理按键绑定按下中断回调:按下A键立刻运行发送UDP消息的函数
	k10.buttonA->setPressedCallback(onButtonAPressed);

	// 设置屏幕整体背景底色为纯黑色 0x000000
	k10.setScreenBackground(0x000000);
	// 画布第3行写入绿色标题文字,标记本机身份为UDP客户端
	k10.canvas->canvasText("        行空板K10-客户端", 3, 0x00FF00);
	// 第一次刷新画布,展示客户端标题
	k10.canvas->updateCanvas();

	// 发起WiFi连接:连接服务端板子创建的热点,热点名AP,密码88888888(必须与服务端热点参数完全一致)
	myIot.wifiConnect("AP", "88888888");
	// 阻塞死循环,不完成WiFi连接则程序暂停向下执行,保证网络就绪后再启动UDP客户端
	while (!myIot.wifiStatus()) {}

	// 第5行写入红色文字,提示热点连接成功
	k10.canvas->canvasText("         成功连接AP热点", 5, 0xFF0000);
	// 拼接字符串,读取本机被热点分配的局域网IP,第7行蓝色字体打印IP地址
	k10.canvas->canvasText((String("       配置 IP:") + String(myIot.getWiFiLocalIP())), 7, 0x0000FF);

	// UDP客户端主动对接UDP服务端
	// 目标服务端IP:192.168.4.1(服务端自建热点的固定网关IP),统一通信端口8888
	myclient.connectToServer("192.168.4.1",8888);
	// 二次刷新画布,把联网成功提示、本机IP全部渲染到屏幕
	k10.canvas->updateCanvas();
}

/**
 * loop 无限主循环
 * 程序采用纯事件驱动架构,WiFi连接状态、UDP数据包监听、按键中断检测全部由库后台独立线程运行
 * 无循环轮询业务逻辑,循环体空置不影响整套通信稳定运行
 */
void loop() {

}

/**
 * UDP客户端消息接收回调函数
 * 入参message:服务端广播下发的完整字符串消息内容
 * 触发逻辑:收到服务端任意UDP消息,所有RGB灯点亮纯红色,持续2秒后熄灭彩灯
 */
void onUdpClientRecvMsg(String message) {
	// 参数-1代表控制全部板载RGB灯珠,灯光赋值纯红色0xFF0000
	k10.rgb->write(-1, 0xFF0000);
	// 灯光保持点亮2000毫秒(2秒)
	delay(2000);
	// RGB全部赋值黑色,关闭所有彩灯
	k10.rgb->write(-1, 0x000000);
}

/**
 * A按键按下专属回调函数
 * 触发动作:按下A键,UDP客户端向192.168.4.1:8888发送文本UDP数据包
 */
void onButtonAPressed() {
	// 发送字符串消息:hello,I am client
	myclient.sendUdpMsg("hello,I am client");
}

行空板 K10 UDP 客户端代码解读

一、头部引入与全局定义

// DFR物联网WiFi库:负责连接外部热点、查询本机IP、检测WiFi在线状态
#include <DFRobot_Iot.h>
// K10硬件驱动库:管理屏幕、画布、A按键、RGB彩灯全部外设
#include “unihiker_k10.h”
// WiFi UDP客户端库:实现标准UDP客户端连接、消息收发、接收事件绑定
#include <DFRobot_UDPClient.h>

// 提前声明两个回调函数,给编译器识别,用于绑定事件
void onUdpClientRecvMsg(String message);
void onButtonAPressed();

UNIHIKER_K10 k10; // 整机硬件控制总对象
uint8_t screen_dir=3; // 屏幕翻转方向3,适配设备摆放角度
DFRobot_Iot myIot; // WiFi管理实例
DFRobot_UDPClient myclient; // UDP客户端通信实例

二、setup () 开机一次性初始化

void setup() {
k10.begin();
初始化屏幕、按键、RGB、系统总线等所有底层硬件,硬件程序必备首行。

myclient.setCallback(onUdpClientRecvMsg);

绑定 UDP 接收回调:后台线程监听服务端数据包,收到消息自动运行onUdpClientRecvMsg,不用在 loop 循环轮询。

k10.initScreen(screen_dir);
k10.creatCanvas();

设置屏幕显示翻转角度;创建画布缓存,文字批量刷新,减少屏幕闪烁。

k10.buttonA->setPressedCallback(onButtonAPressed);

A 按键绑定中断回调:物理按下 A 键,立刻执行发送 UDP 消息的函数。

k10.setScreenBackground(0x000000);
k10.canvas->canvasText("        行空板K10-客户端", 3, 0x00FF00);
k10.canvas->updateCanvas();

屏幕底色设纯黑;第 3 行绿色大字标记本机是 UDP 客户端;第一次刷新文字到屏幕。

myIot.wifiConnect("AP", "88888888");
while (!myIot.wifiStatus()) {}

连接服务端搭建的 WiFi 热点:热点名AP、密码88888888;
while阻塞死循环:必须等到 WiFi 连接成功,代码才会向下执行,防止无网络启动 UDP 失败。

k10.canvas->canvasText("         成功连接AP热点", 5, 0xFF0000);
k10.canvas->canvasText((String("       配置 IP:") + String(myIot.getWiFiLocalIP())), 7, 0x0000FF);

联网成功后,第 5 行红字提示连接成功;第 7 行拼接打印本机被热点分配的内网 IP 地址。

myclient.connectToServer("192.168.4.1",8888);

UDP 客户端发起连接:
目标服务端 IP:192.168.4.1(服务端 SoftAP 固定网关 IP)
统一通信端口:8888

k10.canvas->updateCanvas();

}
刷新画布,把联网提示、本机 IP 完整显示在屏幕上。

三、loop () 主循环

void loop() {

}
循环完全空置,整套程序事件驱动运行:
WiFi 连接、UDP 收包、按键检测全部由库后台独立线程处理,无需手动循环扫描信号。

四、两个核心回调函数
1、收到服务端 UDP 消息回调

void onUdpClientRecvMsg(String message) {
k10.rgb->write(-1, 0xFF0000); // -1=全部RGB灯,点亮纯红色
delay(2000); // 灯光保持2秒
k10.rgb->write(-1, 0x000000); // 熄灭所有彩灯
}
message变量存放服务端发来的完整字符串;本段只做灯光反馈,没有打印文本内容。
2、A 按键按下发送消息回调

void onButtonAPressed() {
myclient.sendUdpMsg(“hello,I am client”);
}
每按一次 A 键,向服务端 IP:8888 发送 UDP 文本:hello,I am client。

五、与配套服务端完整配对关系

在这里插入图片描述

双向交互流程
先启动服务端,热点开启、UDP 端口打开;
客户端上电自动连热点,联网后自动对接服务端 UDP;
客户端按 A → 发送 client 消息 → 服务端灯光亮起;
服务端按 A → 广播 server 消息 → 客户端灯光亮起。

六、通信方案定性区分
本套 UDPClient/UDPServer = 标准 WiFi 局域网 UDP
完全符合 User Datagram Protocol 传输层协议,依托 TCP/IP 网络,用 IP + 端口寻址,和你截图里 IP、端口的图形 UDP 积木是同一套,必须依靠 2.4G WiFi 才能运行。

和DFRobot_ESP32_Radio(BLE 蓝牙广播)核心差异

对比项 WiFi UDP(当前代码) BLE 分组广播(Radio 库)
WiFi 依赖 必须连接热点组网 无 WiFi,上电离线通信
寻址方式 内网 IP + 端口号 Group 分组数字 (0~255)
功耗 WiFi 模块持续工作,续航短 BLE 低功耗,电池续航久
传输能力 支持较长文本、批量数据 仅限 10 字符内短开关指令

实操避坑要点
delay(2000)会阻塞消息接收:亮灯 2 秒内新来的 UDP 消息会延迟响应;优化用millis()做非阻塞计时;
UDP 是不可靠传输,无自动丢包重传,干扰环境可以连续两次sendUdpMsg提升成功率;
仅支持 2.4G WiFi,5G 频段无法连接;
热点名称、密码、端口号两端必须一字不差,大小写、符号不能出错;
服务端未开机开热点时,客户端会卡在while (!myIot.wifiStatus()){}死循环里卡死。

Mind+图形编程(UDP广播客户端)

在这里插入图片描述
实验场景图与视频记录

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐