【花雕动手做】行空板K10系列实验之UDP广播双行空板双向通信点亮LED


行空板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 模块无法启动。
三、相关图形积木功能解析
- 基础服务端积木
设置 UDP 服务器端口 8888
本机开启 UDP 监听服务,占用 8888 端口,持续等候局域网内所有广播数据包。一块板子可同时做服务端 + 客户端。
当 UDP 服务器收到 广播消息
事件回调块:一旦局域网内有设备发出广播数据,立刻触发内部执行逻辑(点灯、屏幕打印、动作指令)。
UDP 服务器发送消息 “xxx”
向外发送全网广播包,当前 WiFi 局域网里所有开启 UDP 8888 端口的设备全部收到这条内容。 - 基础客户端积木
设置 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 服务端代码解读
- 头文件与全局定义
#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服务端通信对象
- 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 端口持续监听,等待客户端连接收发消息。
- loop () 主循环
void loop() {
}
循环空白,全程事件驱动:
WiFi 热点、UDP 收包、按键检测全部由库后台线程独立运行,不需要在 loop 里反复扫描信号。
- 两个回调功能函数
(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变量储存客户端发来的完整文字内容;本段代码只做灯光反馈,没有打印收到的文本。
-
整套配对通信规则
本机(服务端)
角色:UDP 服务端 + WiFi 热点发射器
IP:192.168.4.1
端口:8888
行为:按 A 发广播;收到消息亮浅青灯 2 秒
配套客户端要求
WiFi 必须连接热点 AP、密码88888888;
UDP 客户端连接地址 192.168.4.1、端口8888;
客户端按 A 发送消息,服务端灯光响应;服务端按 A 发消息,客户端可屏幕打印文字。 -
协议区分重点
本代码 = 标准 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 字符内短指令 | -
实操注意点
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广播客户端)

实验场景图与视频记录



更多推荐




所有评论(0)