【花雕动手做】K10 系列实验之 UDP 广播遥控板载 LED 彩灯

2026-06-11799
AI 快速预览详细 收起
本文介绍了如何使用行空板K10通过UDP广播协议遥控板载LED彩灯。行空板K10集成了多种传感器和扩展接口,无需额外设备即可实现物联网应用。通过这个实验,用户可以轻松实现远程控制LED彩灯,适合STEM教育和零基础新手。


【花雕动手做】K10 系列实验之 UDP 广播遥控板载 LED 彩灯图2

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

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


【花雕动手做】K10 系列实验之 UDP 广播遥控板载 LED 彩灯图1

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(10)
驴友花雕
驴友花雕
作者
实验场景图与视频记录





驴友花雕
驴友花雕
作者
行空板 K10 UDP 服务端代码解读
一、头文件与全局对象定义
[code]#include
#include "unihiker_k10.h"
#include
DFRobot_Iot.h:WiFi 物联网库,负责连接热点、检测联网状态、读取本机局域网 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服务端实例[/code]
二、setup () 上电一次性初始化
[code]void setup() {
k10.begin();[/code]
初始化全部板载硬件:屏幕、按键、RGB 灯、系统底层总线。
[code]myserver.setCallback(onUdpServerRecvMsg);[/code]
给 UDP 服务端绑定接收回调:只要监听到客户端发来的 UDP 数据包,自动执行onUdpServerRecvMsg。
[code] k10.initScreen(screen_dir);
k10.creatCanvas();[/code]
设置屏幕显示方向;创建画布缓存,文字批量刷新减少闪屏。
[code] k10.buttonA->setPressedCallback(onButtonAPressed);[/code]
绑定 A 按键中断:按下 A 键立刻执行发送消息函数。
[code] k10.setScreenBackground(0xFFFFFF);
k10.canvas->canvasText(" 行空板K10-服务器", 3, 0x0000FF);
k10.canvas->updateCanvas();[/code]
屏幕底色设纯白色;第 3 行打印蓝色标题,标记本机是 UDP 服务端;刷新文字到屏幕。
[code] myIot.wifiConnect("AP", "88888888");
while (!myIot.wifiStatus()) {}[/code]
连接客户端板子开出的 WiFi 热点:名称AP、密码88888888;
while死阻塞循环:不连上 WiFi,程序不会往下执行,保证网络就绪再开 UDP 服务。
[code] k10.canvas->canvasText(" WIFI连接成功", 5, 0xFF0000);
k10.canvas->canvasText((String(" WIFI配置IP:") + String(myIot.getWiFiLocalIP())), 7, 0x0000FF);
k10.canvas->updateCanvas();[/code]
联网成功后,第 5 行红字提示成功;第 7 行打印本机分配到的内网 IP(配对固定为192.168.4.2),刷新屏幕显示。
[code] myserver.setPort(8888);
}[/code]
UDP 服务端开启8888 端口持续监听,等待客户端接入收发数据。
三、loop () 主循环
[code]void loop() {
}[/code]
全程事件驱动,WiFi 连接、UDP 收包、按键检测全部由库后台线程独立运行,不需要在 loop 轮询扫描信号,循环空置不影响通信。
四、两个回调功能函数
1、A 按键按下回调(主动发消息给客户端)
[code]void onButtonAPressed() {
myserver.sendUdpMsg("hello,I am server");
}[/code]
按下 A 键,服务端向局域网内所有 UDP 8888 端口设备广播发送文本:hello,I am server。
2、UDP 收到客户端消息回调
[code]void onUdpServerRecvMsg(String message) {
k10.rgb->write(-1, 0x0000FF); // -1=全部RGB灯,点亮蓝色
delay(2000); // 保持亮灯2秒
k10.rgb->write(-1, 0x000000); // 熄灭所有彩灯
}[/code]
只要收到客户端发送的任意 UDP 消息,立刻触发灯光提示,message 变量里存放客户端发来的完整字符串内容(本段代码没有读取打印 message,只做灯光反馈)。
五、和上一段客户端代码完整配对关系

完整交互流程
客户端先上电,生成 WiFi 热点 AP;
服务端上电自动连接 AP,等待联网成功;
客户端 UDP 客户端绑定服务端 IP 端口,建立通信链路;
客户端按 A → 发送 client 文本 → 服务端 RGB 亮蓝灯 2 秒;
服务端按 A → 广播 server 文本 → 客户端屏幕第四行打印收到的文字。
六、协议定性区分
本套 UDPServer/UDPClient = 标准 WiFi 局域网 UDP
严格符合 UDP(User Datagram Protocol)传输层协议,依托 TCP/IP、IP 地址 + 端口寻址,对应你截图里 IP / 端口的 UDP 图形积木;必须依赖 WiFi 网络。
和DFRobot_ESP32_Radio(BLE 蓝牙广播)本质区别
WiFi UDP:需要 WiFi 组网、双向收发、可传输长文本;
BLE Radio:离线无 WiFi、Group 分组隔离、以短指令单向下发为主、低功耗电池续航更强。
七、注意点与短板
delay(2000)阻塞问题:亮灯 2 秒期间,如果新的 UDP 消息进来,会暂时延迟响应;进阶优化用毫秒计时器非阻塞写法;
UDP 不可靠:无丢包重传,信号弱环境偶尔丢失数据包;稳定场景可以连续发送两次消息提升成功率;
只支持 2.4G WiFi,5G 频段无法连接;
两端热点名称、密码、端口号必须完全一致,大小写、数字不能出错;
screen_dir=3仅改变屏幕显示方向,不影响 WiFi 和 UDP 通信逻辑。
驴友花雕
驴友花雕
作者

这里使用行空板K10作为UDP服务器。
【花雕动手做】行空板 K10 系列实验之 UDP 广播遥控板载 WS2812B 彩灯
行空板实验开源代码
[code]// 导入DF物联网WiFi库,负责连接WiFi热点、获取本机局域网IP、检测联网状态
#include
// 行空板K10硬件驱动库,封装屏幕、画布、A按键、RGB彩灯全部板载外设
#include "unihiker_k10.h"
// WiFi UDP服务端专用库,搭建标准UDP监听服务,接收客户端数据包、回复消息
#include
// 提前声明两个事件回调函数,setup绑定事件时编译器识别函数标识
void onButtonAPressed();
void onUdpServerRecvMsg(String message);
// 行空板整机硬件总控制对象,操控屏幕、按键、RGB灯、画布
UNIHIKER_K10 k10;
// 屏幕朝向参数3,切换屏幕显示翻转方向
uint8_t screen_dir=3;
// WiFi物联网管理实例,执行WiFi连接、IP读取、联网状态判断
DFRobot_Iot myIot;
// UDP服务端通信对象,开启端口监听、绑定接收回调、向客户端发送广播消息
DFRobot_UDPServer myserver;
/**
* setup 上电一次性初始化函数
* 执行流程:硬件初始化→绑定UDP接收回调→初始化屏幕画布→绑定A按键回调→绘制白色背景标题界面→连接客户端开启的AP热点→阻塞等待联网成功→屏幕打印联网IP→开启UDP8888监听端口
*/
void setup() {
// 初始化行空板全部底层硬件:屏幕总线、按键IO、RGB驱动、陀螺仪、系统时钟
k10.begin();
// 给UDP服务端绑定接收消息回调:收到客户端发来的UDP数据包,自动运行onUdpServerRecvMsg
myserver.setCallback(onUdpServerRecvMsg);
// 根据预设参数3初始化屏幕显示方向
k10.initScreen(screen_dir);
// 创建内存绘图画布,文字先存入缓存批量刷新,减少屏幕闪烁
k10.creatCanvas();
// 给板载A按键绑定按下事件:按下A键自动执行发送UDP消息的回调函数
k10.buttonA->setPressedCallback(onButtonAPressed);
// 设置屏幕整体背景颜色为纯白色0xFFFFFF
k10.setScreenBackground(0xFFFFFF);
// 画布第3行打印蓝色标题文字,标识本机为UDP服务端
k10.canvas->canvasText(" 行空板K10-服务器", 3, 0x0000FF);
// 刷新画布缓存,把标题文字渲染显示到屏幕
k10.canvas->updateCanvas();
// 连接客户端板子搭建的WiFi热点:热点名称AP,密码88888888(和客户端热点参数严格一致)
myIot.wifiConnect("AP", "88888888");
// 阻塞死循环,一直等待直到WiFi连接成功才向下执行;wifiStatus()返回true代表联网完成
while (!myIot.wifiStatus()) {}
// 第5行打印红色联网成功提示文字
k10.canvas->canvasText(" WIFI连接成功", 5, 0xFF0000);
// 拼接字符串:读取本机分配的局域网IP并打印在第7行蓝色字体
k10.canvas->canvasText((String(" WIFI配置IP:") + String(myIot.getWiFiLocalIP())), 7, 0x0000FF);
// 刷新画布,展示联网IP信息
k10.canvas->updateCanvas();
// UDP服务端开启8888端口持续监听,等待192.168.4.1客户端发起通信
myserver.setPort(8888);
}
/**
* loop 主无限循环
* 整体程序纯事件驱动架构,WiFi监听、UDP收包、按键检测全部由库后台线程处理
* 无循环轮询任务,循环体保持空置即可稳定运行
*/
void loop() {
}
/**
* A按键按下触发回调函数
* 功能:按下A键,UDP服务端向所有连接的客户端广播发送文本消息 hello,I am server
*/
void onButtonAPressed() {
myserver.sendUdpMsg("hello,I am server");
}
/**
* UDP服务端接收数据包回调函数
* 参数message:客户端传输过来的完整字符串指令内容
* 触发动作:收到客户端消息,全板RGB亮蓝色2秒,之后自动熄灭彩灯
*/
void onUdpServerRecvMsg(String message) {
// 参数-1代表控制所有RGB灯珠,点亮纯蓝色0x0000FF
k10.rgb->write(-1, 0x0000FF);
// 保持灯光点亮2000毫秒(2秒)
delay(2000);
// RGB全部赋值黑色,熄灭所有彩灯
k10.rgb->write(-1, 0x000000);
}[/code]
驴友花雕
驴友花雕
作者
代码解读(WiFi 标准 UDP 客户端 + 自建热点模式)
一、头文件与全局声明
[code]// MPython硬件适配库,封装屏幕display、按键buttonA、基础硬件底层驱动
#include
// DFR物联网WiFi库,负责开启热点/连接WiFi、读取本机IP
#include
// WiFi UDP客户端专用库,实现标准UDP传输层协议收发
#include
// 函数前置声明,编译器提前识别回调函数
void onButtonAPressed();
void onUdpClientRecvMsg(String message);
// WiFi物联网控制对象,管理SoftAP热点、STA配网、IP查询
DFRobot_Iot myIot;
// UDP客户端实例,用来对接UDP服务端、收发数据包
DFRobot_UDPClient myclient;[/code]
二、setup () 开机一次性初始化
[code]void setup() {
mPython.begin();[/code]
初始化整套板载硬件:显示屏、按键、系统时钟、IO 口,是 MPython 框架程序必须第一行执行。
[code] myclient.setCallback(onUdpClientRecvMsg);[/code]
给 UDP 客户端绑定接收消息回调:后台一旦收到服务端发来的 UDP 数据包,自动运行onUdpClientRecvMsg函数,不用在 loop 循环反复查询。
[code] buttonA.setPressedCallback(onButtonAPressed);[/code]
给 A 按键绑定按下触发事件:物理按下 A 键,立刻执行发送 UDP 消息的函数,按键属于中断事件驱动。
[code] myIot.setSoftAP("AP", "88888888");[/code]
开启本机SoftAP 无线热点(板子变身小型路由器):
热点名称:AP
连接密码:88888888
另一块做服务端的行空板,必须连接这个热点才能组网通信。
[code] display.setCursorLine(1);
display.printLine("掌控B板-客户端-热点");[/code]
把屏幕光标定位到第 1 行,打印本机身份标识:当前设备是 UDP 客户端、并且自身开启了 WiFi 热点。
[code] display.setCursorLine(2);
display.printLine(myIot.getWiFiSoftIP());[/code]
光标切到第 2 行,读取并打印本机热点的固定网关 IP,默认是192.168.4.1。
[code] myclient.connectToServer("192.168.4.2",8888);[/code]
UDP 客户端主动发起连接:
目标 UDP 服务端 IP 地址:192.168.4.2
统一通信端口:8888
只有服务端连上本热点、被分配 192.168.4.2、且打开 8888 端口监听,两端才能建立 UDP 通信。
三、loop () 主循环
[code]void loop() {
}[/code]
循环完全空置,整套程序纯事件驱动:
按键按下由硬件中断触发回调;
UDP 收消息由库后台线程监听触发回调;
不需要在 loop 里轮询检测信号,不占用 CPU 资源。
四、两个核心回调函数
1、A 按键按下回调(发送 UDP 消息)
[code]void onButtonAPressed() {
myclient.sendUdpMsg("hello,I am client");
}[/code]
每按一次 A 键,向服务端 IP:8888 发送一条 UDP 文本数据包:hello,I am client。
2、UDP 接收消息回调(展示服务端回复)
[code]void onUdpClientRecvMsg(String message) {
display.setCursorLine(4);
display.printLine(message);
}[/code]
参数message存储服务端传回的完整字符串;
收到回复后,自动在屏幕第 4 行打印对方发来的消息内容。
整体组网逻辑
本机(客户端)
开热点 AP (密码 88888888),IP=192.168.4.1;UDP 客户端连接 192.168.4.2:8888;按键发包。
配对服务端设备
不能开热点,要连接AP这个 WiFi;连上后设备 IP 会被分配为 192.168.4.2;开启 UDP 服务监听 8888 端口,接收客户端消息并可回复消息。
关键协议区分
DFRobot_UDPClient = 标准 TCP/IP 传输层 UDP 协议
和你之前截图里 IP、端口的 UDP 图形积木是同一套 WiFi 网络 UDP,必须依托 WiFi 组网。
和DFRobot_ESP32_Radio(BLE 蓝牙广播)本质区别:
本代码:依赖 WiFi、IP + 端口寻址、标准 UDP 网络协议;
BLE Radio:无 WiFi、分组 Group 寻址、底层蓝牙广播,不属于 IP 网络 UDP。
优缺点与注意事项
优点
点对点自建局域网,不用家用路由器,两块板子直接通信;
标准 UDP 双向收发,客户端发、服务端可回复;
传输文本长度远大于 BLE 广播,支持更长指令、数据。
短板
WiFi 功耗比 BLE 高,电池续航更短;
UDP 天生不可靠,信号差会丢包,无自动重传;
仅支持 2.4GWiFi,不兼容 5G 频段;
实操避坑
服务端必须连本机的 AP 热点,连别的 WiFi 绝对无法通信;
IP 地址 192.168.4.2、端口 8888 两端必须严格统一;
回调函数内禁止使用长时间delay(),会阻塞 UDP 消息接收;
热点覆盖距离有限,两块板子不要隔厚墙体、金属遮挡。
驴友花雕
驴友花雕
作者
这里使用掌控板作为客户端,可以接收到行空板K10作为服务器发来的消息。
【花雕动手做】行空板 K10 系列实验之 UDP 广播遥控板载 WS2812B 彩灯
掌控板实验开源代码(客户端)
[code]// 引入MPython底层适配库,适配行空板硬件、屏幕、按键等基础外设接口
#include
// DFRobot物联网WiFi驱动库,提供WiFi热点(SoftAP)、配网、IP获取能力
#include
// UDP客户端专用库,实现标准WiFi局域网UDP客户端收发通信
#include
// 前置函数声明:A按键按下回调、UDP收到消息回调
void onButtonAPressed();
void onUdpClientRecvMsg(String message);
// 物联网WiFi控制实例,管理WiFi热点/STA配网、IP地址读取
DFRobot_Iot myIot;
// UDP客户端通信对象,负责连接服务端IP端口、发送消息、绑定接收回调
DFRobot_UDPClient myclient;
/**
* setup 上电初始化函数,设备开机仅执行1次
* 执行流程:底层硬件初始化→绑定UDP接收回调→绑定A按键按下回调→开启本机WiFi热点→屏幕打印提示与本机IP→UDP客户端连接指定服务端
*/
void setup() {
// 初始化MPython硬件底层:屏幕、按键、IO、系统时钟等板载资源
mPython.begin();
// 给UDP客户端绑定接收消息回调:收到服务端发来的UDP数据包,自动执行onUdpClientRecvMsg
myclient.setCallback(onUdpClientRecvMsg);
// 给A按键绑定按下事件:按下A键自动运行onButtonAPressed发送UDP消息
buttonA.setPressedCallback(onButtonAPressed);
// 开启本机SoftAP无线热点模式:热点名称AP,连接密码88888888
myIot.setSoftAP("AP", "88888888");
// 屏幕光标定位到第1行
display.setCursorLine(1);
// 屏幕第一行打印设备身份:掌控B板-客户端-热点模式
display.printLine("掌控B板-客户端-热点");
// 光标切换到第2行
display.setCursorLine(2);
// 读取并打印本机热点分配的内网IP地址(默认192.168.4.1)
display.printLine(myIot.getWiFiSoftIP());
// UDP客户端主动连接UDP服务端
// 服务端固定内网IP:192.168.4.2,通信端口统一8888
myclient.connectToServer("192.168.4.2",8888);
}
/**
* loop 主无限循环
* 全程事件驱动架构:按键、UDP接收全部由库后台线程监听触发回调,无循环任务,循环体空置
*/
void loop() {
}
/**
* A按键按下回调函数
* 触发动作:按下A键,UDP客户端向192.168.4.2:8888发送文本消息
*/
void onButtonAPressed() {
// 发送UDP数据包:内容 hello,I am client
myclient.sendUdpMsg("hello,I am client");
}
/**
* UDP客户端消息接收回调函数
* 参数message:服务端回传的完整字符串消息
* 功能:收到消息后,在屏幕第4行打印收到的内容
*/
void onUdpClientRecvMsg(String message) {
// 光标定位屏幕第4行
display.setCursorLine(4);
// 把服务端发来的消息打印到屏幕
display.printLine(message);
}[/code]
驴友花雕
驴友花雕
作者
[font=微软雅黑]局域网(Local Area Network,简称LAN)是一种在相对较小的地理范围(如一个办公室、一栋楼或者一个校园)内连接计算机和其他设备的计算机网络系统。局域网的特点是覆盖范围小、传输速度快、没有长距离通信费用。
在局域网中,用户可以共享硬件(如打印机)、软件和数据。局域网中的设备可以通过有线(如以太网)或无线(如Wi-Fi)技术连接。局域网的主要用途包括共享资源、传输数据和通信。

以行空板为例进行组网。


[/font]
驴友花雕
驴友花雕
作者
知识点:行空板 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 频段。


驴友花雕
驴友花雕
作者
辅助:屏幕显示相关积木

LED控制模块

驴友花雕
驴友花雕
作者
相关积木


驴友花雕
驴友花雕
作者
行空板K10的网络服务模块,都在这里

添加WIFI和UDP广播模块

- 没有更多了 -