Skip to content

👑 [EP03] 生态之神:SSOT 与蓝牙广播超视距打法

如果前面两集只是“使用工具”,那本集则是这套 Smart BLE Toolkit 为想要开疆拓土的高阶玩家准备的生态秘籍。

您的开发板终于搞定了,但您开始有一个前所未见的需求:我想在家里用手机控制 100 盏氛围灯!或者我想布置纯无线无电池的微波开关!

如果按照 [EP02] 的经典蓝牙链接法建立 GATT 隧道,连到第 7 台外设的时候,您的 iOS / Android 底层协议栈就会被塞满拒收。怎么破局?

一、 打破七只紧箍咒:广播非连接模式

要达成“万物并发”,请不要建立连接 (Connect) ! 您只需利用我们系统框架,向空气中直接喊话也就是 发送特定的自定义广播 Payload

在蓝牙的底层架构中,有一种协议叫做 GAP Broadcaster/Observer(外加特殊的 Manufacturer Specific Data 段位拦截):

  1. 改造我们的发送端(即本系统的手机/电脑端):修改我们提供的 core/ble-core/ 或 Flutter ble_manager.dart 中的行为模式,将需要点灯的 16 进制 RGB 数据组合成如 [0xFF, 0x01, 0xFF, R, G, B] 等形式的数据包。不再去扫描和对接特定设备,而是利用无连接基带模式拼命向空气抛撒。
  2. 改造接收端(单片机):在那片我们建立好的 STM32 框架中,使用 JDY-23 甚至 STM32WB 时开启仅接收模式。只要它们捕获在空气中飘荡的带有特殊签名帧特征的这段广播,全部 100 张版子都会在同一时刻接收到数据并在毫无延迟的震撼中同时变换灯具色彩。此谓真正的零延时无限分频控制。

NOTE

🎬 【核心玩法纪实清单】:由于此功能过于震撼,请随后贴出一段 YouTube / B站 的演示视频外链,具体内容应为:【不点击任何连接,直接在主界面滑动控制多台氛围灯同步变色】

二、我们自豪的 SSOT 大航道架构 (开发守则)

如果您想对我们的主界面大改特改以契合您那个“氛围控制”项目的画风。一定要了解本库最关键的心脏运作机制体系!!

请勿像传统的客户端开发一样,分别去寻找 apps/flutter/... 甚至 apps/desktop/... 各去改一轮十六进制颜色,那只会坠入“难以维护的泥沼”。

这就是我们引以为豪的唯一真相源拉通协议 (SSOT)。请查阅仓库内的 CONTRIBUTING.md

  1. 我们一切对底色的变通,都藏在了:core/assets-generator/meta/
  2. 不管你是想改 SVG 的小插画、改占位符,或者是换成深蓝色主题。只需要在这独一无二的根源文件夹里进行替换或编写。
  3. 执行:python core/assets-generator/generate_assets.py
  4. 我们自研的引擎会自动将您的创意粉碎转化并注入所有的 5 大终端的源码血管。只需几十行代码,跨端体验一步成神。这就是工程素养。