ios 如何从遥控器克隆非配对BLE信号以触发器械?

hkmswyz6  于 2023-02-26  发布在  iOS
关注(0)|答案(3)|浏览(266)

我有一个通过RF遥控器打开的投影机,我想通过arduino或rpi克隆特定的开机触发器。
我已经做了一些测试,看起来遥控器是一个标准的蓝牙HID,工作原理就像任何蓝牙配对输入设备时,投影机是开着的,它的"板载Android引导.但是,当投影机关闭时,显然没有配对的BT连接。所以我推测RC上的电源按钮必须发送一个单独的射频信号。当我开始通过BLE扫描仪应用程序嗅闻遥控器发送的蓝牙信号时,我注意到,在按下电源按钮时它首先发送特定类型的分组(其看起来是标准BT信号),但随后在立即意识到不存在配对的设备时(2秒)切换到另一个BLE数据包。我假设 * 这 * 触发电源打开。
我已经研究了非配对BLE信号、广告、UUID、信标,但无法通过使用不同的iOS应用程序(听起来有希望能够广告UUID)以及随机插入我可以通过Bluetooth Smart Scanner App从RC读取的内容来重现投影仪上的相同行为(开机):

  • 一读
{
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = "BLuetooth 4.0 RC";
kCBAdvDataRxPrimaryPHY = 129;
kCBAdvDataRxSecondaryPHY = 0;
kCBAdvDataServiceUUIDs =     (
    "Human Interface Device"
);
kCBAdvDataTimestamp = "657062407.4927959";
}
  • 二读:

{kCBAdvData是可连接的= 1;kCBAdvData本地名称="蓝牙4.0 RC";kCBAdvData制造商数据=〈0d00ffff 42415634 2e3337〉;kCBAdvDataRx主要物理层= 129;kCBAdvDataRx辅助物理层= 0;kCBAdvDataServiceUUID =("人机接口设备");kCBAdvData时间戳="657078255.763785";}
我可以用我的iPhone或RPI4原型克隆/复制这个信号吗?如果可以,我需要哪些信息来做广告?
谢谢大家!

wwtsj6pe

wwtsj6pe1#

了解人机接口设备(UID)服务是一个标准的蓝牙LE GATT服务。它通常用于为键盘、鼠标、游戏控制器或遥控器交换数据。
蓝牙LE GATT服务比蓝牙LE广告更复杂--您不能只发送蓝牙LE数据包(例如信标广告)并期望它触发HID服务中的某些内容。
两个BLE设备中的一个必须建立BLE连接。对各种GATT特征的读/写操作用于通过此连接交换数据。虽然HID服务有一个specification,您可以通过阅读来理解,但投影机肯定有一个使用HID服务的专有方法。您必须对此进行逆向工程。嗅探器可能会帮助您。
如果您只对上电操作感兴趣,逆向工程过程可能并不复杂。很可能是单个特性写入导致上电。您需要弄清楚是哪个特性以及应该写入什么值。

对遥控器使用HID服务的方式进行逆向工程后,您肯定可以使用CoreBluetooth API在iOS中实现该功能,或使用Linux BlueZ API在Raspberry Pi上实现该功能。

mnowg1ta

mnowg1ta2#

在ubertooth的帮助下,我可以扫描XGIMI Elfin投影机远程电源开/关按钮的BLE广告。现在我可以使用

  • 制造商特定数据
  • 通用唯一标识符

我不知道其他XGIMI投影机的其他XGIMI遥控器是否使用了相同的BLE广告数据,但我认为打开投影机的机制是相同的。
如果您拥有XGIMI投影机,您可以使用EFR Connect BLE移动应用程序(Silicon Laboratories)测试发送BLE广告。希望以下截图显示了我使用的设置:
Screenshot 1Screenshot 2

nle07wnf

nle07wnf3#

我还设法打开**Xgimi Halo +**投影仪从Android手机和nRF连接移动应用程序(HID模拟是not supported在iOS上)。
除了指定制造商数据和服务之外,我还必须指定扫描响应数据。
以下是我使用的方法:

    • 广告数据**:
  • 标志:一般可发现,[器械特定]
  • 制造商数据:一个月一个月一个月一个月一个月
  • 服务UUID:0x1812
    • 扫描响应数据**:
  • 制造商数据:x1米3英寸x1米4英寸
  • 完整的本地名称:* 任何内容(必填)*

感谢@Helge为我指出正确的方向。再次查看遥控器的nRF嗅探器日志后,我从ADV_INDSCAN_RSP消息中提取了数据,并使用发现的值在nRF Connect应用程序中创建了广告。

相关问题