买了一台当贝 F6 ,想要实现米家控制。找到一篇文章:https://www.znds.com/tv-1237327-1-1.html
但是作者没有在文章中透露细节,没办法,只有自己来研究。
准备了以下内容:
抓到的电源键广播包类似于:
/**
* LEN | TYPE | VALUE
* 2 | 0x01 | 0x04
* 3 | 0x03 | 0x1218
* 3 | 0x19 | 0x8001
* 13 | 0xFF | 0x5D000300011808642AA0C884
*/
static uint8_t adv_data_on_off[] = {
// Flags
0x02, 0x01, 0x04,
// Complete list of 16-bit Service UUIDs
0x03, 0x03, 0x12, 0x18,
// Appearance
0x03, 0x19, 0x80, 0x01,
// Manufacturer Specific Data
0x0D, 0xFF, 0x5D, 0x00, 0x03, 0x00, 0x01, 0x18, 0x08, 0x64, 0x2A, 0xA0, 0xC8, 0x84
};
由于不知道怎么用手机重放测试,直接开始编写 ESP 代码,刷入之后,用小爱同学执行命令也能正常重放。 但是投影仪并没有反应。
观察遥控器广播的包数据 Manufacturer Specific Data
里,有一位是每次递增的。我直接改为下一次预计的值,重放之后也无法正常开关。
遥控器发出的包貌似是单次广播的?我看 BLE 协议里,广播包都是循环广播的?
按帖文里的说法,他直接重放原包就实现了,感觉我是不是哪里有问题。
现在卡住了,不知道后面如何进行。
我的代码放在 GitHub 了:esp32-ble-remote-control
希望各位能帮忙分析一下问题出在什么地方,谢谢
1
dule 2023-10-20 10:44:39 +08:00
这么麻烦?像小爱音箱自带红外,米家直接添加设备-红外遥控器-投影仪-选择品牌,我的爱普生就直接搞定了,直接开关控制音量都行
|
2
kuoruan OP 当贝 F6 是蓝牙遥控器,非红外遥控器。无法通过红外遥控
|
3
xuextx 2023-10-20 11:55:19 +08:00
@yujinchn776 红外或者射频都好解决,但是蓝牙信号目前比较麻烦。
|
5
fentensoft666 335 天前 1
@kuoruan 我是当贝 F3 Air 投影仪,那串 Manufactor Data 不变就能触发开机,不知道型号之间是不是通用的,你可以试试。代码: https://github.com/fentensoft/esp32-dangbei-projector ,我也搞通了关机指令
|
6
kuoruan OP @fentensoft666 感谢感谢,我抽个时间再研究研究,上次没实现之后我就作罢了
|