|
8| 8
|
[K10教程] 【花雕动手做】K10系列实验之无线广播A按键遥控 LED 变色 |
![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |
|
知识点:无线广播------行空板 K10 BLE、BLE Mesh 广播 一、BLE 普通广播(广播包 Advertising,非连接型) 1. 工作原理 发送板不建立蓝牙配对连接,定时(间隔可设)向外发送短小广播数据包;周围所有开启蓝牙扫描的 K10/ESP32 设备被动抓取数据,属于一对多离线通信,全程不用 WiFi、路由器。 发送端:只发包,不等待应答 接收端:持续扫描,识别目标设备标识后读取内容 2. 核心参数 传输距离:空旷 5–10 米,隔墙大幅衰减 功耗优势:发送、待机电流都很低,电池供电可长时间运行 数据限制:单帧广播载荷很短,一般几十字节以内 拓扑:1 个发射源→N 个接收机,接收机之间互不通信 3. 适用场景 一块主控批量控制多台 LED、蜂鸣器、小电机开关 手环式传感器广播温湿度、按键状态给多块行空板 无网络教室简易一控多教具 4. 短板 不能传长文本、语音、图片、大量数值 无可靠重传机制,干扰环境容易丢包 只能单向发,接收端无法回传数据给发射板 二、BLE Mesh 网格广播组网 1. 工作原理 所有行空板加入同一个 Mesh 网络,节点地位平等: 任意一块板子发送一条消息,全网所有 Mesh 节点同步收到;信号弱的节点还能中继转发消息,扩大覆盖范围,属于多向全网广播。 完全离线运行,不需要 WiFi 路由。 2. 对比普通 BLE 广播优势 信号中继:远距离、隔墙场景靠中间板子接力传递信号 双向互通:每个节点既能发全网广播,也能接收全网消息 分组控制:可划分分组,消息只发给指定分组设备,不用全部设备响应 稳定性高于单纯 Advertising 广播,自带简单纠错 3. 典型应用 教室几十台行空板灯光同步亮灭、抢答同步触发 多房间灯光、智能开关统一控制 分布式传感器,任意节点上报数据全网可见 4. 固有局限 单条消息数据量依旧偏小,依旧无法承载音频、大图 组网设备数量过多时,消息延迟会上升 相比 WiFi UDP,传输速度慢很多 三、两者统一短板汇总 大数据传输能力弱:仅适配开关指令、1–2 组数字、简短标识 高速传输不行:实时音频、大屏多行文字、图像一律不推荐 穿墙能力一般,密集金属遮挡信号暴跌 大量设备同时发包容易产生蓝牙信道冲突丢包 四、行空板 K10 实操区分选择 简单一控多、电池低功耗、距离近 → BLE 普通 Advertising 广播(代码简单、资源占用最小) 多设备互相收发、需要中继扩距离、批量分组控制 → BLE Mesh(组网复杂一点,功能更强) 要传文字、声音、大量数据、距离远、设备多稳定通信 → 优先改用 WiFi UDP 广播 补充简易实操要点 BLE 广播必须设置唯一设备名称 / UUID,接收端过滤识别,避免抓取无关蓝牙设备数据包; Mesh 组网所有设备必须写入同一组网密钥、同一网络 ID 才能互相通信; 电池供电项目首选 BLE 体系,插电稳定大数据项目优先 WiFi。 ![]() |
|
【花雕动手做】行空板 K10 系列实验之无线广播使用A按键遥控板载LED灯循环变色 实验开源代码(无线广播发送端) |
|
代码解读 1. 头文件与全局变量部分 unihiker_k10.h:行空板 K10 硬件驱动,管控屏幕、画布、A 按键、RGB 彩灯 DFRobot_ESP32_Radio.h:DF 蓝牙广播库,底层 ESP32-S3 BLE 离线一对多发消息 volatile关键字:这个变量会在按键回调函数里被修改,防止编译器优化缓存,保证读取数值实时准确; 作用:记录 A 键按下次数,用来循环切换 3 种灯光模式; 类型 float 只是存储计数,计算时强制转为整数运算。 函数前置声明,setup 中要绑定按键回调,编译器需要提前识别这个按键处理函数。 k10:行空板整机总对象,操控全部板载外设 Radio:无线 BLE 广播通信对象 screen_dir=2:屏幕默认正向显示 2. setup () 上电初始化(只运行 1 次) 初始化全部底层硬件:屏幕总线、按键 IO、RGB 灯驱动、系统时钟。 绑定按键事件:按下 A 键,自动执行onButtonAPressed函数,属于中断事件驱动,不用在 loop 循环扫描按键。 初始化屏幕方向;创建内存画布,文字先写入缓存,统一刷新屏幕,减少闪屏。 打开蓝牙 BLE 广播模块;设置通信组别 13。 互通硬性条件:接收端代码必须同样setGroup(13),不同组别收不到信号。 屏幕底色深灰色;在 3、4 行打印标题说明文字;刷新画布把文字显示到屏幕。 设置 RGB 彩灯亮度等级 5,亮度适中。 3. loop () 主循环 循环为空,全程靠按键事件回调驱动,没有需要循环执行的任务,蓝牙、按键都由库后台处理。 4. A 键按下回调核心逻辑 每按一次 A 键,计数数值 + 1。 判断 1:次数对 3 取模余数 = 1 判断 2:余数 = 2 判断 3:余数 = 0 按键循环切换对照表 ![]() 按压循环顺序: 第 1 下红 → 第 2 下蓝 → 第 3 下浅青绿 → 第 4 下回到红,无限循环切换 整体运行逻辑 通信方式:BLE 离线广播,不需要 WiFi、路由器;一块发送板可以同时控制多台接收行空板同步变色; 触发方式:按键中断回调,不占用主循环; 本地反馈:每次按下屏幕打印提示文字 + RGB 亮对应颜色,1 秒自动恢复待机。 缺点与优化点 delay(1000)阻塞:亮灯 1 秒内再次按 A 键,按键动作会延迟响应; 计数变量用 float 浮点型不规范,标准写法改用uint16_t cnt=0;整型更稳定; 多层嵌套 if 可读性差,可以替换switch((int)cnt%3)简化代码结构。 配套接收端要求 接收端分组必须是 13,绑定三条指令回调: 收到 "0" → 亮浅青灯 收到 "1" → 亮红灯 收到 "2" → 亮蓝灯 |
|
【花雕动手做】行空板 K10 系列实验之无线广播使用A按键遥控板载LED灯循环变色 实验开源代码(无线广播接收端) |
|
行空板 K10 BLE 广播接收端代码解读 一、头部引用与全局定义 unihiker_k10.h:行空板硬件驱动,操控屏幕、画布、RGB 彩灯; DFRobot_ESP32_Radio.h:蓝牙 BLE 广播库,负责监听无线指令、绑定触发函数。 二、setup () 上电一次性初始化 初始化屏幕、RGB 灯、系统底层硬件。 这是事件绑定核心,蓝牙后台抓到匹配消息,自动运行对应函数。 设置屏幕方向,创建画布缓存,文字统一刷新防止闪屏。 只有发送板同样设置 Group13,两边才能互相通信,分组隔离互不干扰。 三、loop 主循环 循环为空,全程事件驱动。蓝牙接收是库后台反文旁虫立运行,不需要在 loop 里反复查询信号。 四、三个接收回调功能 onRadioReceive_0() 匹配指令"0" 全部 RGB 亮绿色,持续 1 秒后熄灭 onRadioReceive_1() 匹配指令"1" 全部 RGB 亮红色,持续 1 秒后熄灭 onRadioReceive_2() 匹配指令"2" 全部 RGB 亮蓝色,持续 1 秒后熄灭 收发一一对应表格 ![]() 按压循环:红 → 蓝 → 绿 → 红 无限循环 整套工作流程 发送端按 A 键,计数累加、取模判断,向外 BLE 发送 0/1/2; 所有 Group13 的接收板蓝牙自动捕获数据包; 匹配到字符后,立刻点亮对应颜色 RGB 灯 1 秒。 优缺点说明 优点 离线蓝牙通信,不用 WiFi 路由器,电池就能供电; 一对多控制,一块发送板可同时控制多台接收板同步变色; 代码分层清晰,发送、接收独立程序,方便课堂分组实验。 缺点 delay(1000)阻塞:亮灯 1 秒内新来指令会排队延迟; BLE 只适合简短字符指令,无法传输大量文字、音频、数值; 距离远、隔墙、金属遮挡会出现信号丢包。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed